[docs] еще другая система подготовки документов

Michael Bykov michael на michael.rsuh.ru
Сб Апр 1 04:23:06 MSD 2006


Господа,

я тут для своих целей подобную штуку сделал. Достоинство ее
в том, что она очень проста. На Ruby-on-Rails. 

Мне нужно было сделать инструмент, которым могут
пользоваться большое количество разумных, но не очень
подготовленных людей. Поэтому я сделал двухуровневую
систему. На первом уровне интерфейс в виде wiki, на котором
пользователь может создавать меню и технические странички,
для которых не нужен контроль версий. На втором -
Subversion, в котором хранятся собственно важные документы.

Документы хранятся в Subversion, в простом текстовом
формате textile http://www.textism.com/tools/textile/
Но можно использовать любой, например тот, 
что в  wako, и держать каждый документ в любом. То есть
разные документы можно держать и обрабатывать каждый в
своем. Хоть и в xml, если какой автор захочет и привык.

После внесения любой правки через subversion данный текст
конвертируется из своего частного текстового формата в
единый для всех документов. А из него - автоматически - во
все выходные форматы. 

Мне удобно использовать в качестве единого Текстиль, он
практически стандарт для подобных приложений на Руби, да и
на Питоне его используют. То есть существует много готовых
конверторов, wiki, блогов, где он используется. Особенных
проблем с юникодом я пока не заметил. 

Текст а нем выглядит так:

h1. Заголовок
h2. заголовок помельче

простой текст, с примечаниями в виде квадратных скобок[] и
таблицами. Вот и все, практически, его правила.

Пустая строка означает параграф. То есть конвертация в
текстиль и из него куда угодно - практически тривиальная
задача. 

На входе стоят фильтры, конвентирующие в. У меня, в
основном, из грязного html. Это я сделал самостоятельно.

Готовый текст (после внесения правки) система пере-разбивает
на разделы, создает файлы ошлавления и файл с
библиографической информацией, если нужно, создает html,
xml, pdf и что угодно еще. В Руби все конверторы есть. Нет
DocBook-а, но, думаю, несложно совсем немножко поправить
существующий конвертов в стандартный XML и получить docbook.

Таким образом сразу после внесения любой правки через
Subversion мы немедленно получаем готовые документы во всех
нужных форматах. 

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

Хитрость заключается в том, что Ruby-on-Rails воспринимает
готовые html-странички как части своего кеша. То есть такой
способ работы вполне эффективен, и даже очень. 

Посмотреть можно на bibler.ru. Например, автоматом
созданные странички - 
http://bibler.ru/dlib/bibler/kgk и 
http://bibler.ru/dlib/bibler/bakh

Система только что заработала, это даже не альфа версия
еще, но уже вполне функционирует, посмотрите также бекенд - 

login - guest,
password - guest

это для внешнего, онлайн-интерфейса для создания и
редактирования меню, я там использовал LiveTree на Ajax-е,
что очень, кажется, удобно - внутренний интерфейс доступа
это собственно Subversion, нечего и смотреть. 


-- 
Stay tuned! 

М.


Подробная информация о списке рассылки docs