GNU/Linux >> Linux Esercitazione >  >> Linux

Converti tutte le pagine man di Linux in testo/html o markdown

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

Linux
  1. Modificare una posta in arrivo da testo/normale a testo/html?

  2. Come utilizzare efficacemente le pagine man sotto Linux

  3. python converte i documenti di Microsoft Office in testo normale su Linux

  4. Come convertire l'output della shell di Linux in HTML?

  5. Elenco di tutte le pagine man disponibili

Come visualizzare le pagine man colorate in Linux

Come sfogliare e leggere l'intero wiki di Arch come pagine man di Linux

Impara a usare le pagine man in modo efficiente in Linux

Come visualizzare una sezione specifica nelle pagine man in Linux

Come installare le pagine man in Alpine Linux

I migliori editor di testo Linux:i 20 editor di testo e HTML recensiti