Consiglio di provare Pandoc:
$ pandoc --from man --to html < input.1 > output.html
Produce HTML sia leggibile che modificabile, quest'ultimo importante per il mio caso d'uso.
Può anche produrre molti altri formati come Markdown, il che è utile quando non sei ancora sicuro su quale formato vuoi impegnarti.
C'è un commento sulla domanda che dice che Pandoc non può convertire da man
, ma sembra non essere aggiornato. La versione attuale (2.13) fa un buon lavoro convertendo man
a html
per il mio esempio.
Inoltre, mentre la risposta accettata suggerisce di utilizzare groff -mandoc -Thtml
, che non ha fatto un buon lavoro per me come Pandoc. Nello specifico, voglio convertire la vecchia pagina man di Flex-2.5.5 in html. groff
(versione 1.22.4) purtroppo ha alterato tutti gli esempi di codice (nessun rientro, nessun carattere a larghezza fissa), rendendoli difficili da leggere, mentre Pandoc li ha importati come pre
sezioni. Inoltre, il groff
l'output è pieno di stili incorporati espliciti, mentre l'output di Pandoc non utilizza alcun CSS, rendendolo un punto di partenza migliore per l'editing.
(Esiste una risposta che menziona anche Pandoc e ho pensato di modificare le mie informazioni al suo interno, ma volevo dire di più sulla mia esperienza nell'usarlo.)
Usa il comando man -k ''
potrebbe elencare tutti i nomi delle pagine man disponibili, che potrebbero essere migliori di find
e zcat
file di dati originali della pagina man; Nel frattempo, il comando di man ha un'opzione -T, --troff-device[=DEVICE]
che può generare HTML di una determinata sezione e nome della pagina man. Quindi il seguente script bash arriva a convertire tutte le pagine man disponibili nel tuo Linux in file 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
In una intranet senza accesso a Internet il servizio di pagine man online non è disponibile, inserisci questi file nel tuo server HTTP statico come Nginx con autoindex attivo è una buona opzione, dove sfogliare e Ctrl+F possono essere utili.
Sì... Per convertire uno di loro, diciamo, uomo dell'uomo:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
Se vuoi "tutto installato sul tuo PC", devi semplicemente scorrerli. Per un output diverso (testo, ad esempio), usa un 'dispositivo' diverso (l'argomento -T).
Per ogni evenienza... se l'"iterazione" era il vero problema, puoi usare:
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