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