Cập nhật: Tôi đã thêm một perl
phương thức, sử dụng mô-đun HTML :: FromANSI từ CPAN .. Để cài đặt nó, chỉ cần giải nén nó vào một thư mục và chạy, như root: perl -MCPAN -e 'install HTML::FromANSI'
từ thư mục đó. Tính năng đặc biệt phù hợp với yêu cầu của bạn là một tập lệnh được gọi ansi2html
. Thật thú vị, nó cho thấy sự mất màu tương tự sau khi được phủ lên k
trong tên tệp, cũng như tập lệnh elisp-shell ... Đây là một ví dụ sử dụng:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Đây là đầu ra html. như đã thấy trong Firefox:
Đây là một phương thức sử dụng tập lệnh elac -shell emacs ... ví dụ, được gọi là htmlize ... Emacs không cần phải chạy.
Ban đầu tôi đã thử nó trên nền đen, nhưng tôi nhận thấy rằng vì một số lý do, nền trắng không chơi tốt với một trong các Mã thoát được giới thiệu \e[K
, dường như là ERASE_LINE (Xóa dòng đầu ra hiện tại) . Tôi đã thêm một dòng để loại bỏ Mã thoát này. Bây giờ nó hoạt động cho một nền trắng.
Dưới đây là một ví dụ về đầu ra ls
được tô sáng màu từ đường ống đến grep
để làm nổi bật màu hơn nữa.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
đây là elsip-shell
kịch bản
#!/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"))
Đây là một ví dụ về đầu ra html, trong Firefox ... Nếu tôi có thời gian, tôi sẽ xem xét thêm về vấn đề mã ANSI. trong đó các màu đỏ k
chồng lên các tên tập tin màu xanh lá cây, nhưng điều đó chỉ có ở đó vì một chế độ thử nghiệm được chọn vội vàng cho grep ... (có lẽ đó là một cái gì đó \e[K
ảnh hưởng ...