Aktualizacja: Dodałem perl
metodę, używając modułu HTML :: FromANSI z CPAN .. Aby zainstalować, po prostu wypakuj go do katalogu i uruchom jako root: perl -MCPAN -e 'install HTML::FromANSI'
z tego katalogu. Szczególną cechą odpowiadającą twojemu żądaniu jest skrypt o nazwie ansi2html
. Co ciekawe, wykazuje taką samą utratę koloru po nałożeniu k
w nazwach plików, jak skrypt elisp-shell ... Oto przykład użycia:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Oto wynik HTML. jak widać w przeglądarce Firefox:
Oto metoda wykorzystująca skrypt emacs elisp-shell ... na przykład o nazwie htmlize ... Emacs nie musi być uruchomiony.
Początkowo testowałem go na czarnym tle, ale zauważyłem, że z jakiegoś powodu białe tło nie gra dobrze z jednym z wprowadzonych kodów ucieczki \e[K
, który wydaje się być ERASE_LINE (Usuń bieżącą linię wyjścia terminala) . Dodałem linię do usunięcia tego kodu ucieczki. Teraz działa na białym tle.
Oto przykład wyjściowego podświetlenia kolorów z ls
potoku do grep
dalszego podświetlania kolorów.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
to jest elsip-shell
skrypt.
#!/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"))
Oto przykładowy wynik HTML w Firefoksie ... Jeśli będę mieć czas, przyjrzę się dalszemu problemowi nakładania się kodów ANSI. gdzie czerwone k
s pokrywają się z zielonymi nazwami plików, ale dzieje się tak tylko z powodu pośpiesznie wybranego wyrażenia testowego dla grep ... (może to coś \e[K
wpływa na ...