diff options
Diffstat (limited to 'tde-i18n-ru/docs/tdewebdev/quanta/extending-quanta.docbook')
-rw-r--r-- | tde-i18n-ru/docs/tdewebdev/quanta/extending-quanta.docbook | 2692 |
1 files changed, 2692 insertions, 0 deletions
diff --git a/tde-i18n-ru/docs/tdewebdev/quanta/extending-quanta.docbook b/tde-i18n-ru/docs/tdewebdev/quanta/extending-quanta.docbook new file mode 100644 index 00000000000..9b9242c04ae --- /dev/null +++ b/tde-i18n-ru/docs/tdewebdev/quanta/extending-quanta.docbook @@ -0,0 +1,2692 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<chapter id="extending-quanta-3-2"> +<chapterinfo> +<title +>Расширение &quantaplus;</title> +<authorgroup> +<author +><firstname +>Christopher</firstname +> <surname +>Hornbaker</surname +> <affiliation +> <address +><email +>chrishornbaker@earthlink.net</email +></address> +</affiliation> +</author> +<author +><firstname +>András</firstname +> <surname +>Mantia</surname +> <affiliation +> <address +><email +>amantia@kde.org</email +></address> +</affiliation> +</author> + +<othercredit role="translator" +><firstname +>Николай</firstname +><surname +>Шафоростов</surname +><affiliation +><address +><email +>shafff@ukr.net</email +></address +></affiliation +><contrib +>Перевод на русский</contrib +></othercredit +> + +</authorgroup> +</chapterinfo> + +<title +>Расширение &quantaplus;</title> + +<para +>Эта глава описывает процесс расширения базовых возможностей &quantaplus; для ваших нужд и как вы можете содействовать её развитию. </para> + +<!--<sect1 id="kommander-3-2"> +<title +>Using Kommander With &quantaplus;</title> + +<para> +Kommander, by Marc Britton. +</para> +</sect1 +> --> + +<sect1 id="dtep-intro-3-2"> +<title +>Пакеты правки типов документов (Document Type Editing Package, &DTEP;)</title> + +<para +>&DTEP; используются в &quantaplus; для поддержки языков разметки, сценариев и &CSS;. Они позволяют обеспечить такие функции как автозавершение, редактирование тегов. Их простота и надёжность делает &quantaplus; быстрой, дружественной средой для веб-разработчиков. </para> + +<para +>&DTEP; делятся на две семьи - разметочную (далее - семья 1) и сценарную с &CSS; (далее - семья 2). &DTEP; состоит из двух частей - каталога тегов и панелей инструментов. Каталог тегов состоит из файла описания description.rc и файла TagXML с расширением .tag. Панель инструментов - это набор кнопок со значками (над окном редактирования), каждая из которых соответствует какому-либо тексту, вставляемому в документ при нажатии на неё (часто это шаблон тега). </para> + +<para +>&DTEP; можно создать самому вручную (см. ниже), <link linkend="download-resources" +>загрузить</link +> или создать автоматически из DTD. Такое преобразование описано в <xref linkend="converting-dtd"/>. </para> + +<para +>В этой части описывается создание файлов TagXML, &descriptionrc; и панелей инструментов. В общем, &DTEP;. </para> + +<para +>Файлы TagXML (.tag) определяют атрибуты, специфичные для данного тега и содержимое диалога "Свойства тега". Файл &descriptionrc; содержит правила и данные о &DTEP;. Панели инструментов позволяют быстро обратиться к тому или иному тегу для вставки его в документ. </para> + +<sect2 id="dtep-packaging-3-2"> +<title +>Создание пакетов</title> + +<para +>Каталоги тегов - это обычные каталоги, содержащие файлы &descriptionrc; и TagXML. В их названии отражается название языка разметки с его версией (например, html-4.01-strict) </para> +</sect2> + +<sect2 id="tagxml-3-2"> +<title +>TagXML</title> + +<para +>Таблица содержит список элементов, определённых в TagXML и говорит, обязательны они, или нет. Не смотря на то, что обязательны не все, рекомендуется всё же использовать как можно больше доступных элементов, чтобы пользователи имели больше настроек и информации. </para> + +<informaltable> +<tgroup cols="3"> +<thead> +<row> +<entry +>Элемент</entry> +<entry +>Использование по умолчанию</entry> +<entry +>Частное использование</entry> +</row> +</thead> +<tbody> +<row> +<entry +>TAGS</entry> +<entry +>required</entry> +<entry +>always</entry> +</row> +<row> +<entry +>tag</entry> +<entry +>required</entry> +<entry +>always</entry> +</row> +<row> +<entry +>label</entry> +<entry +>optional</entry> +<entry +>обязательно для диалога "Свойства"</entry> +</row> +<row> +<entry +>attr</entry> +<entry +>optional</entry> +<entry +>обязательно для определения атрибута</entry> +</row> +<row> +<entry +>tooltip</entry> +<entry +>optional</entry> +<entry +>обязательно для подсказок в диалоге "Свойства"</entry> +</row> +<row> +<entry +>whatsthis</entry> +<entry +>optional</entry> +<entry +>обязательно для возможности отображения краткой справки <quote +>Что это? </quote +></entry> +</row> +<row> +<entry +>list</entry> +<entry +>optional</entry> +<entry +>обязательно если attr имеет тип <quote +>list</quote +></entry> +</row> +<row> +<entry +>item</entry> +<entry +>optional</entry> +<entry +>обязательно если используется <list +></entry> +</row> +<row> +<entry +>textlocation</entry> +<entry +>optional</entry> +<entry +>always</entry> +</row> +<row> +<entry +>location</entry> +<entry +>optional</entry> +<entry +>обязательно если используется метка</entry> +</row> +<row> +<entry +>text</entry> +<entry +>optional</entry> +<entry +>обязательно если используется метка</entry> +</row> +<row> +<entry +>children</entry> +<entry +>optional</entry> +<entry +>список тегов, которые могут использоваться в определяемом</entry> +</row> +<row> +<entry +>child</entry> +<entry +>required</entry> +<entry +>дочерний элемент</entry> +</row> +<row> +<entry +>stoppingtags</entry> +<entry +>optional</entry> +<entry +>список тегов, которые приводят к окончанию действия другого тега</entry> +</row> +<row> +<entry +>stoppingtag</entry> +<entry +>required</entry> +<entry +>тег, который приводит к окончанию действия другого тега</entry> +</row> +</tbody> +</tgroup> +</informaltable> + + +<sect3 id="dtep-element-descriptions-3-2"> +<title +>Описания элементов TagXML</title> + +<para +>Ниже детально описывается каждый элемент. </para> + +<sect4 id="TAGS-3-2"> +<title +>TAGS</title> + +<para +>Корневой элемент файла TagXML. Может встречаться только один раз. Содержит определение нескольких тегов. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +><emphasis +>НЕТ</emphasis +></entry> +<entry +>tag</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="tag-3-2"> +<title +>tag</title> + +<para +>Название определяемого тега. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>TAGS</entry> +<entry +>label, attr, stoppingtags</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="6"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry +><entry +>Значения</entry> +<entry +>По умолчанию</entry +><entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>name</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> +<entry +>required</entry +><entry +>Название определяемого тега.</entry> +</row> +<row> +<entry +>single</entry +><entry +>boolean</entry +><entry +></entry +><entry +></entry> +<entry +>optional</entry +><entry +>Требуется ли закрывающий тег </имя_тега +>.</entry> +</row> +<row> +<entry +>type</entry +><entry +>string</entry +><entry +></entry +><entry +>xmltag</entry> +<entry +>optional</entry +><entry +>Тип определяемого тега.</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>xmltag</entry +><entry +></entry> +<entry +></entry +><entry +>Тип тега основывается на XML (только семья 1).</entry> +</row> +<row> + <entry +></entry +><entry +></entry +><entry +>entity</entry +><entry +></entry> + <entry +></entry +><entry +>Тип тега основывается на сущности (только семья 1).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>property</entry +><entry +></entry> +<entry +></entry +><entry +>Тип тега основывается на &CSS; (только семья 2).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>function</entry +><entry +></entry> +<entry +></entry +><entry +>Тип тега - функция сценария. Если это так, <attr +> становится аргументами функции (только семья 2).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>class</entry +><entry +></entry> +<entry +></entry +><entry +>Тип тега - класс сценария (только семья 2).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>method</entry +><entry +></entry> +<entry +></entry +><entry +>Тип тега - метод класса (только семья 2).</entry> +</row> +<row> +<entry +>returnType</entry +><entry +>string</entry +><entry +></entry +><entry +>void </entry> +<entry +>optional</entry +><entry +>Тип возвращаемого значения определяемой функции (только семья 2)</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>void</entry +><entry +></entry> +<entry +></entry +><entry +>Возвращаемое значение игнорируется (void).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>int</entry +><entry +></entry> +<entry +></entry +><entry +>Возвращается число (integer).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>float</entry +><entry +></entry> +<entry +></entry +><entry +>Возвращается число с плавающей точкой (floating point).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>long</entry +><entry +></entry> +<entry +></entry +><entry +>Возвращается длинное целочисленное (long integer).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>string</entry +><entry +></entry> +<entry +></entry +><entry +>Возвращается строка</entry> +</row> +<row> + <entry +>version</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Версия языка, для которой тег разрешён</entry> +</row> +<row> + <entry +>extends</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Разрешено только если тип атрибута - "class". Имя базового класса (только семья 2).</entry> +</row> +<row> + <entry +>class</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Разрешено только если тип атрибута - "method". Имя класса, к которому принадлежит метод (только семья 2).</entry> +</row> +<row> + <entry +>common</entry +><entry +>boolean</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Если "yes", тег указывает группу общих атрибутов и они могут быть добавлены в любой другой тег (только семья 1).</entry> +</row> +<row> + <entry +>comment</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>строка, выводящаяся возле имени тега в списке автозавершения</entry> +</row +></tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="label-3-2"> +<title +>label</title> + +<para +>Добавить в диалог метку. Её текст указывается тегом <text +>. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>tag</entry> +<entry +>text, location</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="attr-3-2"> +<title +>attr</title> + +<para +>Определяет один атрибут тега. Содержит имя, тип атрибута, информацию о его отображении. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>tag</entry> +<entry +>location, list, tooltip, whatsthis, textlocation</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="6"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry +><entry +>Значения</entry> +<entry +>По умолчанию</entry +><entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>name</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> +<entry +>required</entry +><entry +>Имя определяемого атрибута.</entry> +</row> +<row> +<entry +>type</entry +><entry +>string</entry +><entry +></entry +><entry +>input</entry> +<entry +>required</entry +><entry +>Тип определяемого атрибута.</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>input</entry +><entry +></entry> +<entry +></entry +><entry +>Поте текстового ввода (text field).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>check</entry +><entry +></entry> +<entry +></entry +><entry +>Логическое поле (check box).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>color</entry +><entry +></entry> +<entry +></entry +><entry +>Значение поля - цвет</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>url</entry +><entry +></entry> +<entry +></entry +><entry +>Значение поля - &URL; (или локальный файл)</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>list</entry +><entry +></entry> +<entry +></entry +><entry +>Значение поля - запись указанного списка.</entry> +</row> +<row> +<entry +>status</entry +><entry +>string</entry +><entry +></entry +><entry +>optional</entry> +<entry +>required</entry +><entry +>Обязательность аргумента (только семья 2).</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>optional</entry +><entry +></entry> +<entry +></entry +><entry +>Аргумент необязателен</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>required</entry +><entry +></entry> +<entry +></entry +><entry +>Аргумент обязателен</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>implied</entry +><entry +></entry> +<entry +></entry +><entry +>Аргумент есть неявный.</entry> +</row> +<row> + <entry +>source</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Указывает источники вариантов значений атрибута в редакторе тегов и дереве атрибутов</entry> +</row> +<row> + <entry +></entry +><entry +></entry +><entry +>selection</entry +><entry +></entry> + <entry +></entry +><entry +>Выделенный текст</entry> +</row> +<row> + <entry +></entry +><entry +></entry +><entry +>dcop</entry +><entry +></entry> + <entry +></entry +><entry +>Вывод метода dcop</entry> +</row> +<row> + <entry +>interface</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Требует source="dcop". Интерфейс dcop из &quantaplus;.</entry> +</row> +<row> + <entry +>method</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Требует source="dcop" и имени интерфейса. Имя метода, предоставляемого интерфейсом &quantaplus;.</entry> +</row> +<row> + <entry +>arguments</entry +><entry +>string</entry +><entry +></entry +><entry +></entry> + <entry +>optional</entry +><entry +>Требует source="dcop" имени интерфейса и метода. Аргументы, передаваемые методу. Может быть пустым или "%tagname%" (имя текущего тега).</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="tooltip-3-2"> +<title +>tooltip</title> + +<para +>Текст подсказки поля (отображается при наведении курсора на него). </para> + +<note> +<para +>Поддерживается только обычный текст (т.е. нельзя использовать никакие теги). </para> +</note> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>attr</entry> +<entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="whatsthis-3-2"> +<title +>whatsthis</title> + +<para +>Текст "Что это?" для данного поля. </para> + +<note> +<para +>Поддерживается только обычный текст (т.е. нельзя использовать никакие теги). </para> +</note> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>attr</entry> +<entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="list-3-2"> +<title +>list</title> + +<para +>Тег, сводящий вместе записи в списке. Может употребляться только один раз для каждого описания атрибута. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>attr</entry> +<entry +>item</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="item-3-2"> +<title +>item</title> + +<para +>Определяет запись в списке. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>list</entry> +<entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="textlocation-3-2"> +<title +>textlocation</title> + +<para +>Позиция в окне свойств параметра, отвечающего атрибуту тега. Может употребляться только один раз для каждого атрибута диалога (т.е. для каждого <attr +>). Не может содержать подэлементы. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry> +<entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>attr</entry> +<entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="4"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry> +<entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>row</entry +><entry +>неотрицательное целое</entry> +<entry +>required</entry +><entry +>Ряд поля или метки при отображении в окне.</entry> +</row> +<row> +<entry +>col</entry +><entry +>неотрицательное целое</entry> +<entry +>required</entry +><entry +>Столбец поля или метки при отображении в окне.</entry> +</row> +<row> +<entry +>rowspan</entry +><entry +>неотрицательное целое</entry> +<entry +>optional</entry +><entry +>Число рядов, отводимых полю.</entry> +</row> +<row> +<entry +>colspan</entry +><entry +>неотрицательное целое</entry> +<entry +>optional</entry +><entry +>Число столбцов, отводимых полю.</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="location-3-2"> +<title +>location</title> + +<para +>Положение и размер поля в окне свойств. Может употребляться только один раз для каждого поля в диалоге (т.е. для каждого <attr +> и <label +>). Не может содержать подэлементы. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>label, attr</entry +><entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="4"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry> +<entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>row</entry +><entry +>неотрицательное целое</entry> +<entry +>required</entry +><entry +>Ряд поля или метки при отображении в окне.</entry> +</row> +<row> +<entry +>col</entry +><entry +>неотрицательное целое</entry> +<entry +>required</entry +><entry +>Столбец поля или метки при отображении в окне.</entry> +</row> +<row> +<entry +>rowspan</entry +><entry +>неотрицательное целое</entry> +<entry +>optional</entry +><entry +>Число рядов, отводимых полю.</entry> +</row> +<row> +<entry +>colspan</entry +><entry +>неотрицательное целое</entry> +<entry +>optional</entry +><entry +>Число столбцов, отводимых полю.</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="text-3-2"> +<title +>text</title> + +<para +>Текст метки или флажка (check box). </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>label, attr</entry +><entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="children-3-2"> +<title +>children</title> + +<para +>Список элементов, которые могут использоваться в определяемом теге. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>tag</entry +><entry +>child</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="child-3-2"> +<title +>child</title> + +<para +>Дочерний тег. Не может содержать подэлементы. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>children</entry +><entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="4"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry +><entry +>Значения</entry> +<entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>name</entry +><entry +>string</entry +><entry +></entry> +<entry +>required</entry +><entry +>Тег, который может употребляться в некотором другом теге.</entry> +</row> +<row> +<entry +>использование</entry +><entry +>string</entry +><entry +></entry> +<entry +>optional</entry +><entry +>Отношение к родителю.</entry> +</row> +<row> +<entry +></entry +><entry +></entry +><entry +>required</entry> +<entry +></entry +><entry +>Родитель должен иметь как минимум одного потомка с этим именем.</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="stoppingtags-3-2"> +<title +>stoppingtags</title> + +<para +>Список элементов, которые приводят к окончанию действия тега. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>tag</entry +><entry +>stoppingtag</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> + +<sect4 id="stoppingtag-3-2"> +<title +>stoppingtag</title> + +<para +>Тег, приводящий к окончанию действия другого тега. Не может содержать подэлементы. </para> + +<informaltable> +<tgroup cols="2"> +<thead> +<row> +<entry +>Родительские элементы</entry +><entry +>Дочерние элементы</entry> +</row> +</thead> +<tbody> +<row> +<entry +>stoppingtags</entry +><entry +><emphasis +>НЕТ</emphasis +></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<informaltable> +<tgroup cols="4"> +<thead> +<row> +<entry +>Атрибут</entry +><entry +>Тип</entry> +<entry +>Use</entry +><entry +>Описание</entry> +</row> +</thead> +<tbody> +<row> +<entry +>name</entry +><entry +>string</entry> +<entry +>required</entry +><entry +>Теги, приводящие к окончанию действия другого тега.</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</sect4> +</sect3> + +<sect3 id="tagxml-usage-3-2"> +<title +>Использование TagXML</title> + +<para +>Все файлы TagXML должны начинаться с декларации &XML;: <?xml version="1.0" encoding="UTF-8"?>, правильно структурированными и закрытыми. </para> + +<important> +<para +>Пробелы не играют роли, однако следите за символами & и <. В элементах <tooltip +>, <whatsthis +>, <text +>, их лучше заменить на &amp; и &lt; соответственно. Невыполнение этого не приведёт к краху, но ваша работа может пропасть. </para> +</important> +</sect3> + +<sect3 id="tagxml-validation-3-2"> +<title +>Проверка TagXML</title> + +<para +>Чтобы выполнить проверку файлов TagXML, выберите <quote +>Сервис</quote +>, <quote +>Проверить TagXML.</quote +>. </para> + +<note> +<para +>Эта функция пока что не реализована и проверка происходит при загрузке файлов TagXML в &quantaplus;. </para> +</note> +</sect3> + +<sect3 id="tagxml-examples-3-2"> +<title +>Примеры TagXML</title> + +<sect4 id="family-one-3-2"> +<title +>Семья 1</title> + +<para +>Ниже следует файл TagXML семьи 1. Он описывает элемент &W3C; &XML; <schema +>. Имя такого файла будет schema.tag. Просто, не так ли? </para> + +<informalexample> +<literallayout +><markup> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE TAGS> +<TAGS> + <tag name="schema"> + <label> + <text +>id</text> + <location col="0" row="0"/> + </label> + <attr name="id" type="input"> + <tooltip +>A unique ID for the element.</tooltip> + <whatsthis +>A unique ID for the element.</whatsthis> + <location col="1" row="0"/> + </attr> + + <label> + <text +>version</text> + <location col="0" row="1"/> + </label> + <attr name="version" type="input"> + <tooltip +>Version of the schema.</tooltip> + <whatsthis +>Version of the schema.</whatsthis> + <location col="1" row="1"/> + </attr> + + <label> + <text +>targetNamespace</text> + <location col="0" row="2"/> + </label> + <attr name="targetNamespace" type="input"> + <tooltip +>&URI; reference of the namespace of this schema.</tooltip> + <whatsthis +>&URI; reference of the namespace of this schema.</whatsthis> + <location col="1" row="2"/> + </attr> + + <label> + <text +>xmlns</text> + <location col="0" row="3"/> + </label> + <attr name="xmlns" type="input"> + <tooltip +>&URI; reference for one or more namespaces for use in this schema. + If no prefix is used, then components of that namespace may be used unqualified.</tooltip> + <whatsthis +>&URI; reference for one or more namespaces for use in this schema. + If no prefix is used, then components of that namespace may be used unqualified.</whatsthis> + <location col="1" row="3"/> + </attr> + + <label> + <text +>attributeFormDefault</text> + <location col="0" row="4"/> + </label> + <attr name="attributeFormDefault" type="list"> + <items> + <item +>qualified</item> + <item +>unqualified</item> + </items> + <tooltip +>Default form for all attributes within this schema.</tooltip> + <whatsthis +>Default form for all attributes within this schema.</whatsthis> + <location col="1" row="4"/> + </attr> + + <label> + <text +>elementFormDefault</text> + <location col="0" row="5"/> + </label> + <attr name="elementFormDefault" type="list"> + <items> + <item +>qualified</item> + <item +>unqualified</item> + </items> + <tooltip +>Default form for all elements within this schema.</tooltip> + <whatsthis +>Default form for all elements within this schema.</whatsthis> + <location col="1" row="5"/> + </attr> + + <label> + <text +>blockDefault</text> + <location col="0" row="6"/> + </label> + <attr name="blockDefault" type="input"> + <location col="1" row="6"/> + </attr> + + <label> + <text +>finalDefault</text> + <location col="0" row="7"/> + </label> + <attr name="finalDefault" type="input"> + <location col="1" row="7"/> + </attr> + </tag> +</TAGS> +</markup +> +</literallayout> +</informalexample> +</sect4> + +<sect4 id="family-two-3-2"> +<title +>Семья 2</title> + +<para +>Ниже следует файл TagXML семьи 2. Он описывает &PHP;-функцию перегрузки (overload). Имя такого файла будет overload.tag. </para> + +<informalexample> +<literallayout +><markup> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE tags> +<tags> + <tag name="overload" type="function" returnType="void"> +<attr name="class_name" type="string" status="optional"/> + </tag> +</tags> +</markup +> +</literallayout> +</informalexample> +</sect4> +</sect3> +</sect2> + +<sect2 id="descriptionrc-3-2"> +<title +>&descriptionrc;</title> + +<para +>Файл &descriptionrc; также имеет простую структуру, для него есть редактор, который можно вызвать из <menuchoice +><guimenu +>DTD</guimenu +><guimenuitem +>Параметры DTD...</guimenuitem +></menuchoice +>. Чтобы изменить &descriptionrc; вновь созданного &DTEP;, создайте файл &descriptionrc; со следующими параметрами: </para> +<para> + <informalexample> + <literallayout +><markup> + [General] + Version = Пишите 1 для &quantaplus; версии <=3.1.2 и 2 - для любой более поздней версии. + Name = Строка определения DTD. (-//&W3C;//DTD HTML 4.01 Transitional//EN) + NickName = Красивое имя DTD. (HTML 4.01 Transitional). если не указано, будет использоваться Name. + </markup +> + </literallayout> + </informalexample> +</para> +<para +>После того, как вы создали такой файл и сохранили его в папку с файлами тегов, загрузите новый &DTEP; через <menuchoice +><guimenu +>DTD</guimenu +><guimenuitem +>Загрузить пакет DTD (DTEP)...</guimenuitem +></menuchoice +>, теперь вы можете продолжить правку &DTEP;. Воспользуйтесь контекстной справкой (всплывающими подсказки и "что это?") панели инструментов редактора, или прочтите файл<filename +>quanta/data/dtep/dtd-description.txt</filename +> из исходного архива, в котором подробно описан формат. </para> +</sect2> +</sect1> + +<sect1 id="user-actions"> +<title +>Действия, определяемые пользователем</title> +<para +>В &quantaplus; можно настраивать и создавать свои действия, выполняемые при нажатии на кнопку панели инструментов, выборе пункта меню или нажатии комбинации клавиш. </para> +<para +>Существует три типа действий, определяемых пользователем: <itemizedlist> +<listitem +><para +><link linkend="text-actions" +>Операции с текстом</link +></para +></listitem> +<listitem +><para +><link linkend="tag-actions" +>Операции с тегами</link +></para +></listitem> +<listitem +><para +><link linkend="script-actions" +>Операции на основе сценариев</link +></para +></listitem> +</itemizedlist> +</para> +<sect2 id="creating-actions"> +<title +>Создание действий</title> +<para +>Создать действие можно с помощью пункт меню<menuchoice +><guimenu +>Настройка</guimenu +><guimenuitem +>Настроить действия</guimenuitem +></menuchoice +>: <mediaobject +> <imageobject> +<imagedata fileref="dtep_doc_img7.png" format="PNG"/> +</imageobject> +</mediaobject> +<variablelist> +<varlistentry> +<term +><guilabel +>Тип</guilabel +></term> +<listitem +><para +><link linkend="text-actions" +>Текст</link +>, <link linkend="tag-actions" +>Тег</link +> или <link linkend="script-actions" +>Сценарий</link +>.</para> +</listitem> +</varlistentry> +<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> +<varlistentry> +<term +><guilabel +>Комбинация клавиш</guilabel +></term> +<listitem +><para +>Комбинация клавиш, присвоенная действию.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Панели инструментов</guilabel +></term> +<listitem +><para +>Панели инструментов, содержащие действие. Для подробностей см. <xref linkend="creating-toolbars-3-2"/>.</para> +</listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Расширенные настройки</guilabel +></term> +<listitem +><para +>Параметры, специфичные для каждого типа действий. См. далее </para +></listitem> +</varlistentry> +</variablelist> +</para> +</sect2> +<sect2 id="text-actions"> +<title +>Операции с текстом</title> +<para> +<mediaobject +><imageobject> +<imagedata fileref="text-action.png" format="PNG"/> +</imageobject +></mediaobject +> Самые простые действия. Вы можете ввести текст в области <guilabel +>Расширенные настройки</guilabel +>, который будет вставлен в документ при выполнении действия. </para> +</sect2> +<sect2 id="tag-actions"> +<title +>Операции с тегами</title> +<para +>Используется для вставки XML-тегов в текст. <mediaobject +><imageobject +> <imagedata fileref="tag-actions.png" format="PNG"/> </imageobject +></mediaobject +> <variablelist +> <varlistentry +> <term +><guilabel +><tag></guilabel +></term +> <listitem +><para +>Имя тега.</para +></listitem +> </varlistentry +> <varlistentry +> <term +><guilabel +></tag></guilabel +></term +> <listitem +><para +>Если флажок отмечен, нужен также закрывающий тег. Если при вызове действия в документе будет присутствовать выделенный текст, то начальный тег будет вставлен перед ним, а закрывающий - после.</para +></listitem +> </varlistentry +> <varlistentry +> <term +><guilabel +>Запустить диалог "Изменить тег", если он доступен</guilabel +></term +> <listitem +><para +>Если для данного тега будет найден файл tagXML с описанием его атрибутов, перед вставкой тега будет предложено ввести их в диалоговом окне.</para +></listitem +> </varlistentry +> </variablelist +> Символы <, > и / не будут автоматически добавлены и вы должны ввести их сами. </para> +</sect2> +<sect2 id="script-actions"> +<title +>Операции на основе сценариев</title> +<para> +<mediaobject +><imageobject> +<imagedata fileref="script-action.png" format="PNG"/> +</imageobject +></mediaobject +> Этот тип действий - самый мощный. С помощью него можно запускать внешние приложения (в основном это сценарии), которым будет передаваться документ или его часть. Примером такого типа служит стандартный диалог &quantaplus; <guibutton +>Быстрый запуск</guibutton +>, различные действия, связанные с (X)HTML. </para> +<para +>Сначала нужно ввести строку запуска сценария, например: <command +>sh /home/myHome/myScript.sh</command +>. </para> +<para +>Для указания пути рекомендуется использовать <command +>%scriptdir</command +> (например: <command +>sh %scriptdir/myScript.sh</command +>). Тогда сценарий будет искаться в нескольких папках, а именно: <itemizedlist +> <listitem +><para +>глобальная папка сценариев: <filename +><envar +>$KDEDIR</envar +>/share/apps/quanta/scripts</filename +></para +></listitem +> <listitem +><para +>локальная папка сценариев: <filename +><envar +>$KDEHOME</envar +>/share/apps/quanta/scripts</filename +></para +></listitem +> <listitem +><para +>список путей пользователя: <envar +>$PATH</envar +></para +></listitem +></itemizedlist +> Есть также другие переменные: <itemizedlist> +<listitem +><para +><command +>%f</command +>: адрес текущего документа. Последовательность символов "file:/" будет удалена из имени файла.</para +></listitem> +<listitem +><para +><command +>%input</command +>: выделенный текст (см. далее).</para +></listitem> +<listitem +><para +><command +>%projectbase</command +>: адрес текущего проекта. Если нет открытых проектов, возвращает пустую строку.</para +></listitem> +<listitem +><para +><command +>%pid</command +>: PID процесса &quantaplus;. Если запущен один экземпляр &quantaplus; перед PID будет добавлено "unique ". Это может быть использовано для работы через DCOP.</para +></listitem> +<listitem +><para +><command +>%userarguments</command +>: используется при событиях. Будет заменено свойствами события в следующем порядке: <variablelist> +<varlistentry> +<term +>Первый аргумент</term> +<listitem +><para +>Дескриптор (id) сценария</para +></listitem> +</varlistentry> +<varlistentry> +<term +>Второй аргумент</term> +<listitem +><para +>имя события</para +></listitem> +</varlistentry> +<varlistentry> +<term +>Третий аргумент</term> +<listitem +><para +>параметры события, обычно имя текущего файла, или путь к файлу проекта.</para +></listitem> +</varlistentry> +</variablelist> + </para +></listitem> +</itemizedlist> +</para> +<para +>Также сценарий может получить исходные данные напрямую от &quantaplus; через стандартный вход. В выпадающем списке <guilabel +>Ввод</guilabel +> вы можете выбрать данные, которые будут посылаться: <itemizedlist> +<listitem +><para +><guilabel +>Ничего</guilabel +>.</para +></listitem> +<listitem +><para +><guilabel +>Текущий документ</guilabel +>: весь документ.</para +></listitem> +<listitem +><para +><guilabel +>Выделенный текст</guilabel +>. Только когда выбран этот вариант, <command +>%input</command +> имеет смысл.</para +></listitem> +</itemizedlist> +</para> +<para +>Аналогично, можно получить вывод сценария через конфейеры. Существует два типа вывода: <itemizedlist +> <listitem +><para +>обычный (stdout);</para +> </listitem +> <listitem +><para +>ошибки (stderr).</para +> </listitem +> </itemizedlist +>Вы можете выбрать, что делать с выводом, возможные варианты: <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> +<listitem +><para +><guilabel +>Создать новый документ</guilabel +>.</para +></listitem> +<listitem +><para +><guilabel +>Заменить текущий документ</guilabel +>.</para +></listitem> +<listitem +><para +><guilabel +>Окно сообщений</guilabel +>: вывод сценарий будет помещён на служебную вкладку <guilabel +>Сообщения</guilabel +>.</para +></listitem> +</itemizedlist> +</para> +<para +>Варианты для вывода сообщений об ошибках такие же.</para> +</sect2> +</sect1> + +<sect1 id="creating-toolbars-3-2"> +<title +>Создание панелей инструментов</title> + +<para +>Ниже следует описание создания панелей инструментов для &DTEP;. По сути, это - графические элементы, отвечающие определённому действию. Последнее - основа почти всех расширений, которые есть или будут появляться в будущем в &quantaplus;. Схема определения действия в &quantaplus; также годится для автозавершения и диалогов свойств тегов. </para> + +<sect2 id="from-scratch-to-complete-3-2"> +<title +>С нуля до совершенства</title> + +<para +>Начнём с создания пользовательской панели инструментов: <menuchoice +><guimenu +>Панели инструментов</guimenu +><guimenuitem +>Добавить пользовательскую панель инструментов</guimenuitem +></menuchoice +>. </para> + +<para +>Если в языке разметки много тегов, лучше разделить их по группам. Для каждой группы создайте отдельную панель инструментов. В нашем случае тегов не много, поэтому обойдёмся одной. </para> + +<para +>Далее следует добавить и настроить действия - <menuchoice +><guimenu +>Настройка</guimenu +><guimenuitem +>Настроить действия...</guimenuitem +></menuchoice +>. </para> + +<para +>Нажмите кнопку <guibutton +>Создать</guibutton +> (внизу окна). </para> + +<para +>Заполните все необходимые поля и добавьте тег в соответствующую панель инструментов. </para> + +<para +>Если у тега есть атрибуты (и вы будете часто их использовать), отметьте <guilabel +>Запустить диалог "Изменить тег", если он доступен</guilabel +>, и каждый раз при использовании данного действия, будет предложено заполнить свойства добавляемого тега. </para> + +<para +>Теперь у вас должно быть что-то вроде этого. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img7.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Нажмите кнопку <guibutton +>Применить</guibutton +>. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img8.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Но что же получилось?! Как вы запомните, какой значок к какому действию относится? Давайте заменим его на свой (покрасивее). </para> + +<para +>Для создания значка можно использовать &kiconedit;. Запустите её из &kmenu;, <menuchoice +> <guisubmenu +>Графика</guisubmenu +><guisubmenu +>Дополнительные приложения</guisubmenu +></menuchoice +>) </para> + +<para +>&kiconedit; создаёт значки с расширением 32x32, однако нам нужно 22x22 - <menuchoice +> <guimenu +>Правка</guimenu +> <guimenuitem +>Изменить размер</guimenuitem +> </menuchoice +>. </para> + +<para +>Помните, что вы создаёте значок, который поможет вспомнить вам (и не только вам) действие, которому он отвечает, а не просто красивую картинку. </para> + +<para +>В нашем случае создаётся значок для тега <start +>,поэтому для него будет использоваться зелёный цвет. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img15.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Сохраним значок. </para> + +<para +>После создания значка нужно ассоциировать его с действием. Откройте окно <emphasis +>Настроить действия</emphasis +> и выберите нужное действие. Слева от поля <emphasis +>Текст</emphasis +> есть кнопка - нажмите её. </para> + +<para +>Выберите <guilabel +>Прочие пиктограммы</guilabel +> и нажмите кнопку <guibutton +>Обзор</guibutton +>. </para> + +<para +>Перейдите в папку, в которой вы сохранили значок, выберите его и нажмите <guibutton +>OK</guibutton +>. </para> + +<para +>Нажмите кнопку <guibutton +>Применить</guibutton +> +> или <guibutton +>OK</guibutton +>. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img18.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Чтобы добавить какие-то общие для &quantaplus; функции на панель инструментов, или разделители кнопок, в окне <guilabel +>Настроить панели инструментов</guilabel +> выделите нужную панель инструментов и выберите в списке слева действие (или разделитель). </para> + + + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img21.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Например, можно добавить <guilabel +>Просмотр в Konqueror</guilabel +>. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img22.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Обратите внимание на то, что разделитель способствует группированию. Один человек подумал, что кнопка &konqueror;, стоящая рядом с зелёной кнопкой "Старт", имеет противоположное значение ("Стоп"). </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img23.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>После внесения изменений, нажмите кнопку <guibutton +>OK</guibutton +>. </para> + +<para +>Посмотрите на новую панель инструментов! Фантастика! </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img24.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>Не забудьте протестировать вашу новую панель инструментов нажатием всех расположенных на ней кнопок. </para> + +<mediaobject> +<imageobject> +<imagedata fileref="dtep_doc_img25.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +><menuchoice +><guimenu +>Панели инструментов</guimenu +> <guisubmenu +>Сохранить</guisubmenu +><guimenuitem +> Сохранить как локальную панель инструментов</guimenuitem +></menuchoice +>. </para> + +<para +>Сохраните её в правильной папке. Убедитесь, что вы заполнили &descriptionrc; так, чтобы при открытии документа данного типа, загружались соответствующие панели инструментов. </para> +</sect2> +</sect1> + + +<sect1 id="creating-quanta-docs-3-2"> +<sect1info> +<title +>Написание документации</title> +<authorgroup> +<author +><firstname +>Robert</firstname +> <surname +>Nickel</surname +> <affiliation +> <address +><email +>robert@artnickel.com</email +></address> +</affiliation> +</author> + +<othercredit role="translator" +><firstname +>Николай</firstname +><surname +>Шафоростов</surname +><affiliation +><address +><email +>shafff@ukr.net</email +></address +></affiliation +><contrib +>Перевод на русский</contrib +></othercredit +> + +</authorgroup> +</sect1info> + +<title +>Написание документации</title> + +<para +>Самое заметное, что может сделать рядовой пользователь - дополнение документации по разметочному или скриптовому языку, который ему нравится. Далее описывается, как было создано дерево документации &PHP;. </para> + +<para +>Перед началом написания проверьте <ulink url="http://quanta.sf.net/main1.php?contfile=resource" +>репозиторий &quantaplus;</ulink +>. </para> + +<para +>Первый шаг - получение существующей документации. Второй - создание файла <filename +>docrc</filename +>. </para> + +<para +>Общая форма docrc: </para> + +<informalexample> +<literallayout +>#KDE Config File +[Tree] +Doc dir=<replaceable +>путь (относительно к этому файлу) к файлам html</replaceable +> ⪚ php42/ +#top level elements +Top Element=<replaceable +>Описание документации</replaceable +> ⪚ &PHP; 4.2 documentation + +Section 1=Section1.html +Section 2=#Sec2.1,#Sec2.2,#Sec2.3 +Sec2.1=Sec2.1.html +Sec2.2=Sec2.2.html +Sec2.3=Sec2.3.html +... + +[Context] +ContextList=func1,func2,tag1,tag2,tag3 +func1=func1.html +func2=func2.html +tag1=tag1.html +tag2=tag2.html +tag3=tag3.html +</literallayout> +</informalexample> + +<para +>Файл <filename +>docrc</filename +> разделён на две секции - Tree и Context. </para> + +<para +>Секция Tree определяет размещение вашей документации в структуре (слева в главном окне). Например: </para> + +<mediaobject> +<imageobject> +<imagedata fileref="doc-view1.png" format="PNG"/> +</imageobject> +</mediaobject> + +<para +>В соответствии со структурой, описанной выше, <filename +>docrc</filename +> для &PHP; выглядит так: </para> + +<informalexample> +<literallayout +>#KDE Config File + +[Tree] + +Doc dir=php42/ + +#top level elements +Top Element=PHP 4.2 documentation + +PHP 4.2 documentation=Table of Contents,#Getting Started,#Language Reference + +Table of Contents=index.html + +Getting Started=Introduction, ... +Introduction=introduction.html +... + +Language Reference=Basic syntax, ... +Basic syntax=language.basic-syntax.html +... + +</literallayout> +</informalexample> + +<para +>Обратите внимание на наличие <literal +>#</literal +> перед <quote +>Getting Started</quote +> и <quote +>Language Reference</quote +>. Это говорит о том, что они содержат подэлементы. </para> + +<para +>Table of Contents ссылается напрямую на файл (и следовательно отображается внизу структуры, папки показываются первыми). </para> + +<important> +<para +>Пробелы не влияют ни на что, но следите за символами & и <. Во всех файлах, основанных на &XML;, их лучше заменить на &amp; и &lt; соответственно. </para> +</important> + +<para +>Секция Context используется контекстно зависимой справки. Например, вы пишите скрипт &PHP; и вам нужно просмотреть документацию по функции <function +>mysql_fetch_array</function +>. Для этого вам нужно будет выделить её название и нажать <keycombo action="simul" +>&Ctrl;<keycap +>H</keycap +> </keycombo +>. При этом отобразится сразу информация по этой функции. </para> + +<variablelist> +<varlistentry> +<term +>ContextList</term> +<listitem> +<para +>Разделённый запятыми список контекстных пунктов, по которым будет доступна контекстная справка (для &PHP; - это его функции). </para> +</listitem> +</varlistentry> +<varlistentry> +<term +>Ссылки на файлы контекстной справки</term> +<listitem> +<para +>Формат: "контекстный пункт=страница html". Например: acos=function.acos.html </para> +</listitem> +</varlistentry> +</variablelist> + +<para +>Готовая версия <filename +>docrc</filename +>: </para> + +<informalexample> +<literallayout +>#Keywords for context help +[Context] +ContextList=abs,acos,acosh,addcslashes,addslashes,... + +abs=function.abs.html +acos=function.acos.html +acosh=function.acosh.html +addcslashes=function.addcslashes.html +addslashes=function.addslashes.html +... +</literallayout> +</informalexample> + +<para +>Теперь сохраните ваш файл <filename +>docrc</filename +> в папке <filename class="directory" +>$<envar +>HOME</envar +>/.kde/share/apps/quanta/doc</filename +> или <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/apps/quanta/doc</filename +> для локального или глобального использования соответственно. Затем создайте папку (как указано в файле <filename +>docrc</filename +>) в той же папке с <filename +>docrc</filename +> и скопируйте в неё страницы &HTML;. </para> + +<para +>Перезапустите &quantaplus; чтобы увидеть добавленную документацию. </para> + +<para +>После того, как вы убедитесь, что она годится для того, чтобы ею поделиться с другими пользователями, отправьте её с файлом <filename +>docrc</filename +> в <ulink url="http://quanta.sf.net/main1.php?contfile=resource" +>репозиторий &quantaplus;</ulink +>. Вы не станете богатым, но вы сможете гордиться тем, что содействовали разработке самого лучшего инструмента веб-разработки в мире. </para> + +</sect1> + +<sect1 id="sharing-resources"> + <title +>Публикация ресурсов</title> + <para +>С &quantaplus; вы не будете жадным одиночкой, с её помощью можно делиться разными расширениями (пакетами DTEP, панелями инструментов с действиями, сценариями, шаблонами) друг с другом. Есть два способа этого: </para> + <variablelist> + <varlistentry> + <term +>Отправка по Email</term> + <listitem +><para +>Расширения (называемые также ресурсами) можно посылать по электронной почте. Для этого в нескольких (в т.ч. контекстных) меню есть пункт <guilabel +>Отправить по E-Mail...</guilabel +>. </para +></listitem> + </varlistentry> + <varlistentry> + <term +>Публикация на главном сервере</term> + <listitem +><para +>Если вы хотите поделиться своими расширениями со всеми, опубликуйте их в центральном хранилище. Присланные ресурсы проверяются и действительно публикуются только если они могут быть полезны другим. Для публикации, ресурс нужно подписать ключом GPG/PGP.</para> + <para +>О том, как загружать расширения с центрального хранилища, обратитесь к разделу <xref linkend="download-resources"/>.</para> + <para +>Во время передачи вам нужно будет ввести пароль к своему ключу GPG (он не будет сохранён), выбрав его перед этим. В диалоге <guilabel +>Опубликовать</guilabel +> заполните все поля (<guilabel +>URL для просмотра</guilabel +> можно оставить пустым) и нажмите <guilabel +>OK</guilabel +>.</para> + <para +>Данный диалог можно открыть из <menuchoice +><guimenu +>DTD</guimenu +><guimenuitem +>Передать пакет DTD (DTEP)...</guimenuitem +></menuchoice +>, <menuchoice +><guimenu +>Панели инструментов</guimenu +><guimenuitem +>Передать панель инструментов...</guimenuitem +></menuchoice +>, контекстных меню файлов и папок в деревьях <guilabel +>шаблонов</guilabel +> и <guilabel +>сценариев</guilabel +>. </para> + </listitem> + </varlistentry> +</variablelist> +</sect1> +<sect1 id="download-resources"> +<title +>Загрузка расширений</title> +<para +>На сайте &quantaplus; есть специальный раздел, в котором хранятся расширения, не вошедшие в основной дистрибутив из-за большого размера или редкого использования, или же они были опубликованы после выхода послежней версии программы. Такие ресурсы содержат в себе механизм автоматической установки. Чтобы получить к ним доступ, воспользуйтесь пунктом меню <guilabel +>Загрузить</guilabel +>, его можно найти в разных местах, например в <menuchoice +><guimenu +>DTD</guimenu +><guimenuitem +>Загрузить пакет DTD (DTEP)...</guimenuitem +></menuchoice +>, <menuchoice +><guimenu +>Панели инструментов</guimenu +><guimenuitem +>Загрузить панель инструментов...</guimenuitem +></menuchoice +>, в контекстных меню пустых областей или в корнях деревьев <guilabel +>Шаблоны</guilabel +>, <guilabel +>Сценарии</guilabel +> и <guilabel +>Документация</guilabel +>. </para> +<para +>Перед непосредственной установкой расширения, &quantaplus; проверяет контрольную сумму и подпись. </para> +<para> + <caution +><para +>Устанавливайте расширения, особенно панели инструментов и сценарии, только из проверенных источников!</para +></caution> +</para> +</sect1> + +<sect1 id="converting-dtd"> + <title +>Получение &DTEP; из DTD</title> + <para +>Добавление поддержки языков разметки, основанных на XML, автоматизировано, и пакет DTEP создаётся на основе DTD. </para> + <para +><menuchoice +><guimenu +>DTD</guimenu +><guimenuitem +>Загрузить и конвертировать DTD...</guimenuitem +></menuchoice +>, выберите файл <filename +>.dtd</filename +>, содержащий определение DTD, после чего вы увидите следующее окно: <mediaobject +> <imageobject> + <imagedata fileref="dtd-conversion.png" format="PNG"/> + </imageobject> + </mediaobject +> + </para> +<para +>Доступные поля:</para> +<itemizedlist> + <listitem +><para +><guilabel +>Конечная папка:</guilabel +> папка, в которую будут записаны данные создаваемого &DTEP;, будет расположена в <filename +><envar +>$KDEHOME</envar +>/share/apps/quanta/dtep</filename +>. </para> + </listitem> + <listitem +><para +><guilabel +>Имя:</guilabel +> строка определения DTD</para +></listitem> + <listitem +><para +><guilabel +>Отображаемое имя:</guilabel +> имя, видимое пользователю.</para +></listitem> + <listitem +><para +><guilabel +>Строка описания !DOCTYPE:</guilabel +> строка, которая должна присутствовать в теге !DOCTYPE, например HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"</para +></listitem> + <listitem +><para +><guilabel +>DTD URL:</guilabel +> Адрес файла DTD</para +></listitem> + <listitem +><para +><guilabel +>Расширение по умолчанию:</guilabel +> расширение, которое обычно имеют файлы с данным DTD</para +></listitem> + <listitem +><para +><guilabel +>Теги и атрибуты с учётом регистра:</guilabel +> обычно включено для языков, основанных на XML</para +></listitem> + <listitem +><para +><guilabel +>Настроить DTEP после преобразования:</guilabel +> запустить редактор &descriptionrc; после завершения преобразования, чтобы вы могли проверить/настроить созданный &DTEP;.</para +></listitem> +</itemizedlist> + +</sect1> +</chapter> |