pandoc - уценка к таблицам man-страниц не отформатирована (на msys2)

806
ehiller

Я пытаюсь использовать pandoc (если у кого-то есть лучшая программа для конвертации, я не против рубина), чтобы конвертировать файлы уценки в man-страницы. Он отлично работает, пока я не пойду делать документ со столом. Вот мой тестовый документ:

% Author Man % TEST(1) This is a test | Version .01 % 18-April-2016  # Header1  # Format  foo  +-----------+-----------+-----------+ | linenum-1 | two | three | |===========+===========+===========+ | three | four | fove | | 6 | 7 | 8 | +-----------+-----------+-----------+  | linenum-1 | two | three | |-----------|-----------|-----------| | three | four | fove | | 6 | 7 | 8 |  | linenum-1 | two | three |-----------|-----------|--------: | three | four | fove | 6 | 7 | 8  I WAS HERE  | linenum-1 | two | three |--- |--- |--- | three | four | fove | 6 | 7 | 8  here is some text  _italics_  **bold** 

Я использовал

pandoc.exe -s -f markdown -t man ~/test.md | man -p t -l - 

(Я пытался с и без, -p tчтобы заставить tblпрепроцессор) с тем же результатом:

Author Man() Author Man()  Header1 Format foo  tab(@); lw(11.7n) lw(11.7n) lw(11.7n). T{  linenum-1 ===========+ three 6 T}@T{  two ===========+ four 7 T}@T{  three ===========+ fove 8 T}  tab(@); l l l. T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T}  tab(@); l l r. T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T}  I WAS HERE  tab(@); l l l. T{ linenum-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T}  here is some text  italics  bold  AUTHORS TEST(1) This is a test | Version .01.  18-April-2016 Author Man() 

Необработанный вывод без привязки к нему man:

.\"t .\" Automatically generated by Pandoc 1.17.0.2 .\" .TH "Author Man" "" "18\-April\-2016" "" "" .hy .SH Header1 .SH Format .PP foo .PP .TS tab(@); lw(11.7n) lw(11.7n) lw(11.7n). T{ .PP linenum\-1 ===========+ three 6 T}@T{ .PP two ===========+ four 7 T}@T{ .PP three ===========+ fove 8 T} .TE .PP .TS tab(@); l l l. T{ linenum\-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T} .TE .PP .TS tab(@); l l r. T{ linenum\-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T} .TE .PP I WAS HERE .PP .TS tab(@); l l l. T{ linenum\-1 T}@T{ two T}@T{ three T} _ T{ three T}@T{ four T}@T{ fove T} T{ 6 T}@T{ 7 T}@T{ 8 T} .TE .PP here is some text .PP \f[I]italics\f[] .PP \f[B]bold\f[] .SH AUTHORS TEST(1) This is a test | Version .01. 

С -dфлагом я получаю много, но только последний бит кажется применимым:

final search path = /mingw64/share/man:/usr/share/man restore_cwd: 3 (null) pre-processors `t' from command line page_encoding = UTF-8 source_encoding = ISO-8859-1 roff_encoding = ISO-8859-1 Terminal width 102 Terminal width 102 not within cat page range [80, 80] formatted_encoding = UTF-8 opening - opened - 

И самое интересное ...

Pandoc на моем компьютере с Debian 8.3 генерировал тот же вывод, но manpages прекрасно отображает на Debian / Linux.

Для сравнения

окна

  • pandoc.exe 1.17.0.2
  • человек 2.7.4
  • GNU tbl (groff) версия 1.22.3

линукс

  • pandoc 1.12.4.2 [linux]
  • мужчина 2.7.0.2

Я читаю и man man man groff_man man tblт. Д. Уже несколько часов и уже не приблизилась к решению этой проблемы. Любые идеи здесь будут с благодарностью!

Спасибо -Эрик

Редактировать - 1

Проблема без сомнения manи связанная groffсистема на окнах / msys. Вывод pandoc отлично работает на Linux.

Я нашел и попробовал альтернативную программу рендеринга:

http://embedeo.org/ws/doc/man_windows/

У которого нет проблем отображать вывод из pandoc в формате

mandoc.exe foo.man.1 | less 

Попытка снова более прямой

cat foo.man.1 | nroff -mandoc -Tlatin1 | less 

Имеет тот же эффект, что и вызов man -l -

Затем я попытался загрузить прямые файлы gnuwin32 и снова получил тот же результат

cat foo.man.1 | Downloads/groff-1.20.1-bin/bin/nroff -mandoc -Tlatin1 | less 
2

1 ответ на вопрос

1
ehiller

Well apparently I am a bit slow this week...

simplest fix imaginable, and I only wasted 3 days:

pandoc.exe -s -f markdown -t man ~/test.md | dos2unix.exe | man -l - 

(the key being the introduction of dos2unix.exe into the mix)

Yields a beautiful:

Author Man() Author Man() Header1 Format foo linenum-1 two three ===========+ ===========+ ===========+ three four fove 6 7 8 linenum-1 two three ───────────────────────── three four fove 6 7 8 linenum-1 two three ───────────────────────── three four fove 6 7 8 I WAS HERE linenum-1 two three ───────────────────────── three four fove 6 7 8 here is some text italics bold AUTHORS TEST(1) This is a test | Version .01. 18-April-2016 Author Man() 

Похожие вопросы