[docs] Re: новый ALT Docs HOWTO: черновик раздела
Vitaly Ostanin
vyt на vzljot.ru
Пн Авг 9 11:47:24 MSD 2004
Kirill Maslinsky пишет:
> Всем привет!
С возвращением!
<skipped/>
> Правила разметки документации ALT Linux
>
> Формат DOCBOOK XML был избран для документации потому,
Скорее, DocBook/XML
> что он позволяет производить смысловую разметку документа,
> не ориентированную непосредственно на тот или иной конечный
> формат электронной или печатной публикации. Однако
> DOCBOOK XML -- это очень обширная спецификация, включающая
> около 400 понятий. Поэтому у автора или редактора документации
Здесь Вы называниете понятием теги, а далее в тексте - сущности.
Если придерживаться устоявшихся терминов, будет меньше путанницы.
> возникают две проблемы, затрудняющие эффективное использование
> этого инструмента: во-первых, на изучение DOCBOOK XML требуется много
> времени, которым редко располагает разработчик, документирующий
> программу. И во-вторых, при разметке документа в DOCBOOK возникают
> трудности с тем, какой из многочисленных доступных элементов
> следует выбрать для разметки той или иной части документа.
Кстати, обе эти проблемы решаются использованием редактора,
понимающего допустимые в контексте теги, и показывающего
соответствущий html для тега из DocBook TDG.
> Когда над документацией работает одновременно несколько человек,
> нередко получается разнобой в разметке одинаковых по смыслу
> элементов, теряется единообразие оформления, в результате документация
> выглядит неаккуратно, уменьшаются возможности автоматического
> построения указателей &ITD;
>
> Для разметки документации в рамках конкретного проекта, в
> частности, ALTDOCS, достаточно гораздо меньшего количества
> понятий, чем предлагает DOCBOOK. Использование для разметки
> сравнительно небольшого подмножества DOCBOOK позволяет
> и быстро освоить разметку, и избежать разнобоя и при этом
> сохранить все преимущества технологии DOCBOOK.
Уже есть такое подмножество в рамках того же DocBook TC, там 106
тегов:
http://www.oasis-open.org/docbook/xml/simple/sdocbook/
> Далее описаны принятые в ALTDOCS правила оформления
> документа. Предполагается, что читатель знаком с основами
> языка XML, терминами "элемент" (element) и "понятие" (entity).
Опять путанница в терминах.
> <!--FIXME: поставить ссылку на электронный ресурс с документацией по XML -->
>
> <Указание типа документа>
>
> В проекте ALTDOCS используется не стандартный формат docbookx,
> а его расширение docs.dtd. В него включается весь docbookx
> целиком и добавляются специфические для ALT Linux понятия
> (entities), а также дополнительное пространство имен (xmlns:alt)
> и тег для ссылки на названия дистрибутивов ALT Linux (alt:distro).
> Поэтому во всех документах, оформленных в docbook для ALT Linux,
> в качестве DTD следует указывать docs.dtd. docs.dtd поддерживает
> два основных типа документа: book для объединяющих документов
> и section для частей.
Это не так, docs.dtd не вносит никаких ограничений на типа
документа. Ограничений на корневые типы вообще не бывает в DTD -
только в стилях XSLT.
> Обычно пишутся отдельные разделы для
> включения в документацию, для которых нужно использовать
> DOCTYPE section.
>
> <Пример заголовка>
>
>
> <Разделы документа>
>
> В документах типа section используется один универсальный тег
> для разметки разделов всех уровней: <section>. Внутри каждого
> <section> должен обязательно присутствовать <title> --
> заголовок соответствующего раздела. За ним следует необязательный
> элемент <sectioninfo>, содержащий информацию о разделе (см.
> <Информация о документе>) и собственно содержание раздела.
> Каждый section может содержать как другие разделы <section>,
> так и собственно текстовые элементы: абзацы, списки, примеры &ITP;
> (см. ...)
>
> Элементы <section> могут быть сколько угодно раз вложены друг в друга, причем
> правильный уровень заголовка и, соответственно, его оформление
> и нумерация в конечном документе определяется по уровню
> вложенности элемента <section>.
Здесь можно явно указать, что использование явных уровней
вложенности (sect1, sect2 и т.д.) недопустимо.
> <Информация о документе>
>
> В начале документа, непосредственно после открывающего тега
> <section>, включается элемент <sectioninfo>, в котором следует
> указать всю необходимую информацию о документе: автора(ов)
> или переводчиков документа, сведения о существенных изменениях
> в документе.
>
> Автор(ы) должны быть указаны в любом документе. Причем если документ
> состоит из нескольких значительных по объему частей, написанных разными
> людьми, то желательно указать автора в <sectioninfo> каждого раздела.
> Впрочем, если несколько человек работали над текстом совместно, то
> лучше указать всех авторов в общем <sectioninfo> всего документа.
Здесь неясно, нужно ли указывать авторов в sectioninfo вложенных
section.
> Пример оформления авторов.
>
> Сведения о постоянных участниках ALTDOCS и авторах многих документов
> включены в пакет alt-entities (файл persons.xml). Если авторы
> перечислены в этом файле, то следует использовать более общую форму
> указания автора:
>
> пример persons.xml
>
> Помимо авторов, следует указывать и вклад других людей, работавших над
> документом: редакторов, переводчиков и пр.
>
> пример: <editor>, <othercredit>.
Здесь есть небольшая деталь - в нынешнем состоянии DTD в теге
othercredit нельзя указать нескольких персон на одно описание
помощи. Поэтому нужно либо дублировать описание помощи в каждом
othercredit, либо придумать тег alt:othercredit.
> Если условия распространения документа не отличаются от стандартной лицензии
> FDL, в <sectioninfo> не нужно указывать лицензию и условия распространения --
> они указаны для всей документации. Если же документ распространяется на каких-то
> специфических условиях, следует заполнить тег <legalnotice>: в нем может содержаться
> любой текст, заключенный в элементы <para>.
"в нем может содержаться" - замена Ё на Е сознательна или это
опечатка?
> <Разметка абзацев>
>
> Каждый абзац текста в DOCBOOK оформляется при помощи элемента <para>.
Чтобы было проще запомнить, IMHO, стоит указать, что para - это
параграф. Ну и абзац тоже.
> Однако сам текст абзаца, особенно в технической документации, не является
> совершенно однородным: в нем встречаются вводимые в первый раз термины, на
> которые пользователю стоит обратить внимание, примеры командной строки, ссылки
> на экранную документацию (man pages), имена файлов, пункты меню, комбинации
> клавиш &ITP; Чтобы такой текст можно было эффективно использовать для поиска
> информации, стоит так или иначе выделить эти элементы графически. К некоторым
> из них, например, к именам файлов, также должны применяться особые правила
> переноса. А чтобы текст выглядел аккуратно, очень важно соблюдать единообразие
> оформления, при этом графически выделенных элементов не должно быть слишком
> много. Поэтому очень важно во всем корпусе документации одинаковые по смыслу
> элементы оформлять одними и теми же тегами DOCBOOK. Ниже приведен список
> внутритекстовых (inline) элементов, которые принято оформлять в проекте
> ALTDOCS.
>
>
> <Первое употребление термина>
>
> Когда вы впервые употребляете термин, важный для дальнейшего понимания
> документа, или в тот момент, когда вы даете определение этого термина,
> стоит привлечь к нему внимание читателя, например, выделив курсивом.
> Для этого используется элемент <firstterm>. Последовательное употребление
> <firstterm> также упростит в дальнейшем составление указателя терминов.
Можно добавить, что если нет уверенности, впервые ли употреблён
термин, и нет желания просматривать на эту тему весь документ,
можно повторить выделение firstterm - первое вхождение можно
найти и стилями при обработке документа.
> <Имена файлов и каталогов>
>
> Имена файлов оформляются при помощи элемента <filename>. Полезно отличать
> имена файлов от имен каталогов, добавляя в последнем случае атрибут
> class="directory".
> При подготовке печатной документации очень важно правильное оформление
> имен файлов, &IE; это позволит автоматически переносить длинные
> имена файлов при подготовке печатной документации.
>
> ВНИМАНИЕ:
> Не следует использовать элемент <filename> не по назначению: в частности,
> названия пакетов (в базовой форме, например, coreutils) и прочих системных ресурсов
> не являются именами файлов, их следует оформлять при помощи элемента <systemitem>,
> подробнее см. раздел <Системные ресурсы>.
>
>
>
> Пример:
>
> <Примеры командной строки>
>
> Нередко возникает необходимость привести пример команды или команды с
> аргументами, которую должен будет ввести пользователь. Если этот
> пример довольно краткий -- ни к чему делать из него выносной пример
> отдельным абзацем (см. <screen>), достаточно графически выделить
> часть текста (например, другой гарнитурой, общепринято выделение
> таких фрагментов моноширинным шрифтом или шрифтом без засечек).
>
> Пример:
>
> Не нужно использовать элементы DOCBOOK <option> и <parameter>, поскольку
> чрезмерное дробление усложняет и разметку, и восприятие документа,
> особенно если для каждого элемента используется свой способ
> графического выделения. Во всех случаях вместо <option> и <parameter>
> следует использовать элемент <command>.
Способ графического выделения в данном случае не аргумент. Если
автор считает нужным выделить option или parameter, это его право
и обязанность. К тому же есть ещё refentry, где эти теги особенно
важны.
Я бы вообще предложил не ограничивать авторов в разметке - только
от ошибочных тегов.
> Более развернутые примеры, особенно длиной в несколько строк,
> нужно оформлять при помощи элемента <screen>. Обратите внимание,
> что в этом элементе сохраняются все пробелы, табуляции и концы строк
> (как в окружении verbatim в TeX), поэтому старайтесь следить за тем,
> чтобы в начале строк внутри <screen> не оставалось лишних пробельных
> символов. Элемент <screen> можно использовать
> как внутри абзаца, так и между абзацами.
Здесь можно указать про особенности обработки screen и ему
подобных стилем tuning.xsl - удаляются пустые строки до и после
текста. Пустые строки внутри листинга остаются.
<skipped/>
> <Понятия (entities)>
>
> Если в вашем тексте много раз используется название той или иной программы,
> протокола, устройства и др., есть смысл оформить его при помощи сущности
> (entity), которая представляет собой просто сокращение, макроопределение,
> раскрывающееся в строку с разметкой или без разметки DocBook.
> Использование entities позволяет урегулировать разное обозначение
> одних и тех же понятий (например, GNU General Public License) и
> избежать лишних опечаток. В проекте ALTDOCS уже определены многие часто
> употребляющиеся в документации ALTLINUX сущности, поэтому прежде
> чем создавать собственные entities, посмотрите, нет ли нужных вам
> сущностей среди уже определенных. Все сущности для документации
> ALTLINUX находятся в пакете alt-entities, в файлах common.ent, keys.ent,
> faq.ent, jabber.ent.
>
> Внимание!
> Список entities периодически пополняется, поэтому прежде чем браться
> за написание или разметку документации, убедитесь, что у вас установлен
> самая последняя версия пакета alt-entities.
Здесь можно добавить ссылку на этот пакет:
http://www.altlinux.ru/index.php?module=sisyphus&package=alt-entities
> Если среди существующих entities все же нет нужных вам, определите
> их локально, в преамбуле вашего файла документации:
>
> Пример:
>
> Стандартное понятие, которое должно всегда определяться локально в
> преамбуле документа -- &BASEID; -- содержит указание, в какую часть
> дерева документов должен быть включен ваш документ.
> Подробнее об этом см. раздел "ссылки между документами".
>
> <Ссылки и сноски>
>
> <Сноски>
>
> Сноски могут присутствовать в любом тексте: абзацах, заголовках разделов
> любого уровня.
> Для сносок используется элемент <footnote>. Обратите внимание,
> текст сносок должен быть также заключен в элемент <para>, вложенный
> в <footnote>.
>
> Пример:
>
>
> <Ссылки на ресурсы URL>
>
> Для ссылок на ресурсы при помощи URL в DocBook предусмотрен элемент
> <ulink>. Внутрь элемента помещается текст ссылки, а в значение атрибута
> url -- адрес.
> Пример:
>
> <Ссылки на экранную документацию>
>
> Для ссылок на экранную документацию (man pages) предназначен элемент
> <citerefentry>. Номер раздела, к которому относится документация, оформляется
> при помощи элемента <manvolnum>.
>
> <Ссылки на литературу>
>
> Группа элементов DocBook, предназначенная для оформления ссылок на литературу,
> требует для оформления каждой ссылки заполнить достаточно громоздкую
> конструкцию библиографического описания в виде XML. Пока не придуман
> удобный способ упростить или автоматизировать эту разметку, используйте
> обычные сноски для ссылок на литературу.
Удобный способ - это WYSIWYM редактор.
> <Ссылки на другие части документа>
>
> /использовать Останинский текст/
Пока не надо. Например, благодаря работе Олега Паращенко в
tuning.xsl добавлено преобразование olink в link в случае
нахождения ссылки и цели в одном документе.
> DocBook предлагает развитый и гибкий механизм гиперссылок. Из них могут
> пригодиться: элемент <link> -- обычная гиперссылка на любой элемент в
> в том же документе, в атрибуте endterm помещается id элемента, на который
> вы хотите сослаться. Соответственно, нужно убедиться, что этот id
> будет указан как атрибут искомого элемента. Если вы хотите сослаться
> на конкретное место в тексте, а не элемент, (например, "см. ниже"),
> можно использовать элемент <anchor> с соответствующим id. В самом элементе
> <link> должен содержаться текст ссылки.
>
> Пример:
>
> Более универсальный механизм ссылок предлагает элемент <xref>, когда
> текст ссылки генерируется автоматически, на основе названия и
> специальных атрибутов того элемента, на который указывает ссылка.
> Подробнее о вариантах работы <xref> см. в документации по DocBook.
>
> Пример:
>
> ВНИМАНИЕ!
> В настоящий момент элементы <xref> не вполне корректно обрабатываются
> db2latex при создании печатной версии документа. В этом случае
> не происходит автоматической генерации текста ссылки, поэтому
> нужно убедиться, что элемент <xref> имеет атрибут endterm, указывающий
> на id элемента, содержимое которого будет использовано как текст ссылки.
> Скорее всего, таким элементом окажется <title>. В случае генерации
> html это не требуется, <xref> будет обработан правильно.
Есть предложение забить на db2latex полностью, и использовать для
создания печатного вывода OpenOffice. Насколько я понял,
существуют стили для преобразования DocBook -> OOo. У OOo сейчас
вполне симпатичные pdf получаются.
> <Списки>
>
> Обычно в документации используются списки трех основных видов:
> нумерованные, ненумерованные (аналогично окружению itemize в TeX), поименованные
> (окружение description в TeX). Нумерованные списки в DocBook размечаются
> при помощи элемента <orderedlist> (окружение enumerate в TeX).
Элемент variablelist предназначен также для разметки любых
структур, например, дерева каталогов (уточнялось в рассылке
docbook at oasis-open.org).
> Пример:
>
> Ненумерованные списки -- элемент <itemizedlist>
>
> Пример:
>
> Поименованные списки -- элемент <variablelist>
>
> Пример:
>
> Обратите внимание, что каждый элемент <varlistitem> может
> содержать более одного <term>.
>
> DocBook позволяет давать название любому типу списка
> (элемент <title>), однако с точки зрения оформления
> и логической структуры документа такие названия обычно
> нежелательны.
У DocBook TC на этот счёт другое мнение :) Действительно, чем
мешает title ?
> Поэтому прежде чем использовать элемент <title>,
> внутри списка, подумайте, насколько он действительно необходим.
>
> <Предостережения и замечания>
>
> В пользовательской документации часто полезно обращать внимание
> читателя на "опасные места" и подводные камни, где многие
> пользователи совершают ошибки. Такие замечания обычно
> выделяются из основного текста при помощи рамок
> и цветных или серых плашек. В DOCBOOK предусмотрен ряд элементов
> для подобного рода замечаний разного уровня строгости.
> В документации для ALT Linux рекомендуется использовать два из
> них: <note> и <important>. В русскоязычных документах
> эти элементы будут озаглавлены "Важно" и "Внимание" соответственно.
Поскольку такие замечания со временем могут устаревать, например:
"Текущая версия установщика может некорректно определить
встроенное оборудование на чипсетах .... "
можно размечать такие замечания с атрибутом @role='temp' для
последующего отлова стилями и передачи корректору на предмет
актуальности.
> Пример:
>
> <Названия дистрибутивов ALT Linux>
>
> Нередко документация, написанная для одного из дистрибутивов
> ALT Linux, с незначительными изменениями применима и к другим
> дистрибутивам. При этом некоторые изменения оказываются
> вполне регулярными и могут быть выполнены автоматически.
> В частности, так происходит с названием документируемого
> дистрибутива, которое периодически встречается в тексте.
> В docs.dtd определен специальный элемент для названия
> документируемого дистрибутива: <alt:distro/>. Этот элемент
> не имеет парного закрывающего тега и не содержит текста
> внутри. Вариант написания (краткое-полное) названия
> дистрибутива определяется значением атрибута longname.
> По умолчанию тег раскрывается в название линейки
> дистрибутивов (без номера версии), например, если описывается
> дистрибутив ALT Linux 2.3 Junior, <alt:docs/>
> может быть раскрыто в Junior.
> <alt:distro longname="version"/> даст в этом случае
> ALT Linux 2.3, а <alt:distro longname="full"/> --
> ALT Linux 2.3 Junior. Строки, в которые будет раскрыт
> тег <alt:distro/>, определяются при сборке документации
> при помощи параметров XSL alt-distro, alt-distro-version, alt-distro-full.
>
> Другие возможности автоматического профилирования документа
> для другого дистрибутива или новой версии могут быть реализованы
> при помощи механизма профилирования DOCBOOK.
> (см. об этом ненаписанный пока раздел).
Я бы всё-таки предпочёл сделать этот текст не новым ALT Docs
HOWTO, и параллельным ALT Docs Guidelines или что-нибудь в этом
роде. У меня тлеет надежда обновить docs-howto, но несколько
другим образом, в частности, используя litprog из стилей и Makefiles.
--
Regards, Vyt
mailto: vyt at vzljot.ru
JID: vyt at vzljot.ru
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://lists.altlinux.ru/pipermail/docs/attachments/20040809/252e7911/signature-0001.bin
Подробная информация о списке рассылки docs