すべてのLinuxのマニュアルページをプレーンテキスト、HTML、またはマークダウンに変換する方法はありますか?
システムにインストールしたすべてのmanファイルに対してこれを行う必要があります。
はい...それらの1つを変換するには、たとえば、man of man:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
「すべてをPCにインストールする」場合は、それらを繰り返し処理します。異なる出力(テキストなど)には、異なる'device'(-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
このコマンドを使用すると、使用man -k ''
可能なすべてのマンページ名を一覧表示できます。これはfind
、zcat
元のマンページデータファイルよりも優れている場合があります。-T, --troff-device[=DEVICE]
一方、manのコマンドには、指定されたmanページのセクションと名前の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
インターネットにアクセスできないイントラネットでオンラインのマニュアルページサービスを利用できない場合は、このファイルをNginxなどの静的HTTPサーバーに配置し、自動インデックスをオンにすることをお勧めします。この場合、参照とCtrl+Fが便利です。
man -Hfirefox ls
Firefoxで直接「ls」のマンページを開きます
おそらく、アプリの代わりにコードを使用してこれを行うための最良の方法は、pandocを使用することです。https://pandoc.org
python pandoのように、異なるマークアップ間でインライン文字列変換を行うこともできます。
import pypandocenter
# With an input file: it will infer the input format from the filename
output = pypandoc.convert_file('somefile.md', 'rst')
# ...but you can overwrite the format via the `format` argument:
output = pypandoc.convert_file('somefile.txt', 'rst', format='md')
# alternatively you could just pass some string. In this case you need to
# define the input format:
output = pypandoc.convert_text('#some title', 'rst', format='md')
# output == 'some title\r\n==========\r\n\r\n'
Pandocを試すことをお勧めします:
$ pandoc --from man --to html < input.1 > output.html
読み取りと編集の両方が可能なHTMLを生成します。後者は、私のユースケースにとって重要です。
また、Markdownなど、他の多くの形式を生成することもできます。これは、どの形式にコミットするかがまだわからない場合に便利です。
Pandocはから変換できないという質問に対するコメントがありますが、man
それは時代遅れのようです。現在のバージョン(2.13)は、私の例では適切な変換man
をhtml
行います。
さらに、受け入れられた回答はを使用することを示唆してgroff -mandoc -Thtml
いますが、それは私にとってPandocほどうまくいきませんでした。具体的には、古いFlex-2.5.5のマニュアルページをhtml に変換したいと思います。groff
(バージョン1.22.4)残念ながら、すべてのコード例(インデントなし、固定幅フォントなし)が壊れて読みにくくなりましたが、Pandocはそれらをpre
セクションとして持ち込みました。さらに、groff
出力は明示的なインラインスタイルでいっぱいですが、Pandoc出力はCSSをまったく使用しないため、編集の開始点として適しています。
(Pandocについても言及している既存の回答があり、情報を編集することを検討しましたが、Pandocを使用した経験について詳しく説明したいと思います。)
これは私のためにそれをします
man --html=cat gcc > gcc.htm
今日はあなたの幸運な日です。誰かがすでにあなたのためにこれをしました。 http://linux.die.net/