GNU/Linux >> Znalost Linux >  >> Linux

Převeďte všechny manuálové stránky Linuxu na text / html nebo markdown

Doporučuji vyzkoušet Pandoc:

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

Vytváří HTML, které je čitelné i upravitelné, což je pro můj případ použití důležité.

Může také produkovat mnoho dalších formátů, jako je Markdown, což je příjemné, když si ještě nejste jisti, ke kterému formátu se chcete zavázat.

U otázky je komentář, který říká, že Pandoc nemůže převést z man , ale to se zdá být zastaralé. Aktuální verze (2.13) odvádí slušnou práci při převodu man do html pro můj příklad.

Kromě toho, zatímco přijatá odpověď navrhuje použití groff -mandoc -Thtml , který mi neudělal tak dobrou práci jako Pandoc. Konkrétně chci převést starou manuálovou stránku Flex-2.5.5 na html. groff (verze 1.22.4) bohužel pozměnila všechny příklady kódu (žádné odsazení, žádné písmo s pevnou šířkou), takže byly obtížně čitelné, zatímco Pandoc je uvedl jako pre sekce. Navíc groff výstup je plný explicitních inline stylů, zatímco výstup Pandoc nepoužívá vůbec žádné CSS, takže je lepším výchozím bodem pro úpravy.

(Existuje existující odpověď, která také zmiňuje Pandoc, a zvažoval jsem do ní upravit své informace, ale chtěl jsem říci více o svých zkušenostech s jeho používáním.)


Použijte příkaz man -k '' mohl vypsat všechny dostupné názvy manuálových stránek, což by mohlo být lepší než find a zcat originální datové soubory manuálových stránek; Mezitím má příkaz man možnost -T, --troff-device[=DEVICE] který může generovat HTML dané sekce a názvu manuálové stránky. Takže přichází následující bash skript, který převede všechny manuálové stránky dostupné ve vašem Linuxu do HTML souborů :

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

V intranetu bez přístupu k internetu, kdy je online služba manuálových stránek nedostupná, vložte tyto soubory na svůj statický server HTTP, jako je Nginx se zapnutým automatickým indexováním je dobrá volba, kde se může hodit procházení a Ctrl+F.


Ano... Chcete-li jednoho z nich obrátit, řekněme, muž z člověka:

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

Pokud chcete „vše nainstalované na vašem PC“, stačí je procházet. Pro jiný výstup (například text) použijte jiné 'zařízení' (argument -T).

Pro případ... pokud by 'iterace' byla skutečným problémem, můžete použít:

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. 5 nejlepších možností příkazu Linux man pro procházení manuálových stránek

  2. Lokalizace Man Pages na Linuxu (ubuntu)?

  3. Upravit příchozí poštu z textu/prostého na text/html?

  1. Nahradit manuálové stránky Tealdeerem v Linuxu

  2. 8 UNIX / Linux Příklad příkazu Man k zobrazení stránek Man

  3. Jak efektivně používat Man Pages pod Linuxem

  1. python převést dokumenty microsoft office na prostý text na linuxu

  2. Jak převést výstup shellu Linuxu do HTML?

  3. Jak v Linuxu najdu všechny soubory obsahující konkrétní text?