GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren Sie alle Linux-Manpages in Text / HTML oder Markdown

Ich empfehle, Pandoc auszuprobieren:

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

Es erzeugt HTML, das sowohl lesbar als auch bearbeitbar ist, wobei letzteres für meinen Anwendungsfall wichtig ist.

Es kann auch viele andere Formate wie Markdown produzieren, was nett ist, wenn Sie sich noch nicht sicher sind, auf welches Format Sie sich festlegen möchten.

Es gibt einen Kommentar zu der Frage, der besagt, dass Pandoc nicht von man konvertieren kann , aber das scheint veraltet zu sein. Die aktuelle Version (2.13) macht einen ordentlichen Job beim Konvertieren von man bis html für mein Beispiel.

Darüber hinaus schlägt die akzeptierte Antwort die Verwendung von groff -mandoc -Thtml vor , das hat mir nicht so gut getan wie Pandoc. Insbesondere möchte ich die alte Flex-2.5.5-Manpage in HTML konvertieren. groff (Version 1.22.4) hat leider alle Codebeispiele verstümmelt (kein Einzug, keine Schriftart mit fester Breite), was sie schwer lesbar macht, während Pandoc sie als pre herüberbrachte Abschnitte. Zusätzlich die groff Die Ausgabe ist voller expliziter Inline-Stile, während die Pandoc-Ausgabe überhaupt kein CSS verwendet, was sie zu einem besseren Ausgangspunkt für die Bearbeitung macht.

(Es gibt eine vorhandene Antwort, die auch Pandoc erwähnt, und ich habe überlegt, meine Informationen darin zu bearbeiten, aber ich wollte mehr über meine Erfahrungen mit der Verwendung sagen.)


Verwenden Sie den Befehl man -k '' könnte alle verfügbaren Manpage-Namen auflisten, was besser sein könnte als find und zcat Original-Manpage-Datendateien; Inzwischen hat das Kommando von man eine Option -T, --troff-device[=DEVICE] Das kann HTML des angegebenen Manpage-Abschnitts und Namens generieren. Das folgende Bash-Skript dient also dazu, alle in Ihrem Linux verfügbaren Manpages in HTML-Dateien umzuwandeln :

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

In einem Intranet ohne Internetzugang, in dem der Online-Man-Pages-Dienst nicht verfügbar ist, legen Sie diese Dateien auf Ihrem statischen HTTP-Server wie Nginx mit aktiviertem Autoindex ab ist eine gute Option, wo Browsen und Strg+F praktisch sein können.


Ja... Um einen von ihnen zu bekehren, sagen wir, Mann von Mann:

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

Wenn Sie möchten, dass alles auf Ihrem PC installiert ist, durchlaufen Sie sie einfach. Verwenden Sie für eine andere Ausgabe (z. B. Text) ein anderes 'Gerät' (das -T-Argument).

Nur für den Fall ... wenn die 'Iteration' das eigentliche Problem war, können Sie Folgendes verwenden:

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. Lokalisierung von Manpages unter Linux (Ubuntu)?

  2. Eine eingehende Mail von Text/plain zu Text/html ändern?

  3. So durchsuchen Sie Linux-Manpages (z. B. mit grep)

  4. Liste aller verfügbaren Manpages

  5. Wie konvertiere ich HTML in Text?

So zeigen Sie farbige Manpages unter Linux an

So durchsuchen und lesen Sie das gesamte Arch-Wiki als Linux-Manpages

Erfahren Sie, wie man Manpages effizient unter Linux verwendet

So zeigen Sie einen bestimmten Abschnitt in Manpages in Linux an

So installieren Sie Manpages in Alpine Linux

Beste Linux-Texteditoren:Die 20 überprüften Text- und HTML-Editoren