
Estoy intentando usar pandoc (si alguien tiene un mejor programa de conversión, soy todo oídos, no dependa de Ruby) para convertir archivos Markdown en páginas de manual. Funciona bien hasta que voy a hacer un documento con una mesa. Aquí está mi documento de prueba:
% 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**
yo estaba usando
pandoc.exe -s -f markdown -t man ~/test.md | man -p t -l -
(Intenté -p t
forzar el tbl
preprocesador con y sin) con el mismo resultado:
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()
La salida bruta sin canalizarla man
es:
.\"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.
Con la -d
bandera obtengo mucho, pero sólo lo último parece aplicable:
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 -
Y la parte divertida...
Pandoc en mi caja Debian 8.3 generó el mismo resultado, pero las páginas de manual lo muestran bien en Debian/Linux.
Para una comparación
ventanas
- pandoc.exe 1.17.0.2
- hombre 2.7.4
- GNU tbl (groff) versión 1.22.3
Linux
- pandoc 1.12.4.2 [linux]
- hombre 2.7.0.2
He estado leyendo, man man
man groff_man
man tbl
etc. durante horas y no estoy más cerca de resolver esto. ¡Cualquier idea aquí sería MUY apreciada!
Gracias -Eric
Editar - 1
El problema es sin duda man
el sistema asociado groff
en Windows/msys. La salida de pandoc funciona bien en Linux.
Encontré y probé un programa de renderizado alternativo:
http://embedeo.org/ws/doc/man_windows/
Lo cual no tiene ningún problema para mostrar la salida de pandoc con el formato
mandoc.exe foo.man.1 | less
Probando de nuevo una forma más directa.
cat foo.man.1 | nroff -mandoc -Tlatin1 | less
Tiene exactamente el mismo efecto que llamarman -l -
Luego intenté descargar los binarios de gnuwin32 directamente y obtuve el mismo resultado nuevamente.
cat foo.man.1 | Downloads/groff-1.20.1-bin/bin/nroff -mandoc -Tlatin1 | less
Respuesta1
Bueno, aparentemente estoy un poco lento esta semana...
solución más simple imaginable, y sólo perdí 3 días:
pandoc.exe -s -f markdown -t man ~/test.md | dos2unix.exe | man -l -
(la clave es la introducción dedos2unix.exe
en la mezcla)
Produce una hermosa:
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()