GNU/Linux >> Belajar Linux >  >> Linux

Konversikan semua halaman manual Linux menjadi teks / html atau penurunan harga

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

Linux
  1. 5 opsi perintah man Linux teratas untuk menjelajahi halaman manual

  2. Ubah Surat Masuk Dari Teks/biasa Menjadi Teks/html?

  3. 8 Contoh Perintah Man UNIX / Linux untuk Melihat Halaman Man

  1. python mengonversi dokumen microsoft office menjadi teks biasa di linux

  2. Bagaimana cara mengubah output shell Linux ke HTML?

  3. Bagaimana cara menemukan semua file yang berisi teks tertentu di Linux?

  1. Bagaimana cara membaca halaman manual Linux?

  2. Cara mencari halaman manual Linux (mis. Dengan grep)

  3. Bagaimana cara mengubah HTML menjadi teks?