LINUX.ORG.RU

Docbook никуда не годится.


0

0

Мда. Оказывается, Docbook не годится для работы. Во-первых, в нем неудобно писать. И совершенно неважно, каким инструментом пользоваться. xml есть xml. Хотя я легко мог бы представить себе даже xml, который был бы гораздо удобнее Docbook'а. Для меня было откровением, что не только ISO-шные комитеты способны придумать стандарт, в котором для добавления картинки я должен написать:

<screenshot>
<screeninfo>Это скриншот.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="бубубу.jpeg" format="JPEG"/>
</imageobject>
</mediaobject>
</screenshot>

Ну, хорошо, если немножко нарушить рекомендации Docbook, можно ужаться всего в 5 строк, но скажите мне, зачем они нужны, если хватило бы и одной?

Во-вторых, toolbox для Docbook близок к полному отсутствию(по крайней мере, для Linux; прочие OS мне иррелевантны). Что у нас есть? docbook-utils, которым нужен полумертвый jadetex. xmlto, которому нужен уже совершенно мертвый passivetex. Два xsl:fo форматтера: мегатерий fop, который никак не доделают уже лет пять и который никогда не мог угнаться за спецификацией xsl:fo, и новорожденный xmlroff, который толком не работает ни с одним из двух своих backends. А, забыл про dblatex. Работает. Но только так, как ему хочется, а не так, как мне нужно.

В-третьих, главным преимуществом Docbook (и LaTeX, но это отдельный разговор) обычно называют то, что "вы пишете текст в формате DocBook и не забываете его структурировать в соответствии со смысловой нагрузкой каждого элемента, а о последующем форматировании (внешнем виде выходного документа) вы не думаете вовсе." (из http://viju.tvercity.net/articles/worddocbook). Фиг! Если кто-то не думает о форматировании, он напишет все в plain text. А вот если мне нужно форматирование, но меня не устраивает то, которое предлагает по умолчанию имеющийся инструментарий, то я попал.

Вот понадобилось мне быстро сделать pdf под экран размером 3.5" на 4.5", да шрифт уменьшить на пару пунктов. И все. Работы на два часа.

Короче. Желчь я излил. Теперь конструктивно. А куды бечь? Какие есть альтернативы? Нужно быстро и легко писать недлинные документы (инструкции, полиси, etc.), быстро менять форматирование в разумных пределах, вставлять картинки, получать pdf, rtf, html. Хотя бы.


Согласен - xml документы руками кодить не очень приятно, но должны же быть какие-то недостатки у "расширенного языка описания всего сущего" ;-)
Пусть xml роботы создают, а для людей лучше plain text .

Серебряной пули не существует...

Dblmok
()
Ответ на: комментарий от Dblmok

Нет, я, в принципе, согласен даже на xml. Но только вменяемый. Ну, согласитесь, тэг <confsponsor> (спонсор конференции, для которой приготовлен документ) уже ни в какие ворота не лезет!

mind
() автор топика
Ответ на: комментарий от kondor

А какие из моих проблем решит DITA? Toolchain практически тот же самый, отсутствующий (ну где я возьму работающий FO-форматтер? Куплю XEP?). Чтобы изменить размер страницы, нужно потратить примерно то же время.

В устраивающем меня (гипотетическом) решении уж точно отсутствует шаг с преобразованием в xsl:fo.

mind
() автор топика
Ответ на: комментарий от kondor

http://dita-ot.sourceforge.net/ :

> Key output targets are XHTML, HTML Help, PDF2 (processed using the Idiom plug-in and RenderX XEP)

http://www.renderx.com/download/personal.html :

> RenderX is pleased to offer a Free, Personal Edition of our software for non-commercial use.

Наверное, я что-то не понимаю... Впрочем, я действительно посмотрю на нее поближе. [безнадежно упавшим голосом] А больше, значит, ничего? Спасибо. Наверное, пойду я лучше перечитывать Гуссенса с Самариным...

mind
() автор топика
Ответ на: комментарий от kondor

Я тут почитал немного, и у меня сложилось впечатление. что DITA мне подходит еще меньше, чем Docbook. Docbook меня не устраивает реализацией, а DITA вообще ориентирована на другие цели:

http://www.dclab.com/dita_docbook.asp :

db: DocBook is a document type definition (DTD) for writing technical books and articles, with the structure that such forms imply.

dita: DITA is both a DTD and a set of rules for writing online contextual documentation such as software help files.

db: Simple. Can usually be downloaded and set up in a day.

dita: More complex. Usually requires more time and some technical expertise.

db: Well supported by the XML community

dita: Small but strong, growing community

db: With a little development, DocBook can do what DITA is attempting on a smaller scale

dita: DITA is impressively engineered, but can be too industrial-strength

http://drmacros-xml-rants.blogspot.com/2008/04/choosing-xml-schema-docbook-or... :

If you are looking for a documentation schema that you can just pick up and use and you don't need the modularity features of DITA (that is, you don't need the functionality of DITA maps) then DocBook probably makes the most sense for the reasons Richard cites, namely that there are more element types of likely utility out of the box and the processing infrastructure is more mature and better documented.

