GNU/Linux >> Tutoriales Linux >  >> Linux

Convierta todas las páginas man de Linux a texto/html o rebajas

Recomiendo probar Pandoc:

$ pandoc --from man --to html < input.1 > output.html

Produce HTML que es tanto legible como editable, siendo este último importante para mi caso de uso.

También puede producir muchos otros formatos, como Markdown, lo cual es bueno cuando aún no está seguro de con qué formato desea comprometerse.

Hay un comentario sobre la pregunta que dice que Pandoc no puede convertir desde man , pero eso parece estar desactualizado. La versión actual (2.13) hace un trabajo decente al convertir man a html para mi ejemplo.

Además, mientras que la respuesta aceptada sugiere usar groff -mandoc -Thtml , eso no hizo un trabajo tan bueno para mí como Pandoc. Específicamente, quiero convertir la antigua página de manual de Flex-2.5.5 a html. groff (versión 1.22.4) desafortunadamente destrozó todos los ejemplos de código (sin sangría, sin fuente de ancho fijo), haciéndolos difíciles de leer, mientras que Pandoc los trajo como pre secciones. Además, el groff la salida está llena de estilos en línea explícitos, mientras que la salida de Pandoc no usa CSS en absoluto, lo que la convierte en un mejor punto de partida para la edición.

(Hay una respuesta existente que también menciona a Pandoc, y consideré editar mi información en ella, pero quería decir más sobre mi experiencia al usarla).


Usa el comando man -k '' podría enumerar todos los nombres de páginas de manual disponibles, lo que podría ser mejor que find y zcat archivos de datos de páginas man originales; Mientras tanto, el comando del hombre tiene una opción -T, --troff-device[=DEVICE] que puede generar HTML de la sección y el nombre de la página del manual. Entonces, el siguiente script bash viene a convertir todas las páginas de manual disponibles en su Linux en archivos HTML :

man -k '' | while read sLine; do
    declare sName=$(echo $sLine | cut -d' ' -f1)
    declare sSection=$(echo $sLine | cut -d')' -f1|cut -d'(' -f2)
    echo "converting ${sName}(${sSection}) to ${sName}.${sSection}.html ..."
    man -Thtml ${sSection} ${sName} > ${sName}.${sSection}.html
done

En una intranet sin acceso a Internet, el servicio de páginas de manual en línea no está disponible, coloque estos archivos en su servidor HTTP estático como Nginx con autoindex activado es una buena opción, donde navegar y Ctrl+F pueden ser convenientes.


Sí... Para convertir uno de ellos, digamos, hombre de hombre:

zcat /usr/share/man/man1/man.1.gz  | groff -mandoc -Thtml

Si desea 'todos instalados en su PC', simplemente itere a través de ellos. Para una salida diferente (texto, por ejemplo), use un 'dispositivo' diferente (el argumento -T).

Por si acaso... si la 'iteración' fuera el verdadero problema, puedes usar:

OUT_DIR=...

for i in `find -name '*.gz'`; do 
    dname=`dirname $i`
    mkdir -p $OUT_DIR/$dname
    zcat $i | groff -mandoc -Thtml > $OUT_DIR/$i.html
done

Linux
  1. Reemplace las páginas man con Tealdeer en Linux

  2. Las 5 mejores opciones de comando man de Linux para navegar por las páginas man

  3. ¿Localización de páginas man en Linux (ubuntu)?

  4. Cómo utilizar eficazmente las páginas de manual en Linux

  5. Cómo buscar páginas de manual de Linux (por ejemplo, con grep)

Cómo ver páginas man coloreadas en Linux

Cómo navegar y leer Arch Wiki completo como páginas man de Linux

Aprenda a usar las páginas de manual de manera eficiente en Linux

Cómo ver una sección específica en las páginas man en Linux

Cómo instalar páginas man en Alpine Linux

Los mejores editores de texto de Linux:los 20 editores de texto y HTML revisados