Sign in Join
Wiki copytemporary

Lazarus Documentation Editor/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Введение
22
33Хорошая, исчерпывающая документация является важной недостающей частью Lazarus. Чтобы помочь подготовить необходимую документацию, был разработан инструмент под названием LazDE. На этой странице описывается использование этого инструмента для редактирования существующей документации или для создания новых файлов документации. В этом вики-документе я использую \[\$LazDir\] для обозначения базового каталога Lazarus. Поэтому, когда вы читаете \[\$LazDir\], просто замените его на каталог, соответствующий вашей установке Lazarus.
44
55## Обоснование
66
77Основная цель этого проекта документации - сделать доступным онлайн-файл справки. Чтобы сделать файл справки независимым от платформы, мы используем файлы XML для записи и хранения данных документации. Каждый модуль Lazarus имеет свой собственный файл данных XML-документации.
88
99Большое количество таких файлов XML уже написано, и их можно использовать:
1010
1111- для создания HTML-страниц, к которым вы можете получить доступ на <https://lazarus-ccr.sourceforge.io/docs/lcl/>
1212- для создания CHM-файлов, которые можно просматривать в автономном режиме (после помещения в правильно зарегистрированный локальный каталог) в качестве справки для Lazarus, которая доступна даже в том случае, если у вас нет доступа к Интернету.
1313
1414## Задача документирования Lazarus выполняется
1515
1616Как упоминалось выше, XML был выбран в качестве формата данных документации, поскольку он не зависит от платформы. Текущую документацию можно найти в \[\$LazDir\]/docs/xml/. Пока что каталог /lcl/ содержит в основном пустые файлы скелетов, которые содержат мало (или не содержат) полезной документации. XML-файлы, которые вы найдете в этом каталоге, генерируются автоматически и должны быть адаптированы, чтобы быть полезными. Итак, теперь мы знаем, где найти файлы, давайте посмотрим на инструмент, который мы разрабатываем для создания и адаптации файлов данных документации.
1717
1818### Инструмент документирования Lazarus
1919
2020"Lazde" - это инструмент, предназначенный для редактирования файлов документации XML. Его также можно использовать для генерации базового скелета XML-файла, полученного из исходного файла модуля Pascal, и (с помощью внешнего инструмента FPDoc) для генерации HTML-версии документации. Пример вывода FPDoc можно увидеть [здесь](https://lazarus-ccr.sourceforge.io/docs/lcl/index.html), часть документации на данный момент. Поскольку скомпилированные исполняемые версии lazde не поставляются, вы должны самостоятельно создать один экземпляр для себя. Исходники "lazde" можно найти в \[\$LazDir\]/doceditor/. Когда вы соберете и запустите эту программу, если вы откроете \[\$LazDir\]/docs/xml/lcl/dialogs.xml, вы увидите такую картинку
2121
22-<figure>
23-<img src="Lazdemain.png" title="Lazdemain.png" />
24-<figcaption>Lazdemain.png</figcaption>
25-</figure>
22+![](/wiki-images/a/a8/Lazdemain.png)
2623
2724### Документирование LCL
2825
29-<figure>
30-<img src="Lazdeelements.png" title="Lazdeelements.png" />
31-<figcaption>Lazdeelements.png</figcaption>
32-</figure>
26+![](/wiki-images/9/90/Lazdeelements.png)
3327
3428Открытие узла "Packages"(пакеты) показывает узел "LCL", который содержит узел "Dialogs"(диалоги). Выбор этого последнего узла заполняет нижнюю TreeView с элементами. Эти элементы списка Constants (константы), Types (типы) and Classes (классы) определены в модуле Dialogs.pp. Любые модули, используемые dialogs.pp также добавляются в качестве дополнительных узлов. Другие узлы добавляются для свойств класса, параметров функций и процедур, и так далее.
3529
3630Выбор узла в нижнем левом дереве отображает содержимое этого узла с правой стороны окна.
3731
3832Если взглянуть на [эту страницу](https://lazarus-ccr.sourceforge.io/docs/lcl/dialogs/index-4.html), вы увидите обзор классов, определенных в модуле "dialogs". Напротив названия каждого класса вы увидите строку текста-пояснения, который был введен в «короткий» EditBox редактора lazde.
3933
4034Далее под «коротким» EditBox будет подразумеваться поле для заметок, куда вы можете вводить более подробное описание компонента или свойства.
4135
4236> **Note:** Если вы хотите вставить новую строку, используйте тэг \<br/\>
4337
4438Below the main description field are further fields labelled "Errors", "See also" and "Example code File". Ниже основного описания поля есть дополнительными поля, обозначенные как "Errors" (ошибки), "See also" (см. также) и "Example code File" (файл с кодом примера).
4539
4640"Errors" (ошибки) используется для предоставления информации о каких-либо ошибках, возращаемых функциями, если параметры имеют значение, которые находятся вне заданного диапазона. Например, см. [эту страницу](https://lazarus-ccr.sourceforge.io/docs/rtl/dateutils/recodeyear.html).
4741
48-Каждое поле - "See also" (см. также) и "Example code File" (файл с кодом примера) - снабжено тремя кнопками (<span class="kbd">+</span>, <span class="kbd">^</span>, <span class="kbd">-</span>). Эти кнопки позволяют добавлять и удалять ссылки на другие страницы или примеры кода соответственно.
42+Каждое поле - "See also" (см. также) и "Example code File" (файл с кодом примера) - снабжено тремя кнопками (`+`, `^`, `-`). Эти кнопки позволяют добавлять и удалять ссылки на другие страницы или примеры кода соответственно.
4943
5044## Результат
5145
5246Посмотрите на описание [InputQuery](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/inputquery.html). В верхней части страницы вы можете увидеть, о чем эта страница (в нашем случае о функции InputQuery из dialogs.pp). Первая строка текста содержит то, что было введено в «коротком» EditBox в lazde.
5347
5448Далее следует объявление этой функции, взятое из исходного файла dialogs.pp. Часть объявления создается html-компоновщиком и анализируется непосредственно из исходников. Поскольку есть две версии этой функции, исходная позиция говорит 0.
5549
5650------------------------------------------------------------------------
5751
5852Прим.перев.: на момент перевода статьи по указанной ссылке видны три функции с Source position: dialogs.pp line 761.
5953
6054------------------------------------------------------------------------
6155
6256Затем приводятся аргументы. Когда вы откроете узел InputQuery в lazde, вы увидите каждый аргумент отдельно как дочерний узел. Текст, показанный после каждого аргумента, соответствует тому, что было введено в "Короткий" editbox , когда был выбран соответствующий дочерний узел.
6357
6458Результат функции показан в четвертом абзаце. Текст, показанный здесь, был введен так же, как и для аргументов функции.
6559
6660И, наконец, показывается описание. Это текст, введенный в поле description lazde.
6761
6862## Добавление документации для новых модулей
6963
7064Конечно, есть много других модулей, ожидающих документирования. Если модуль является частью пакета, скорее всего, для вас не существует xml-файла, с которого вы можете начать документирование. Вам придется начинать с нуля, и у lazde есть функция, которая поможет вам сделать это. Просто зайдите в File -\> New и появится следующее окно:
7165
72-<figure>
73-<img src="Lazdenewdocfromfile.png" title="Lazdenewdocfromfile.png" />
74-<figcaption>Lazdenewdocfromfile.png</figcaption>
75-</figure>
66+![](/wiki-images/f/f2/Lazdenewdocfromfile.png)
7667
7768Вы начнете процесс написания документации, дав имя пакету. Все модули, которые вы хотите добавить в этот пакет, должны иметь одинаковое имя. После этого в поле "Input file" вы вводите исходный файл для использования. Вы также можете просмотреть этот файл. Затем введите в поле "Output file" имя для выходного файла - не забудьте про расширение xml! - и нажмите ОК.
7869
7970Затем lazde сгенерирует скелет документации. Сгенерированный файл будет открыт, а древовидная структура будет заполнена всеми модулями, классами, типами, функциями и т.д. из исходного файла. Теперь вы готовы начать документировать новую часть Lazarus.
8071
8172Взгляните на [[LCL Documentation Roadmap|дорожную карту документации LCL]], чтобы увидеть, какие модули еще нуждаются в документировании.
8273
8374Вы можете использовать [[FPDoc Updater]], чтобы легко обновлять файлы FPDoc, когда модули Pascal были изменены.
8475
8576## Окончательный результат
8677
8778Что я испытывал во время использования программы, так это то, что мне хотелось бы увидеть, как информация отображается на ее заключительном этапе (в виде просматриваемого документа). Для этого lazde использует утилиту для сборки всех необходимых HTML-файлов.
8879
8980Эта утилита может быть запущена из меню Extra -\> Build. На следующем скрине будет показано:
9081
91-<figure>
92-<img src="Lazdebuild1.png" title="Lazdebuild1.png" />
93-<figcaption>Lazdebuild1.png</figcaption>
94-</figure>
82+![](/wiki-images/2/27/Lazdebuild1.png)
9583
9684"Package" должен совпадать с именем, которое вы дали при создании XML-файлов. Для "Format" выберите HTML. В поле "Output" вы вводите путь, в котором должны быть размещены полученные файлы. Нажмите "Add all" (Добавить все), и все документы, над которыми вы работали, будут добавлены в проект. Затем перейдите к следующей вкладке
9785
98-<figure>
99-<img src="Lazdebuild2.png" title="Lazdebuild2.png" />
100-<figcaption>Lazdebuild2.png</figcaption>
101-</figure>
86+![](/wiki-images/0/01/Lazdebuild2.png)
10287
10388и введите пути к исходным файлам. После того, как вы нажали build, ваш HD начнет тарахтеть и, наконец, на вкладке «Build output» будет показан следующий вывод.
10489
10590``` bash
10691 Building docs using command: fpdoc --package="LCL"
10792 --output="/home/matthijs/documentatie/LCL" --format=html --content
10893 --descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"
10994 --descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"
11095 --descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"
11196 --descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"
11297 --input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"
11398 --input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"
11499 --input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"
115100 --input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp"
116101
117102 FPDoc - Free Pascal Documentation Tool
118103 (c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org
119104
120105 Writing 2788 pages...
121106 Done.
122107 Documentation successfully built.
123108```
124109
125110Когда вы перейдете в каталог, который вы ввели в поле "Output", вы увидите файл index.html и подкаталоги (в данном случае 4 шт.). Откройте index.html в вашем любимом браузере и посмотрите результат всей вашей тяжелой работы над документацией. Вы сможете перейти по ссылкам и прочитать все это.
126111
127112Если вы планируете продолжить работу с этим пакетом документации, нажмите "Save" (Сохранить) и сохраните параметры сборки. Вам будет предложено указать имя файла, и параметры будут сохранены. В следующий раз, когда вы захотите собрать HTML-файлы, вы можете просто «загрузить» их снова.
128113
129114## Отправка ваших трудов
130115
131116Если вы довольны своей работой над документацией Lazarus, вы наверняка захотите поделиться ею с сообществом Lazarus. Все, что вам нужно сделать, это создать [[Creating A Patch/ru|патч]], заархивировать и отправить его.
132117
133118## Улучшения приветствуются
134119
135120> **Note:** lazde находится в стадии разработки. Он работает, хотя, конечно, еще не полностью закончен. Вы можете столкнуться с ошибками. Не стесняйтесь исправлять их!
136121
137122---
138123*From the Free Pascal wiki, page "Lazarus Documentation Editor/ru", as it stood on 2020-07-24 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history