http://xml.coverpages.org/DocBook-DITA-customDTD.html :

As for whether to start with DocBook or DITA, my standard guidance is:

* If you need to get started immediately, want to initially invest as close to zero as you can, and your primary task is to produce typical technical manuals, use DocBook.

* If you have any requirement for re-use, specialization, or modular delivery AND you can afford a little up-front investment in analysis, specialization, and tool development, then use DITA.

The tradeoff is that DITA is, as currently defined, less well suited to book production out of the box — you can do everything you need but it may require more effort on your part (for example, DITA 1.0 is underspecified for index markup, something the DITA Technical Committee is discussing right now). Also, the current free DITA tool kits are not as functionally complete as the comparable DocBook tool kits are.

mind
() автор топика
Ответ на: комментарий от DonkeyHot

> markdown + pandoc [+ latex]

На этом уровне я большим удовольствием пользуюсь Emacs Muse. Генерирует очень вменяемый latex, который легко можно адаптировать под нужный размер бумаги (\usepackage{vmargin}).

mind
() автор топика
Ответ на: комментарий от mind

>> markdown + pandoc [+ latex]

>На этом уровне я большим удовольствием пользуюсь Emacs Muse.

ну и генерируй этот невнятный docbook из Muse. Зачем его руками писать? И какая-то вики-разметка в muse, вроде markdown/yaml по нужным тегам из docbook xml.

anonymous
()
Ответ на: комментарий от DonkeyHot

Ограниченная поддержка таблиц. Нет поддержки цвета и шрифтов. Полное отсутствие контроля за размещением текста на странице. Врезки. Рамки. Да много чего не хватает... Хотя, конечно, 80% потребностей Muse покрывает.

mind
() автор топика
Ответ на: комментарий от anonymous

> ну и генерируй этот невнятный docbook из Muse.

А вот это как раз не нужно. Я из Muse лучше Latex сразу получу. А с Docbook что я буду делать?

А кто-нибудь с Lout работал? Можете поделиться впечатлениями?

mind
() автор топика
Ответ на: комментарий от anonymous

> взять Texy! или reST?

Texy! экспортирует только в html, а вот на reST надо посмотреть, спасибо. Там хотя бы можно вставить latex'овский код в нужном месте, причем так, что в html он виден не будет. А значит, хотя бы page breaks можно сделать :)

Но с цветом вот не очень. И выравнивания нет :( Про врезки и рамки я уж молчу... Да, еще вспомнил, что мне нужно: менять ширину абзаца, двигая его влево или вправо. А сбоку вставлять картинку: типа треугольничек с восклицательным знаком.

Видимо, то, что мне нужно, лежит где-то посередине между Latex и всеми этими lightweight языками. Вот только где?

mind
() автор топика
Ответ на: комментарий от mind

>Там хотя бы можно вставить latex'овский код в нужном месте, причем так, что в html он виден не будет

ещё вроде в textile можно было голый html вставлять, но он в целом аналогичен markdown, и reST вроде как гибче

>где-то посередине между Latex и всеми этими lightweight языками. Вот только где?

"В общем виде":

1. написать свои стили для Latex/ docbook. В смысле, посмотреть, что из готовых стилей можно допилить.

2. Посмотреть, как нужно допилить. В смысле, просто 1-2-3 заданных стиля (абзаца), а сами стили делать в Latex/docbook. Или, проще не всё загнать в стиль-шаблон, а по семантике (вдруг из нужных фич docbook умеет делать просто что-то, чего сложно делать в latex). Для docbook'ного xml xslt можно написать.

3. встроить в muse, "добавить новые теги к markdown". Или сразу добавлять что-то yaml-подобное расширяемое. Дописать "шаблонизатор" в muse, чтобы эти новые "теги" подхватывал.

на XML-ный Docbook вроде просто написать стиль ручками, и постепенно подкручивать XSLT чтобы получить то же самое автоматом. Вместо развесистого Docbook'а выбрать используемое подмножество XML docbook'a для шаблонизатора, записать шаблонизатор в XSLT с "данными для заполнения", переписать его в yaml. Контент для шаблонизатора брать из другого XML-'контейнера данных' в yaml или markdown. Для Latex'а аналогично ( latex-команды = S-выражения, тот же XML, записанный в виде S-выражений).

то есть, по markdown/reST контенту генерируется XML контейнер с данными, который попадает в XSLT-шаблонизатор, в котором заполняются пустые места в готовых шаблонах-стилях (или в тексте-содержании, или в параметрах команд для форматирования). А уже из полученного XML генерировать docbook или latex.

XML тут, правда, нужен только для XSLT, если генерировать latex можно по идее чем-то с S-выражениями обойтись (переизобрести велосипед^W XSLT на S-выражениях). И у меня xslt парсер как-то падал на русских текстах, так что проще наверно обойтись без XML. Или просто препроцессором в духе #define для latex ( если XSLT совсем простой получается и XSLT не нужен ).

PS. За ссылку про Lout спасибо, посмотрю, интересно.

anonymous
()
Ответ на: комментарий от mind

по той табличке с википедии ещё txt2tags симпатично смотрится:

вроде аналогично markdown+ можно вставлять свои теги

http://txt2tags.sourceforge.net/tips.html#tex-user-style http://txt2tags.sourceforge.net/tips.html#html-custom-tags

http://txt2tags.sourceforge.net/tools.html http://www.davefancella.com/software/gensite.html http://wixi.sourceforge.net/

anonymous
()
Ответ на: комментарий от anonymous

> 1. написать свои стили для Latex/ docbook. В смысле, посмотреть, что из готовых стилей можно допилить.

Ох... Допиливал я как-то. Та еще работа. А у меня выходные формы меняются довольно часто, так что пилить и пилить. Я и так этим занимаюсь и хочу от этой работы отделаться.

> 3. встроить в muse, "добавить новые теги к markdown".

Боюсь, что вставить туда теги для изменения раскладки страницы (тем более, поабзацной) будет не ничуть не легче. Не рассчитывался на это ни muse, ни markdown.

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

На S-expressions есть http://www-sop.inria.fr/mimosa/fp/Scribe/ Тоже надо посмотреть повнимательнее. Может, что и выйдет.

Я вот еще одну любопытную штуку нашел. Правда, все описание -- 3 строчки, да 6 строк примера. И без документации: http://en.wikipedia.org/wiki/Z_Format

mind
() автор топика
Ответ на: комментарий от anonymous

> тут вот шаблонизатор не на XSLT, а на m4

Да, но напомню задачу: нужно получать pdf, rtf и html. Если html тут родной формат, то для pdf и rtf нужны дополнительные шаги, каждый из которых принесет столько своих "особенностей", что я дольше буду от них избавляться, чем работать.

mind
() автор топика
Ответ на: комментарий от anonymous

> по той табличке с википедии ещё txt2tags симпатично смотрится:

txt2tags... Да. Из той же компании языков недоразметки, но посмотрим. Спасибо.

mind
() автор топика
Ответ на: комментарий от Evgueni

Да, забыл добавить: если редактировать руками, то docbook не нужен ни под каким соусом.

P.S. По этому поводу был 1000+ флейм.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

> LaTeX. pdf из коробки. rtf и html после некоторого напильника.

Что я только на нем не верстал... Вплоть до пригласительных и, не поверите, билетов в кино :) Такие красивые билеты вышли, жаль не осталось. Первый билет сделал руками, а потом исходник генерировался перловым скриптом, который подставлял дату, название фильма, номер ряда и места. Печатал на цветном лазернике. Мда...

