Общие сведения о LDP и SGML

LDP

Проект Linux Documentation Project (LDP) был начат с целью предоставить новым пользователям быстрый путь получения информации о конкретном предмете. Он не только содержит серию книг о администрировании, работе в сетях и программировании, но и огромное число небольших работ, посвященных конкретным проблемам, написанных теми кто сталкивался с ними. Например, если вы хотите узнать о печати,возмите Printing HOWTO. Если хотите знать как работает ваша Enthernet карта под Линукс,возмите Enthernet HOWTO и так далее. Первоначально многие из этих работ были в текстовом или HTML формате. Но с течение времени стало ясно, что должен существовать лучший путь хранения и обработки этих документов. Путь, который позволил бы вам читать документ с веб страницы, в виде текстового файла на CD-ROM, или даже на карманном PDA. И ответ был найден - SGML.

SGML

Стандартный обобщенный язык разметки (SGML) - это язык, который основан на внедрении кодов внутрь документа. Этим он похож на HTML, но на этом их сходство заканчивается. Сила SGML в том, что в отличии от WYSIWYG (What You See Is What You Get), вы не определяете такие вещи как цвета,размеры шрифтов или какое либо форматирование. Вместо этого вы определяете элементы составляющие документ (параграфы,секции,нумерованные списки ...) и предоставляете SGML процессору вместе с конечной программой заботу о размещении элементов,цветах,шрифтах и прочем. HTML делает примерно тоже самое и на самом деле является лишь одной из форм SGML. SGML состоит из двух основных вещей. Во первых это Структура, которая обычно называется DTD (Document Type Definition - "определение типа документа"). DTD определяет зависимости между элементами. Например для создания этого документа использовалось DocBook DTD. DTD привносит общий вид и структуру во все документы, созданные с его использованием. Во вторых это наполнение, которое визуализируется SGML процессором и которое видит затем читатель. Например этот параграф - наполнение, но с таким же успехом наполнением может быть графическое изображение, таблица, список и т.д. Наполнение ограничивается тэгами,чтобы отделить элементы друг от друга.

Почему SGML а не HTML или какой нибудь другой формат ?

SGML предоставляет не только форматирование. Вы можете автоматически генерировать индексы, оглавления, и ссылки внутри документа или на внешние источники. Пакеты Jade и OpenJade позволяют вам экспортировать (далее это называется "визуализацией") SGML в LaTeX,info,text,HTML и RTF. Из этих базовых форматов вы можете затем создать другие, такие как : MS Word,PostScript,PDF и т.д. . Программы подобные Lyx, позволяют вам писать документы в формате TeX, затем экспортировать их в SGML и визуализировать из него в любой другой формат. SGML описывает как элементы работают а не на том как они выглядят. Он позволит вам писать документы быстрее, т.к. вам не нужно заботиться о размещении параграфов, размерах шрифтов и тому подобных вещах.

Инструменты

В этой секции я приведу описание некоторых инструментов, которые могут вам понадобиться для создания собственной LDP документации. Я лишь опишу их здесь, подробнее об их использовании и установке вы сможете прочитать позже. Если вы используете какие-нибудь еще инструменты при написании LDP документации, пожалуйста дайте мне знать и я добавлю информацию о них в этот документ.

Jade

Необходим если вы не используете openjade - ftp://ftp.jclark.com/pub/jade/jade-1.2.1.tar.gz

Jade это фронт-енд процессор для SGML. Он использует DSSSL и DocBook DTD для верификации и визуализации SGML в другие форматы.

OpenJade

Замена для Jade - http://openjade.sourceforge.net/

Расширенная версия Jade написанная DSSSL сообществом (смотрите ниже о DSSSL). Некоторые приложения требуют Jade, но для многие из них изменены(или изменяются) для поддержки этого пакета.

DSSSL

Необходим - http://nwalsh.com/docbook/dsssl/db152.zip

Document Style Semantics and Specification Language говорит jade как визуализировать SGML документ в печатную или онлайновую форму. DSSSL это то,что конвертирует тэг title в <H1> тэг в HTML,или bold, 14 point Times Roman для RTF,например. Документация к DSSSL расположена по адресу http://nwalsh.com/docbook/dsssl/db152d.zip. Заметьте, что модификация DSSSL не скажется на самом DocBook DTD. Она просто изменит то как выглядит визуализированый текст. LDP использует модифицированный DSSSL, который предоставляет оглавление.

