Если не заморачиваться с Perl, то рекомендую Ruby + RedCarpet + PygmentsRb, движок разметки от GitHub.<div><br></div><div>Если же настаивать на XS, то RedCarpet основан на библиотеке SunDown, смотреть в её сторону.</div><div>
<br></div><div><br><div class="gmail_quote">22 июля 2012 г., 0:43 пользователь Ivan Petrov <span dir="ltr"><<a href="mailto:i.petro.77.00@gmail.com" target="_blank">i.petro.77.00@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
есть у нас пара веб-проектов где нужно доваять раздел с документацией.<br>
соответственно хочется чтобы эту документацию писали не программисты с<br>
одной стороны. и чтобы движок ее был быстрый.<br>
<br>
короче надо сваять модуль XS (если будет взят за основу какой-то<br>
имеющийся для C модуль/либа то хорошо) который будет вики-разметку<br>
преобразовывать в html.<br>
<br>
что нужно от вики:<br>
<br>
1. заголовки (разделы)<br>
2. преформатированные вставки с указанием языка (а-ля ```perl ... ```<br>
гитхабовские) для юзанья совместно с highlight.js<br>
3. абзацы (простые и с отступами) (хочется подумать о выравнивании по<br>
ширине)<br>
4. списки (нумерованные, маркерные, вложенные, двухуровневые)<br>
5. перекрестные ссылки (в т.ч. и внутри "статьи" - на заголовки)<br>
6. выделения (курсив, жирный итп), горизонтальные строки<br>
7. вставка изображений с подписями (справа/слева, с подписями)<br>
8. таблицы пока не нужны, но иметь прицел что когда-то понадобятся и<br>
они<br>
9. вставка своих объектов какой-либо спецконструкцией (то есть вызов<br>
perl'ового кода с заданными аргументами и код пусть возвращает<br>
html-вложение)<br>
<br>
что нужно от конвертера:<br>
<br>
1. вики на входе, html на выходе<br>
1.1 конфигуратор к нему (например ссылки: абсолютные, относитльные,<br>
преобразование относительных к абослютным)<br>
2. html такой чтобы можно было на все со своими css повлиять<br>
3. возможно разбивка вики на разделы<br>
4. перспективное расширение (то есть вставка таблиц, например)<br>
5. по возможности неглубокая рекурсия в деструкторах. вообще нагрузка<br>
на стек по возможности должна быть минимизирована.<br>
<br>
что нужно от кода в целом:<br>
<br>
1. покрытость тестами чуть менее чем полностью (+тесты на возможные<br>
утечки памяти обязательно чтобы были)<br>
2. оформление как обычного cpan-модуля<br>
3. perl 5.14+ (если 5.8.8 будет - хорошо, но нам пофиг)<br>
4. utf8<br>
5. бенчмарки<br>
<br>
Задачка, как я ее оцениваю - "дня три" - сваять что-то по быстрому на<br>
коленке (когда прижмет если не будет решена, то видимо по этому пути и<br>
пойдем) или ~ 2 недели если сделать хорошо. одному человеку. (это если<br>
бы я сам делал).<br>
но проблема в том что времени как обычно нет. деньги есть.<br>
<br>
модуль готовы заопенсорсить (можно изначально опенсорсить)<br>
<br>
если кого заинтересовало - сперва киньте ссылку на ваш код на<br>
гитхабе/cpan'е посмотреть. проект куда это пойдет - HL со всеми<br>
вытекающими<br>
<br>
в общем если кого заинтересовало - стучитесь.<br>
<span class="HOEnZb"><font color="#888888">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></span></blockquote></div><br></div>