Создание документации
Документация в репозитории/дистрибутивах
В рамках проекта создаётся документация, призванная помочь пользователям в освоении Linux.
Печатная документация
Печатная документация прилагается к дистрибутивам, выпускаемым ALT Linux в виде брошюр, руководств и т.п. Другой вид печатной документации -- отдельные книги, учебники и т.п.
Электронная документация
Электронная документация в виде rpm-пакетов присутствует в репозиториях. Как правило, именно на основе электронной документации создаются печатные версии.
Комплект электронной документации состоит из:
- модулей
- Модуль представляет из себя самодостаточный текст, раскрывающий в той либо иной степени определённую тему. Например модуль может описывать процесс установки дополнительного ПО.
- Пример: docs-packages_apt
- выпуска
- Выпуск не несёт в себе информативной части, а служит лишь для объединения модулей. Выпуск -- это аналог оглавления в печатном издании.
- Пример: docs-issue-server
- indexhtml-пакета
- описание
- Пример: indexhtml-lite
Форматы электронной документации
Электронная документация присутствует в установленной системе в виде html-файлов. Начальная страница каждого модуля содержит ссылку на паспорт модуля. Паспорт представляет из себя файл, содержащий различную мета-информацию: Автор, Версия, Тема, Краткое описание. Паспорт позволяет легче ориентироваться в большом количестве модулей.
Модули документации создаются разработчиком в одном из поддерживаемых форматов:
- html
- Описание формата: http://www.w3.org/html/
- docbook
- Описание формата: http://www.docbook.org/specs/
- m-k
- Описание формата содержится в документации к пакету ALDConvert
Генерация html происходит в момент создания пакета. Этот процесс автоматизирован и описан в разделе Цикл разработки.
Для выпусков поддерживается только html-формат, расширенный возможностью использовать в ссылках adt:
<ul>
<li><a href="adt:packages_apt">Управление пакетами (APT)</a></li>
<li><a href="adt:init_d">Стартовые сценарии</a></li>
</ul>
В этом примере в результирующем html автоматически создаются ссылки на модули docs-packages_apt и docs-init_d а в сам пакет выпуска проставляеюся зависимости на эти два модуля.
Цикл разработки
- Тексты коллективно создаются и модифицируются в git.altlinux.org
- При этом git используется не только при создании текстов с нуля, но и при опакечивании сторонних текстов.
- При необходимости создаются пакеты
- Пакеты оказываются в нужном репозитории
Инструменты документатора
Инструменты, облегчающие работу документатора:
rpm-build-docs
В пакете rpm-build-docs содержится несколько средств для автоматизации процесса превращения документа в пакет в Сизифе.
Общая задача -- сделать процесс подготовки пакетов максимально автоматизированным, сведя необходимое участие в нём человека к однократному созданию первоначального спека. А последующую пересборку пакета при всех обновлениях самого документа сделать по возможности автоматической.
В пакет входят следующие компоненты:
docs_genspec
Утилита, которая из указанного архива с документом (из Кучи) вынимает docinfo и на основе данных из него строит типичный спек-файл. Она умеет также обновлять уже имеющийся спек-файл (если он был некогда сгенерён этой же утилитой и не испорчен до неузнаваемости).
docsbuild
Скрипт, который запускает процесс сборки документации из исходного формата в html. В одном из аргументов ему передаётся название исходного формата. Дальше он смотрит по таблице, какая функция отвечает за сборку из этого формата в html и запускает эту функцию. Принципиально разрабатывался как расширяемый -- чтобы легко было добавлять новые функции для сборки html из других форматов.
Пользователь не должен вручную запускать docsbuild, он запускается при сборке пакета при помощи rpm-макроса, которому docs_genspec проставит нужные аргументы. У пользователя остаётся возможность добавить в спеке этому макросу любые дополнительные параметры для сборки (Естественно, их должна понимать сборочная функция для этого формата).
RPM-макросы
Нужны для того, чтобы не повторять стандартные операции в каждом спеке. Кроме того, последовательное использование макросов позволит при любых изменениях в этих стандартных операциях (т. е. в сборочной среде) _автоматически_ пересобирать пакеты с документацией, _ничего_ не изменяя в самих спеках (т. е. полностью без вмешательства человека).
alt-docs-genextras
В ALT Linux предусмотрена стандартизованная процедура для включения вновь установленных выпусков документации в общую структуру электронной документации.
Сценарий alt-docs-genextras, находящийся в данном пакете служит для автоматической генерации и обновления списка ссылок на установленные выпуски документации (пакеты docs-issue-*) на главной странице документации ALT Linux (пакет alt-docs-main).
Этот сценарий вызывается после установки и удаления любого выпуска документации, для удобства есть rpm-макросы, находящиеся в пакете rpm-build-docs.
Информация о пакете (файл docinfo)
Текст ссылок, размещаемых на главной странице документации, автоматически генерируется на основании файла docinfo. По умолчанию такие файлы ищутся в подкаталогах /usr/share/doc/alt-docs/.
Если файл docinfo содержит русскоязычный текст (что предполагается), он должен быть в кодировке koi8-r!
В файле docinfo должна содержаться следующая информация:
- Title: Название документа
- Название будет текстом гиперссылки на стартовую страницу документа (index.html).
- Abstract: Аннотация документа.
- Этот текст будет включён в оглавление и должен давать представление о тематике документа и о том, для кого он предназначен (опытный пользователь, новичок, любознательный и т. п.). Строгих требований к аннотации нет, но из неё читатель должен иметь возможность понять, что это за документ и нужно ли ему его читать.
Допустимо и даже желательно, чтобы краткое описание пакета (поле %description -l ru_RU.KOI8-R в spec-файле пакета) совпадало с аннотацией.
- Section: Тематическая рубрика.
- Тематическая рубрика, в которую нужно поместить ссылку. В настоящее время пакет для помещения на главную страницу документации (alt-docs-main) здесь должно быть значение distrib. Другие значения игнорируются.
Текущий формат файла docinfo таков:
Section: Название документа Abstract: Аннотация документа (достаточно информативная, поэтому длиной в несколько строк). Section: textbook
Обратите внимание: точки после текста в поле Section нет!
Обратите внимание: поля в файле docinfo должны быть разделены пустыми строками!
Глоссарий терминов
Cоглашения при написании документации
- Ссылки на сайты даются с указанием завершающего слэша
- http://www.altlinux.ru/
http://www.altlinux.ru
- Буква ё используется. Скрипт для полуавтоматической расстановки букв ё в тексте.
- Обращение вы пишем со строчной
- Обращаем ваше внимание
Обращаем Ваше внимание
Пример создания модуля документации
- Выбрать один из поддерживаемых форматов
- Создать паспорт модуля
- docinfo-файл с синтаксисом,
- Создать spec-файл
- При написании spec-файла следует придерживаться общих правил. (Дать ссылку).
Шаблоны docinfo-файла и spec-файла можно взять c http://git.altlinux.org/ (Дать точную ссылку)