2012-11-17 72 views
16

有沒有辦法將所有Linux手冊頁轉換爲純文本,html或markdown?將所有Linux手冊頁轉換爲text/html或markdown

我需要爲我的系統上安裝的每個人文件執行此操作。

+2

[Pandoc(http://johnmacfarlane.net/pandoc/)可以做了不少,但遺憾的是沒有'man' - >什麼其他(雖然它可以將多種格式轉換爲「man」) –

+0

它可以將許多格式轉換爲「man」,效果很差。 - FTFY –

回答

24

是...要轉換其中的一個,比方說,男人的男人:

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

如果你想「所有的PC上安裝」,你只是遍歷它們。對於不同的輸出(例如文本),使用不同的'設備'(-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 
+0

謝謝,我想我可以建立一個腳本來做到這一點......我正在尋找一種轉換所有man文件的理想方式,而不僅僅是一個。 – KJS

+6

對於給定的聯機幫助頁$ PAGE,這可行,但遺憾的是,生成的HTML不是很好(內聯CSS,沒有類名,非語義)。我想自動鏈接到標題等。我自己學習手冊頁格式... 快速找到並輸出手冊頁的快捷方式: '''zcat $(man -w $ PAGE)| groff -mandoc -Thtml''' –

+0

Great tips;如果OSX用戶發現這種情況:使用'gzcat'而不是'zcat'來解壓縮(大多數頁面在OSX上並未實際壓縮)。另外,儘管Ubuntu(14.04版本)確實附帶了'groff',但是HTML輸出過濾器並未預先安裝,並且不清楚如何安裝它(既不添加'groff'也不添加'groff-base'' apt-get '包幫助);還有一個可選的'man2html'包,但請注意它的HTML輸出有所不同。 – mklement0

0

今天是你的幸運日。有人已經爲你做了這個。 http://linux.die.net/

+3

但是有些網頁據傳不是最新的。 http://www.kernel.org/doc/man-pages/也是一個好地方。 –

+0

@Basile - 酷。很高興知道。我懷疑kernel.org是最新的。謝謝! – cowboydan

+1

手冊頁被包裝在那裏,這是非常錯誤的,因爲我想成爲控制輸出寬度的人。 – mbaitoff

7

命令man -k ''可以列出所有可用手冊頁的名稱,這可能比findzcat原手冊頁的數據文件更好;同時,人的命令有一個選項-T, --troff-device[=DEVICE],可以生成給定的手冊頁部分和名稱的HTML。所以下面的bash腳本來轉換成你的Linux提供的所有的人的頁面到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 

在內部網不上網,那online man-pages service是不可用的,把這個文件在您的靜態HTTP服務器,因爲帶有autoindex的Nginx是一個不錯的選擇,其中browse和Ctrl + F可能會很方便。

+1

有這項工作的自動化項目:https:// github。com/vbem/man-to-github- – vbem

1
man -Hfirefox ls 

打開的 「LS」 手冊頁直接在Firefox

+1

在哪個平臺/版本的man上有這個選項? – crobicha

+0

嗨@crobicha。我不知道支持這個選項的最小'人'版本。但是我的'man-2.7.5'有選項'-H,--html [= BROWSER]使用elinks或者BROWSER來顯示HTML輸出。請幫忙,改進你的回答,提供最少的'man'版本和'man'手冊的摘錄。也可以說,不回答OP問題,將** ALL **本地手冊頁轉換爲HTML或降價。乾杯 – olibre

+0

有一個簡短的命令行:'man -H ls',但環境變量'BROWSER'必須先設置爲:'export BROWSER = firefox' – olibre