Pembaruan: Saya telah menambahkan perl
metode, menggunakan modul HTML :: FromANSI dari CPAN .. Untuk menginstalnya, cukup ekstrak ke direktori, dan jalankan, sebagai root: perl -MCPAN -e 'install HTML::FromANSI'
dari direktori itu. Fitur khusus yang sesuai dengan permintaan Anda adalah skrip yang disebut ansi2html
. Yang cukup menarik, ini menunjukkan hilangnya warna yang sama setelah overlay k
pada nama file, seperti halnya skrip elisp-shell ... Berikut adalah contoh penggunaan:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Ini adalah output html. seperti yang terlihat di Firefox:
Berikut adalah metode menggunakan skrip emacs elisp-shell ... misalnya, yang disebut htmlize ... Emacs tidak perlu dijalankan.
Saya awalnya mengujinya pada latar belakang hitam, tetapi saya perhatikan bahwa karena alasan tertentu, latar belakang putih tidak cocok dengan salah satu Kode Escape yang diperkenalkan \e[K
, yang tampaknya ERASE_LINE (Hapus garis keluaran terminal saat ini) . Saya telah menambahkan baris untuk menghapus Kode Escape ini. Sekarang berfungsi untuk latar belakang putih.
Berikut adalah contoh keluaran yang disorot warna dari ls
yang disalurkan ke grep
untuk penyorotan warna lebih lanjut.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
ini elsip-shell
skripnya.
#!/bin/sh
":"; exec /usr/bin/emacs -Q --script "$0" -- "$@" # -*-emacs-lisp-*-
(require 'ansi-color) (require 'htmlize)
(find-file (setq path-in (cadr argv)))
(ansi-color-apply-on-region (point-min) (point-max))
(switch-to-buffer (buffer-name (htmlize-buffer)))
(write-file (concat path-in ".html"))
Berikut adalah contoh dari output html, di Firefox ... Jika saya punya waktu, saya akan melihat lebih jauh ke masalah kode ANSI overlay. di mana merah k
tumpang tindih dengan nama file hijau, tapi itu hanya ada karena tes regex yang dipilih dengan tergesa-gesa untuk grep ... (mungkin itu adalah sesuatu yang \e[K
mempengaruhi ...