DocBook DTD (версия 3.1)

Необходим - http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip

DocBook DTD определяет тэги и структуру DocBook SGML документа. Если произвести изменение в DTD,например добавить новый тэг,то он перестанет быть DocBook DTD.

sgmltools-lite

Очень рекомендуется - http://sgmltools-lite.sourceforge.net/

Это наследник проекта sgmltools,которые был официально остановлен более года назад. После этого Cees de Groot создал немного отличный от него проект,который работает как wrapper для SGML процессора Jade. Он прячет от пользователя сложный синтаксис. Я установил старые sgmltools, затем sgmltools-lite и смог отформатировать этот документ достаточно просто. Есть даже man страница для sgmltools, на которой описан его синтаксис.

LyX

Необязательно - http://www.lyx.org/

LyX сочетает мощь SGML с простотой использования обычного ворд-процессора.Но это не WYSIWYG программа, а WYSIWYM (What You See Is What You Mean - "То-Что-Ты-Видишь-Это-То-Что-Ты-Имел-Ввиду") приложение,т.к. то что вы видите на экране это не обязательно то , что будет видеть пользователь после обработки вашего документа SGML процессором. То как LyX отображает документ, похоже на то как визуализирует его Jade, но не полностью. Хотя достаточно близко, чтобы представить себе как будет выглядеть документ. Секции и под-секции пронумерованы и выделены жирным шрифтом, для представления таких вещей как тэги <code> и <url> используются разные шрифты. Большинство тэгов спрятано от вас во время редактирования, т.к. LyX пишет в TeX,а затем экспортирует TeX в SGML.

Emacs (PSGML)

Необязательно - http://www.lysator.liu.se/~lenst/about_psgml/

В Emacs есть режим написания SGML называемый psgml. Автор этого документа с удовольствием примет любую информацию от людей имеющих опыт работы в этом режиме (пишите на e-mail). Psgml - это главный режим в Emacs, разработанный для написания SGML и XML документов. Он предоставляет " подсветку синтаксиса " и "приятную печать" свойства, которые отделяют SGML тэги от содержания, способ вставки "тэгов" как альтернативу их ручному вводу и способность проверки правильности документа (соответствие его DTD) во время его написания. Для пользователей Emacs это великолепный способ набора таких документов и многие считают его наиболее универсальным и гибким, среди всех доступных SGML утилит. Он работает с DocBook,LinuxDoc и другими DTD одинаково хорошо.

WordPerfect 2000

Не рекомендуется - http://www.corel.com/

WodrPerfect 2000 для MS Windows имеет ограниченную поддержку SGML и DocBook 3.00. WordPerfect для Линукс не имеет поддержки SGML.

DocBook: The Definitive Guide

Необязательно (но рекомендуется) - http://www.docbook.org/

Эта книга была выпущена издательством O'Reilly в октябре 1999, и представляет из себя великолепное справочное пособие для DocBook. Я считаю её великолепным практическим пособием, упор делается на XML,но тэги DocBook версии 3.1, также описаны в удобном формате. Вы можете приобрести её у вашего любимого продавца книг. Полная версия книги доступна в интернет по адресу указанному выше.

Aspell

Необязательно - http://aspell.sourceforge.net/

Это приложение для проверки орфографии может работать между SGML тэгами, и проверять только содержимое заключенное между ними. Обычные программы проверки орфографии, такие как ispell будут пытаться проверить тэги, вызывая ошибку на каждом новом встреченном тэге.

Cygnus DocBook Tools

Необязательно (возможно Red Hat специфичны) - http://www.redhat.com/

Red Hat распространяет три пакета, возможно начиная с версии 6.2,которые обеспечивают поддержку DocBook и некоторые утилиты. Они обеспечивают визуализацию только в форматы HTML и PDF,но их просто установить, если вы используете Red Hat,что поможет вам быстро начать писать, не тратя время на борьбу с утилитами. TeTex 0.9,Jade и Jadetex должны быть установлены перед этими пакетами.