Editar - 1

Editar - 1

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 tforzar el tblpreprocesador 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 manes:

.\"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 -dbandera 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 tbletc. 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 manel sistema asociado groffen 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.exeen 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()

información relacionada