GNU/Linux >> Tutoriels Linux >  >> Linux

Convertir toutes les pages de manuel Linux en texte/html ou démarquage

Je recommande d'essayer Pandoc :

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

Il produit du HTML qui est à la fois lisible et modifiable, ce dernier étant important pour mon cas d'utilisation.

Il peut également produire de nombreux autres formats tels que Markdown, ce qui est pratique lorsque vous ne savez pas encore dans quel format vous souhaitez vous engager.

Il y a un commentaire sur la question qui dit que Pandoc ne peut pas convertir à partir de man , mais cela semble dépassé. La version actuelle (2.13) fait un travail décent en convertissant man à html pour mon exemple.

De plus, alors que la réponse acceptée suggère d'utiliser groff -mandoc -Thtml , qui n'a pas fait un aussi bon travail pour moi que Pandoc. Plus précisément, je souhaite convertir l'ancienne page de manuel Flex-2.5.5 en html. groff (version 1.22.4) a malheureusement mutilé tous les exemples de code (pas d'indentation, pas de police à largeur fixe), les rendant difficiles à lire, tandis que Pandoc les a ramenés en tant que pre sections. De plus, le groff la sortie est pleine de styles en ligne explicites, tandis que la sortie Pandoc n'utilise aucun CSS, ce qui en fait un meilleur point de départ pour l'édition.

(Il existe une réponse existante qui mentionne également Pandoc, et j'ai envisagé d'y modifier mes informations, mais je voulais en dire plus sur mon expérience d'utilisation.)


Utilisez la commande man -k '' pourrait lister tous les noms de pages de manuel disponibles, ce qui pourrait être mieux que find et zcat fichiers de données de page de manuel d'origine ; Pendant ce temps, la commande de man a une option -T, --troff-device[=DEVICE] qui peut générer le code HTML de la section et du nom de la page de manuel donnée. Ainsi, le script bash suivant vient convertir toutes les pages de manuel disponibles dans votre Linux en fichiers 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

Dans un intranet sans accès Internet où le service de pages de manuel en ligne n'est pas disponible, placez ces fichiers dans votre serveur HTTP statique tel que Nginx avec autoindex activé est une bonne option, où parcourir et Ctrl+F peuvent être pratiques.


Oui... Pour convertir l'un d'entre eux, disons, homme d'homme :

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

Si vous voulez que "tout soit installé sur votre PC", il vous suffit de les parcourir. Pour une sortie différente (texte, par exemple), utilisez un 'device' différent (l'argument -T).

Juste au cas où... si "l'itération" était le vrai problème, vous pouvez utiliser :

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. Comment convertir la sortie du shell de Linux en HTML ?

  2. Comment puis-je trouver tous les fichiers contenant du texte spécifique sous Linux ?

  3. Comment lire les pages de manuel Linux ?

  4. Comment rechercher des pages de manuel Linux (par exemple avec grep)

  5. Liste de toutes les pages de manuel disponibles

Comment afficher les pages de manuel colorées sous Linux

Comment parcourir et lire l'intégralité du wiki Arch en tant que pages de manuel Linux

Apprenez à utiliser efficacement les pages de manuel sous Linux

Comment afficher une section spécifique dans les pages de manuel sous Linux

Comment installer des pages de manuel dans Alpine Linux

Meilleurs éditeurs de texte Linux :les 20 éditeurs de texte et HTML examinés