<othercredit role="translator"><firstname>Николай</firstname><surname>Шафоростов</surname><affiliation><address><email>shafff@ukr.net</email></address></affiliation><contrib>Перевод на русский</contrib></othercredit>
<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 (.tag) определяют атрибуты, специфичные для данного тега и содержимое диалога "Свойства тега". Файл &descriptionrc; содержит правила и данные о &DTEP;. Панели инструментов позволяют быстро обратиться к тому или иному тегу для вставки его в документ. </para>
<para>Каталоги тегов - это обычные каталоги, содержащие файлы &descriptionrc; и TagXML. В их названии отражается название языка разметки сего версией (например, html-4.01-strict) </para>
<para>Таблица содержит список элементов, определённых в TagXML и говорит, обязательны они, или нет. Не смотря на то, что обязательны не все, рекомендуется всё же использовать как можно больше доступных элементов, чтобы пользователи имели больше настроек и информации. </para>
<entry>optional</entry><entry>Требует source="dcop" имени интерфейса и метода. Аргументы, передаваемые методу. Может быть пустым или "%tagname%" (имя текущего тега).</entry>
<para>Позиция в окне свойств параметра, отвечающего атрибуту тега. Может употребляться только один раз для каждого атрибута диалога (т.е. для каждого <attr>). Не может содержать подэлементы. </para>
<para>Положение и размер поля в окне свойств. Может употребляться только один раз для каждого поля в диалоге (т.е. для каждого <attr> и <label>). Не может содержать подэлементы. </para>
<para>Пробелы не играют роли, однако следите за символами & и <. В элементах <tooltip>, <whatsthis>, <text>, их лучше заменить на &amp; и &lt; соответственно. Невыполнение этого не приведёт к краху, но ваша работа может пропасть. </para>
<para>Файл &descriptionrc; также имеет простую структуру, для него есть редактор, который можно вызвать из <menuchoice><guimenu>DTD</guimenu><guimenuitem>Параметры DTD...</guimenuitem></menuchoice>. Чтобы изменить &descriptionrc; вновь созданного &DTEP;, создайте файл &descriptionrc; со следующими параметрами: </para>
<para>После того, как вы создали такой файл и сохранили его в папку с файлами тегов, загрузите новый &DTEP; через <menuchoice><guimenu>DTD</guimenu><guimenuitem>Загрузить пакет DTD (DTEP)...</guimenuitem></menuchoice>, теперь вы можете продолжить правку &DTEP;. Воспользуйтесь контекстной справкой (всплывающими подсказки и "что это?") панели инструментов редактора, или прочтите файл<filename>quanta/data/dtep/dtd-description.txt</filename> из исходного архива, в котором подробно описан формат. </para>
<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>
<para>Создать действие можно с помощью пункт меню<menuchoice><guimenu>Настройка</guimenu><guimenuitem>Настроить действия</guimenuitem></menuchoice>: <mediaobject> <imageobject>
</imageobject></mediaobject> Самые простые действия. Вы можете ввести текст в области <guilabel>Расширенные настройки</guilabel>, который будет вставлен в документ при выполнении действия. </para>
<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>
</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>$TDEDIR</envar>/share/apps/quanta/scripts</filename></para></listitem> <listitem><para>локальная папка сценариев: <filename><envar>$TDEHOME</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>
<para>Также сценарий может получить исходные данные напрямую от &quantaplus; через стандартный вход. В выпадающем списке <guilabel>Ввод</guilabel> вы можете выбрать данные, которые будут посылаться: <itemizedlist>
<para>Аналогично, можно получить вывод сценария через конфейеры. Существует два типа вывода: <itemizedlist> <listitem><para>обычный (stdout);</para> </listitem> <listitem><para>ошибки (stderr).</para> </listitem> </itemizedlist>Вы можете выбрать, что делать с выводом, возможные варианты: <itemizedlist>
<listitem><para><guilabel>Окно сообщений</guilabel>: вывод сценарий будет помещён на служебную вкладку <guilabel>Сообщения</guilabel>.</para></listitem>
<para>Ниже следует описание создания панелей инструментов для &DTEP;. По сути, это - графические элементы, отвечающие определённому действию. Последнее - основа почти всех расширений, которые есть или будут появляться в будущем в &quantaplus;. Схема определения действия в &quantaplus; также годится для автозавершения и диалогов свойств тегов. </para>
<para>Начнём с создания пользовательской панели инструментов: <menuchoice><guimenu>Панели инструментов</guimenu><guimenuitem>Добавить пользовательскую панель инструментов</guimenuitem></menuchoice>. </para>
<para>Если в языке разметки много тегов, лучше разделить их по группам. Для каждой группы создайте отдельную панель инструментов. В нашем случае тегов не много, поэтому обойдёмся одной. </para>
<para>Далее следует добавить и настроить действия - <menuchoice><guimenu>Настройка</guimenu><guimenuitem>Настроить действия...</guimenuitem></menuchoice>. </para>
<para>Заполните все необходимые поля и добавьте тег в соответствующую панель инструментов. </para>
<para>Если у тега есть атрибуты (и вы будете часто их использовать), отметьте <guilabel>Запустить диалог "Изменить тег", если он доступен</guilabel>, и каждый раз при использовании данного действия, будет предложено заполнить свойства добавляемого тега. </para>
<para>Теперь у вас должно быть что-то вроде этого. </para>
<para>Для создания значка можно использовать &tdeiconedit;. Запустите её из &kmenu;, <menuchoice> <guisubmenu>Графика</guisubmenu><guisubmenu>Дополнительные приложения</guisubmenu></menuchoice>) </para>
<para>&tdeiconedit; создаёт значки с расширением 32x32, однако нам нужно 22x22 - <menuchoice> <guimenu>Правка</guimenu> <guimenuitem>Изменить размер</guimenuitem> </menuchoice>. </para>
<para>Помните, что вы создаёте значок, который поможет вспомнить вам (и не только вам) действие, которому он отвечает, а не просто красивую картинку. </para>
<para>В нашем случае создаётся значок для тега <start>,поэтому для него будет использоваться зелёный цвет. </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>
<para>Чтобы добавить какие-то общие для &quantaplus; функции на панель инструментов, или разделители кнопок, в окне <guilabel>Настроить панели инструментов</guilabel> выделите нужную панель инструментов и выберите в списке слева действие (или разделитель). </para>
<para>Обратите внимание на то, что разделитель способствует группированию. Один человек подумал, что кнопка &konqueror;, стоящая рядом с зелёной кнопкой "Старт", имеет противоположное значение ("Стоп"). </para>
<para><menuchoice><guimenu>Панели инструментов</guimenu> <guisubmenu>Сохранить</guisubmenu><guimenuitem> Сохранить как локальную панель инструментов</guimenuitem></menuchoice>. </para>
<para>Сохраните её в правильной папке. Убедитесь, что вы заполнили &descriptionrc; так, чтобы при открытии документа данного типа, загружались соответствующие панели инструментов. </para>
<othercredit role="translator"><firstname>Николай</firstname><surname>Шафоростов</surname><affiliation><address><email>shafff@ukr.net</email></address></affiliation><contrib>Перевод на русский</contrib></othercredit>
<para>Самое заметное, что может сделать рядовой пользователь - дополнение документации по разметочному или скриптовому языку, который ему нравится. Далее описывается, как было создано дерево документации &PHP;. </para>
<para>Обратите внимание на наличие <literal>#</literal> перед <quote>Getting Started</quote> и <quote>Language Reference</quote>. Это говорит о том, что они содержат подэлементы. </para>
<para>Пробелы не влияют ни на что, но следите за символами & и <. Во всех файлах, основанных на &XML;, их лучше заменить на &amp; и &lt; соответственно. </para>
<para>Секция Context используется контекстно зависимой справки. Например, вы пишите скрипт &PHP; и вам нужно просмотреть документацию по функции <function>mysql_fetch_array</function>. Для этого вам нужно будет выделить её название и нажать <keycombo action="simul">&Ctrl;<keycap>H</keycap> </keycombo>. При этом отобразится сразу информация по этой функции. </para>
<para>Теперь сохраните ваш файл <filename>docrc</filename> в папке <filename class="directory">$<envar>HOME</envar>/.trinity/share/apps/quanta/doc</filename> или <filename class="directory">$<envar>TDEDIR</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>
<para>С &quantaplus; вы не будете жадным одиночкой, с её помощью можно делиться разными расширениями (пакетами DTEP, панелями инструментов с действиями, сценариями, шаблонами) друг с другом. Есть два способа этого: </para>
<listitem><para>Расширения (называемые также ресурсами) можно посылать по электронной почте. Для этого в нескольких (в т.ч. контекстных) меню есть пункт <guilabel>Отправить по E-Mail...</guilabel>. </para></listitem>
<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>
<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>Добавление поддержки языков разметки, основанных на XML, автоматизировано, и пакет DTEP создаётся на основе DTD. </para>
<para><menuchoice><guimenu>DTD</guimenu><guimenuitem>Загрузить и конвертировать DTD...</guimenuitem></menuchoice>, выберите файл <filename>.dtd</filename>, содержащий определение DTD, после чего вы увидите следующее окно: <mediaobject> <imageobject>
<listitem><para><guilabel>Конечная папка:</guilabel> папка, в которую будут записаны данные создаваемого &DTEP;, будет расположена в <filename><envar>$TDEHOME</envar>/share/apps/quanta/dtep</filename>. </para>
<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>