Создание документации: различия между версиями

Материал из ALT Linux Wiki
Строка 47: Строка 47:
== Инструменты документатора ==
== Инструменты документатора ==


git, rpm-build-docs, alt-docs-genextras
Инструменты, облегчающие работу документатора:
* git
* [[#rpm-build-docs|rpm-build-docs]]
* [[#alt-docs-genextras|alt-docs-genextras]]


=== rpm-build-docs ===
=== rpm-build-docs ===
Строка 117: Строка 120:
он должен быть в кодировке koi8-r!                                   
он должен быть в кодировке koi8-r!                                   


В файле docinfo должна содержаться следующая информация:  
В файле docinfo должна содержаться следующая информация:


Title:   Название документа. Название будет текстом гиперссылки  
* '''Title: Название документа'''
    на стартовую страницу документа (index.html).
:Название будет текстом гиперссылки на стартовую страницу документа (index.html).
 
* '''Abstract: Аннотация документа.'''
Abstract: Аннотация документа. Этот текст будет включён в оглавление
:Этот текст будет включён в оглавление и должен давать представление о тематике документа и о том, для кого он предназначен (опытный пользователь, новичок, любознательный и т. п.). Строгих требований к аннотации нет, но из неё читатель должен иметь возможность понять, что это за документ и нужно ли ему его читать.<br>Допустимо и даже желательно, чтобы краткое описание пакета (поле %description -l ru_RU.KOI8-R в spec-файле пакета) совпадало с аннотацией.
    и должен давать представление о тематике документа и о  
* '''Section:  Тематическая рубрика.'''
    том, для кого он предназначен (опытный пользователь,  
:Тематическая рубрика, в которую нужно поместить ссылку. В настоящее время пакет для помещения на главную страницу документации (alt-docs-main) здесь должно быть значение ''distrib''. Другие значения игнорируются.
    новичок, любознательный и т. п.). Строгих требований  
    к аннотации нет, но из неё читатель должен иметь возможность
    понять, что это за документ и нужно ли ему его читать.  
    Допустимо и даже желательно, чтобы краткое описание пакета  
    (поле %description -l ru_RU.KOI8-R в spec-файле пакета)  
    совпадало с аннотацией.
   
Section:  Тематическая рубрика, в которую нужно поместить ссылку.  
В настоящее время пакет для помещения на главную страницу
документации (alt-docs-main) здесь должно быть значение  
distrib. Другие значения игнорируются.


Текущий формат файла docinfo таков:
Текущий формат файла docinfo таков:


Начало примера
<pre>
Section: Название документа
Section: Название документа


Строка 147: Строка 138:


Section: textbook
Section: textbook
Конец примера
</pre>
                                                         
 
Обратите внимание: точки после текста в поле Section нет!<br>
Обратите внимание: поля в файле docinfo должны быть разделены пустыми строками!                                             
Обратите внимание: поля в файле docinfo должны быть разделены пустыми строками!                                             


Строка 157: Строка 149:
* Ссылки на сайты даются с указанием завершающего слэша
* Ссылки на сайты даются с указанием завершающего слэша
:<nowiki>http://www.altlinux.ru/</nowiki> <s><nowiki>http://www.altlinux.ru</nowiki></s>
:<nowiki>http://www.altlinux.ru/</nowiki> <s><nowiki>http://www.altlinux.ru</nowiki></s>
* Буква '''ё''' используется
* Обращение '''вы''' пишем со строчной
:Обращаем ваше внимание
:<s>Обращаем Ваше внимание</s>


== Пример создания модуля документации ==
== Пример создания модуля документации ==

Версия от 09:09, 22 августа 2008

Документация в репозитории/дистрибутивах

В рамках проекта создаётся документация, призванная помочь пользователям в освоении 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 происходит в момент создания пакета. Этот процесс автоматизирован и описан в разделе Цикл разработки.

Цикл разработки

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 должны быть разделены пустыми строками!


Глоссарий терминов

Соглашения при написании текстов модулей

  • Ссылки на сайты даются с указанием завершающего слэша
http://www.altlinux.ru/ http://www.altlinux.ru
  • Буква ё используется
  • Обращение вы пишем со строчной
Обращаем ваше внимание
Обращаем Ваше внимание

Пример создания модуля документации

  • Выбрать один из поддерживаемых форматов
  • Создать паспорт модуля
  • Создать spec-файл