mind
() автор топика
Ответ на: комментарий от Evgueni

> если редактировать руками, то docbook не нужен ни под каким соусом.

Да хоть ногами -- все равно из него очень трудно получить нужный результат. Ну вот если только и читать его машина будет...

mind
() автор топика
Ответ на: комментарий от anonymous

> или Lout+CDuce скрестить.

О, а можно подробнее? Во-первых, почему все-таки Lout? Чем он хорош? А во-вторых, что за CDuce? Чем он лучше той же Scheme с sxml?

mind
() автор топика
Ответ на: комментарий от mind

Интересная статья про Lout: как в Trolltech пользовались им для верстки книги "C++ GUI Programming with Qt 3":

http://lists.planix.com/pipermail/lout-users/2004q1/003716.html

И забавная цитата про Latex из Lout FAQ:

Lout is more friendly to advanced users. LaTeX style sheets are written in a twisted, diabolical manner apparently designed to make all but trivial changes to a document's appearance difficult ; it's internals are packaged as a "black box" which ordinary mortals aren't meant to understand. Lout styles are much easier to design and modify according to your needs.

mind
() автор топика

http://www.oxygenxml.com/download_oxygenxml_author.html

<oXygen/> XML Author is a simplified distribution of the Editor, specially created for the content authors. It includes all the XML authoring, database access and publishing features available in the <oXygen/> XML Editor. Besides the out-of-the-box support for the standard XML documentation frameworks: DocBook, DITA, TEI, XHTML, its unique design makes it easy to customize/extend to match a new whole range of editing needs.

anonymous
()

ant is not TeX

Правильный латех называется http://ant.berlios.de/. К нему и CDuce недолго прикрутить, если надо, благо ant написан на окамле. И стили делать куда проще, чем на ТеХе, который для программирования вообще не предназначался.

Но сырой он, зараза, потому что никто им не пользуется и никто не хочет тестить и слать багрепорты. Маркетинга ему сильно не хватает, лол

anonymous
()
Ответ на: ant is not TeX от anonymous

> Правильный латех называется http://ant.berlios.de/.

А в этом что-то есть. По крайней мере, разметка страницы там гибкая. Вот только быстро и легко задать custom page size, кажется, не выйдет. Поддержка таблиц минимальная.

Годика через три-четыре можно будет его еще раз посмотреть.

mind
() автор топика
Ответ на: комментарий от anonymous

Ну, XML я в этом (или другом) редакторе сделаю. А дальше что с ним делать? Чем сделать из него документ?

mind
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.