Pandoc - Markdown für Man-Page-Tabellen nicht formatiert (auf msys2)
1033
ehiller
Ich versuche, Pandoc zu verwenden (wenn jemand ein besseres Konvertierungsprogramm hat, bin ich ganz Ohr, bitte nicht von Ruby abhängig), um Markdown-Dateien in Manpages zu konvertieren. Es funktioniert gut, bis ich ein Dokument mit einer Tabelle mache. Hier ist mein Testdokument:
% 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**
Ich habe benutzt
pandoc.exe -s -f markdown -t man ~/test.md | man -p t -l -
(Ich habe versucht mit und ohne -p tden tblPreprozessor zu erzwingen ) mit dem gleichen Ergebnis:
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()
Die Rohausgabe ohne Weiterleitung manist:
.\"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.
Mit der -dFlagge bekomme ich viel, aber nur das letzte Bit scheint zutreffend zu sein:
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 -
Und der lustige Teil ...
Pandoc in meiner Debian 8.3-Box erzeugte die gleiche Ausgabe, aber Manpages zeigen diese Feinheiten auf Debian / Linux an.
Zum Vergleich
Fenster
pandoc.exe 1.17.0.2
mann 2.7.4
GNU tbl (groff) version 1.22.3
Linux
Pandoc 1.12.4.2 [Linux]
man 2.7.0.2
Ich lese schon seit man manman groff_manman tblStunden usw. und bin der Lösung dieses Problems nicht näher gekommen. Alle Ideen hier wären sehr dankbar !!
Vielen Dank -Eric
Bearbeiten - 1
Das Problem ist ohne Zweifel ein manzugehöriges groffSystem unter Windows / msys. Die Pandoc-Ausgabe funktioniert gut unter Linux.
Ich habe ein alternatives Rendering-Programm gefunden und ausprobiert:
Die Ausgabe von Pandoc mit dem Format hat kein Problem
mandoc.exe foo.man.1 | less
Versuchen Sie es noch einmal direkter
cat foo.man.1 | nroff -mandoc -Tlatin1 | less
Hat genau die gleiche Wirkung wie das Aufrufen man -l -
Ich habe dann versucht, die Binärdateien von gnuwin32 direkt herunterzuladen, und hatte das gleiche Ergebnis
cat foo.man.1 | Downloads/groff-1.20.1-bin/bin/nroff -mandoc -Tlatin1 | less
1 Antwort auf die Frage
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()