>Эта глава описывает нестандартные возможности &quantaplus; и как их использовать. </para>
<sect1 id="xml-tools-3-2">
<title
>Средства &XML;</title>
<para
>В версии 3.2 появились средства работы с &XML;, а в 3.4 была добавлена поддержка DocBook. Все они используют Kommander как front-end (интерфейс) и библиотеки libxml и libxslt как back-end (движок). </para>
<sect2 id="kde-db-3-2">
<title
>Средства создания документации &kde;</title>
<para
>&quantaplus; поддерживает две главных утилиты документации &kde;: <command
>meinproc</command
> и <command
>checkXML</command
>. </para>
<sect3 id="meinproc-3-2">
<title
><command
>meinproc</command
></title>
<para
>Все, кто работал с документацией &kde;, знают какая это замечательная программа. Теперь вы можете забыть о консоли и наслаждаться графическим интерфейсом с предустановленными действиями - нажмите кнопку с изображением процессора и всё готово. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Текущий рабочий каталог</guilabel
></term>
<listitem>
<para
>Meinproc ищет файл <filename
>index.docbook</filename
>. Если он находится в текущем каталоге, оставьте этот параметр включённым. Иначе - введите путь к другому каталогу. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para
>Выходные файлы сохраняются в один каталог с исходными. Все файлы &HTML; сначала удаляются при каждом запуске <command
>meinproc</command
>. </para>
</note>
</sect3>
<sect3 id="checkxml-3-2">
<title
><command
>checkXML</command
></title>
<para
>&quantaplus; также обеспечивает простой графический интерфейс к этой полезной программе. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Текущий рабочий каталог</guilabel
></term>
<listitem>
<para
>Если <filename
>index.docbook</filename
> открыт и является активным, оставьте <guilabel
>Текущий рабочий каталог</guilabel
> включённым, иначе введите другой каталог с <filename
>index.docbook</filename
>. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<title
>Вывод</title>
<para
>Если имеется вывод, в файле есть ошибки. Исправьте их и попытайтесь ещё раз. </para>
</note>
</sect3>
</sect2>
<sect2 id="xmlval-3-2">
<title
>Проверка &XML;</title>
<para
>С &quantaplus; поставляется отличное средство синтаксической проверки &XML;, которое использует <application
>xmllint</application
>. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Текущий файл</guilabel
></term>
<listitem>
<para
>Если файл, который нужно проверить, активный в &quantaplus;, оставьте этот параметр включённым. Иначе - выберите другой файл. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Проверка правильности синтаксиса</guilabel
></term>
<listitem>
<para
>Если вы хотите выполнить только такую проверку, включите этот параметр. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>&URI; описания</guilabel
></term>
<listitem>
<para
>Если вы используете &DTD; и он указан в файле &XML;, выберите &DTD; (внутрен.), иначе - &DTD; (внешн.) и укажите адрес описания &DTD;. &W3C; XML Schema и RelaxNG Schema должны быть описаны внешне, через &URI;. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="xsltproc-3-2">
<title
>Обработка &XSL;</title>
<para
>&quantaplus; поставляется со средством обработки &XSL;, которое использует программу <command
>xsltproc</command
> из пакета <application
>pplication
>libxml2</application
>. </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Текущий файл</guilabel
></term>
<listitem>
<para
>Если файл, который нужно обработать, активный в &quantaplus;, оставьте этот параметр включённым. Иначе - выберите другой файл. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Таблица стилей</term>
<listitem>
<para
>Выберите файл &XSL;, который вы хотите использовать. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Имя выходного файла</guilabel
></term>
<listitem>
<para
>Файл сохраняется в ваш домашний каталог, если не указано иначе. </para>
</listitem>
</varlistentry>
</variablelist>
<note>
<para
>Пока что приложение не имеет гибких настроек. Ждите в следующей версии. </para>
>&quantaplus; может загружать компоненты KParts. KPart - мощная база интегрирования &kde;. Например, &quantaplus; использует &kate; KPart. Последний уже имел базовые функции, которые требовались &quantaplus;, такие как подсветка синтаксиса. Интегрирование его в &quantaplus; позволило сэкономить время и сразу начать работать над специфическими возможностями программы. </para>
<para
>Для добавления модулей в &quantaplus; не нужно ничего делать с самой программой. Вы можете использовать новые возможности, не ожидая пока кто-нибудь интегрирует их (т.е. модуль, обеспечивающий их) с программой! Подробности описываются ниже. </para>
</sect2>
<sect2 id="plugin-dialog-3-2">
<title
>Что такое диалог редактирования модулей</title>
<para
>Чтобы установить модуль (в т.ч. KPart), зайдите в меню <menuchoice
>Здесь вы можете управлять модулями, добавлять новые. Опишем каждый его элемент: <variablelist>
<varlistentry>
<term
><guilabel
>Искать в</guilabel
></term>
<listitem>
<para
>При добавлении модуля без <guilabel
>Расположения</guilabel
>, &quantaplus; будет искать его указанных местах. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Добавить</guilabel
></term>
<listitem>
<para
>Вызывает диалог добавления модуля. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Настройка</guilabel
></term>
<listitem>
<para
>Изменить настройки выбранного модуля. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Удалить</guilabel
></term>
<listitem>
<para
>Удалить выбранный модуль. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Обновить</guilabel
></term>
<listitem>
<para
>Обновить содержание диалога. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para
>Для подробностей о модулях, обратитесь к разделу <xref linkend="configure-plugins"/>.</para>
</sect2>
</sect1>
<sect1 id="team-members">
<title
>Командная разработка</title>
<para
>В большинстве проектов задействовано несколько человек, связанных определёнными иерархическими отношениями. В &quantaplus; присутствует понятие членов команды, их можно настроить в <menuchoice
> определяет роль участника в проекте, возможные значения: <itemizedlist>
<listitem
><para>
<guilabel
>Лидер команды</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Ведущий подпроекта</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Главный по заданию</guilabel>
</para
></listitem>
<listitem
><para>
<guilabel
>Участник</guilabel>
</para
></listitem>
</itemizedlist>
</para>
<para
><guilabel
>Задание</guilabel
> - описание задач, закреплённых за участником.</para>
<para
><guilabel
>Подпроект</guilabel
>: подпроекты можно создать и настроить нажатием кнопки <guilabel
>Подпроекты...</guilabel
>. Параметры подпроекта - имя и расположение относительно папки проекта, т.е. подпроектом можно назвать папку в дереве проекта. Например, базовым проектом может быть сайт вашей компании, а подпроектом может выступать сайт для вашей внутренней сети, с соответствующей ему в проекте папкой <filename path="intranet"
>intranet</filename
>.</para>
<para
>У одного члена команды может быть несколько обязанностей.</para>
<para
>Пользователь должен выбрать свою обязанность в команде. Для этого следует выбрать пункт из списка предлагаемых и нажать кнопку <guilabel
>Взять на себя</guilabel
>. Выбранная обязанность будет содержаться в графе <guilabel
>Ваша должность</guilabel
>.</para>
<para
>Выбор ника и обязанности необходим для рассылки уведомлений и аннотаций. Информация о последних приведена в разделе <xref linkend="annotations"/>.</para>
<para
>Вы можете создать событие, передаваемое, например, лидерам проекта, когда произойдёт какое-нибудь событие. Для подробностей см. <xref linkend="event-actions"/>.</para>
</sect1>
<sect1 id="event-actions">
<title
>Действия, порождаемые событиями</title>
<para
>Это действия. выполняемые при возникновении определённого события в проекте. Действие может заключаться, например, в записи времени открытия и закрытия проекта, чтобы можно было посчитать, сколько времени на него потрачено; или в отправке письма при сохранении файла; или в добавлении в CVS файла, добавленного в проект.</para>
<para
>На вкладке <guilabel
>Параметры событий</guilabel
> диалога <menuchoice
><shortcut
> <keycombo action="simul"
>&Shift;<keycap
>F7</keycap
></keycombo
> </shortcut
> <guimenu
>Проект</guimenu
> <guimenuitem
>Свойства проекта</guimenuitem
> </menuchoice
> можно создавать, изменять и удалять действия, связанные с событиями. </para>
>событие, при возникновении которого выполняется действие.</para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Действие</guilabel
></term>
<listitem
><para
>тип действия, возможные варианты: </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Несценарное действие</guilabel
></term>
<listitem
><para
>действие, не заключающееся в запуске внешнего сценария. См. <xref linkend="user-actions"/>. </para>
<para
><guilabel
>Имя действия</guilabel
> определяет выполняемое действие.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Отправить E-Mail</guilabel
></term>
<listitem
><para
>отправить email, получателей можно указать в соответствующем списке. Например, это может быть лидер проекта, или ведущий подпроекта. См. <xref linkend="team-members"/>. </para
>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Занести событие в журнал</guilabel
></term>
<listitem
><para
>доступные параметры: </para>
<variablelist>
<varlistentry>
<term
><guilabel
>Журнал</guilabel
></term>
<listitem
><para
>полное имя файла (с путём к нему)</para
></listitem>
</varlistentry>
<varlistentry>
<term
>Подробности</term>
<listitem
><para
>На сколько подробную запись делать </para
></listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Поведение</guilabel
></term>
<listitem
><para
>Создавать ли журнал в случае его отсутствия, заменять ли существующий журнал или же дополнять его.</para
></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Cценарное действие</guilabel
></term>
<listitem
><para
>выполнять сценарий </para>
<para
><guilabel
>Имя действия</guilabel
> определяет выполняемое действие.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
<para
>Остальные поля зависят от типа действия. </para>
</sect1>
<sect1 id="annotations">
<title
>Аннотации</title>
<para
>Аннотации - это комментарии определённой формы в документах. От обычных комментариев они имеют следующие отличия: <itemizedlist>
<listitem
><para
>аннотации собираются и показываются в одноимённой служебной панели. </para
></listitem>
<listitem
><para
>аннотации могут предназначаться для определённого участника команды. </para
></listitem>
</itemizedlist>
</para>
<para
>Для добавления аннотации можно воспользоваться пунктом <guilabel
>Добавить аннотацию</guilabel
> контекстного меню редактора или просто ввести текст аннотации после ключевого слова <emphasis
>@annotation</emphasis
> в области комментария. <example
><title
>Пример аннотации в XML</title
><screen
><!-- @annotation Кто-то понял, как это работает? --></screen>
<screen
><!-- @annotation
Аннотация
на несколько строк.
--></screen
></example>
<example
><title
>Пример аннотации в PHP</title
><screen
>/* @annotation
Не забудьте, что аннотации в области PHP нужно вводить внутри комментария PH
*/</screen>
</example>
</para>
<para
>Аннотации могут предназначаться для определённого участника команды. В этом случае следует использовать такой формат: <emphasis
>@annotation(ник)</emphasis
> или <emphasis
>@annotation(обязанность)</emphasis
>, где <emphasis
>ник</emphasis
> - идентификатор участника команды, а <emphasis
>обязанность</emphasis
> принимает одно из следующих значений: <itemizedlist
> <listitem
><para
> team leader </para
></listitem
> <listitem
><para
> task leader </para
></listitem
> <listitem
><para
> subproject leader </para
></listitem
> </itemizedlist
> Ссылки на ведущего подпроекта и главного по заданию должны сопровождаться соответствующим именем подпроекта или задания, через двоеточие. </para>
<para>
<example
><title
>Заметка участнику команды с ником <emphasis
>eric</emphasis
></title>
<screen
><-- @annotation(eric) Эрик, глянь-ка, что это я тут сотворил. Андрэ --></screen>
</example>
<example
><title
>Уведомление лидера команды</title>
<screen
><-- @annotation(team leader) Это важно для всей команды --></screen>
</example>
<example
><title
>Уведомление ведущего подпроекта <emphasis
>PHP</emphasis
></title>
<screen
>// @annotation(subproject leader:PHP) Как тебе такой расклад?</screen>
</example>
</para>
<para
>Ники и обязанности должны указываться с учётом регистра, без пробелов рядом со скобками и двоеточием.</para>
<para
>Более подробная информация об учтасниках команды, обязанностях и никах приведена в разделе <xref linkend="team-members"/>.</para>
<para
>Все аннотации, содержащие в проекте, собираются в служебной панели <guilabel
>Аннотации</guilabel
>. Она состоит из трёх вкладок: <variablelist
> <varlistentry
> <term
><guilabel
>Текущий файл</guilabel
></term
> <listitem
><para
>Аннотации в текущем файле.</para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Для вас</guilabel
></term
> <listitem
><para
> Аннотации проекта, предназначенные для вас. Список группируются по файлам. </para
></listitem
> </varlistentry
> <varlistentry
> <term
><guilabel
>Все файлы</guilabel
></term
> <listitem
><para
> Все аннотации проекта, сгруппированные по файлам </para
></listitem
> </varlistentry
> </variablelist
> Поиск аннотаций происходит при загрузке проекта и файлов (в т.ч. после внешних модификаций). Поиск может занять некоторое время и окно с сообщением об аннотациях, предназначеннвх для вас, может появиться через несколько секунд после загрузки проекта. </para>