Инструмент для преобразования между различными форматами обычного текста

Существует несколько типов синтаксиса структурирования/форматирования простого текста, например:

  • MarkDown
  • МедиаВики
  • Xвики
  • HTML

Существует ли общий инструмент (более простой/более подходящий, чем reg-ex), который помогает определять и выполнять правила преобразования?

Ответы (2)

Pandoc (Лицензия: GPL) может импортировать:

  • уценка
  • реструктурированный текст
  • текстиль
  • HTML
  • доккбук
  • Латекс
  • Разметка MediaWiki
  • ОПМЛ
  • Разметка пикши

и конвертировать в эти и различные другие форматы . (Пользовательские форматы можно добавить с помощью Lua.)

Это отдельная программа командной строки, которая поставляется с библиотекой Haskell.

Вы можете протестировать его онлайн: http://johnmacfarlane.net/pandoc/try/

С помощью txt2tags ( https://txt2tags.org/ ) вы можете экспортировать как минимум в 20 различных форматов, включая rtf (форматированный текст), латекс, HTML, википедия, креольский, докувики, реструктурированный текст, уценка, spip, AsciiDoc. ..

Существует импортер html для txt2tags ( https://wiki.txt2tags.org/index.php/Main/Html2wiki ), поэтому вы можете делать с ним практически все.

(редактировать) Чтобы быть более полным в моем ответе, да, я использую txt2tags в течение нескольких лет (по крайней мере, 7 или 8).

Единственный недостаток, о котором я могу думать, это то, что он менее известен, чем, например, уценка, но он старше (с 2001 года) и, на мой взгляд, лучше (более настраиваемый, более расширяемый, более логичный и не фрагментированный в своем синтаксисе).

Он имеет реализацию python 2 для всех упомянутых выше экспортов и реализацию php только для экспорта html.

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

'fontBoldOpen'         : '<B>'            ,
'fontBoldClose'        : '</B>'           ,

С регулярным выражением вы можете сделать это в своем документе или в виде файла конфигурации.

Например, чтобы использовать strong вместо b в выводе html, вы можете создать это правило:

%!postproc: '<b>' '<strong>'
%!postproc: '</b>' '</strong>'
Добро пожаловать в рекомендации по программному обеспечению! Мы предпочитаем личный опыт в ответах, так что вы использовали этот инструмент? Каков ваш опыт? Есть ли у него какие-то недостатки или сложные моменты, которые следует упомянуть? На какой ОС он работает? Посмотрите эту мету, чтобы узнать, как сделать этот ответ отличным: meta.softwarerecs.stackexchange.com/questions/356/…