Saya sarankan mencoba Pandoc:
$ pandoc --from man --to html < input.1 > output.html
Ini menghasilkan HTML yang dapat dibaca dan diedit, yang terakhir penting untuk kasus penggunaan saya.
Itu juga dapat menghasilkan banyak format lain seperti Markdown, yang bagus ketika Anda tidak yakin format mana yang ingin Anda terapkan.
Ada komentar pada pertanyaan yang mengatakan bahwa Pandoc tidak dapat mengonversi dari man
, tapi sepertinya sudah ketinggalan zaman. Versi saat ini (2.13) melakukan pekerjaan yang layak mengonversi man
ke html
untuk contoh saya.
Selanjutnya, sementara jawaban yang diterima menyarankan menggunakan groff -mandoc -Thtml
, itu tidak melakukan pekerjaan sebaik Pandoc untuk saya. Secara khusus, saya ingin mengonversi halaman manual Flex-2.5.5 lama menjadi html. groff
(versi 1.22.4) sayangnya merusak semua contoh kode (tidak ada lekukan, tidak ada font dengan lebar tetap), membuatnya sulit dibaca, sementara Pandoc membawanya sebagai pre
bagian. Selain itu, groff
keluaran penuh dengan gaya inline eksplisit, sedangkan keluaran Pandoc tidak menggunakan CSS sama sekali, menjadikannya titik awal yang lebih baik untuk pengeditan.
(Ada jawaban yang juga menyebutkan Pandoc, dan saya mempertimbangkan untuk mengedit informasi saya ke dalamnya, tetapi saya ingin mengatakan lebih banyak tentang pengalaman saya menggunakannya.)
Gunakan perintah man -k ''
dapat mencantumkan semua nama halaman manual yang tersedia, yang mungkin lebih baik daripada find
dan zcat
file data halaman manual asli; Sedangkan perintah man memiliki opsi -T, --troff-device[=DEVICE]
yang dapat menghasilkan HTML dari bagian dan nama halaman manual yang diberikan. Jadi skrip bash berikut hadir untuk mengonversi semua halaman manual yang tersedia di Linux Anda menjadi 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
Di intranet tanpa akses Internet di mana layanan halaman manual online tidak tersedia, letakkan file ini di server HTTP statis Anda seperti Nginx dengan pengindeksan otomatis adalah opsi yang bagus, di mana penelusuran dan Ctrl+F mungkin nyaman.
Ya... Untuk mengonversi salah satunya, katakanlah, man of man:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
Jika Anda ingin 'semua terinstal di PC Anda', Anda tinggal mengulanginya. Untuk keluaran yang berbeda (teks, misalnya), gunakan 'perangkat' yang berbeda (argumen -T).
Untuk berjaga-jaga... jika 'iterasi' adalah masalah sebenarnya, Anda dapat menggunakan:
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