ANSI 이스케이프 (터미널 형식 / 색상 코드)를 HTML로 변환하는 라이브러리 [닫힘]


80

일반 태그 또는 CSS를 통해 ANSI 이스케이프 시퀀스를 HTML 색상으로 변환하는 코드 라이브러리를 찾고 있습니다. 예를 들어 다음과 같이 변환 할 수 있습니다.

ESC [00mESC [01; 34mbinESC [00m]
ESC [01; 34mcodeESC [00m
ESC [01; 31mdropbox-lnx.x86-0.6.404.tar.gzESC [00m
ESC [00mfooESC [00m

이것으로 :

<span style="color:blue">bin</span>
<span style="color:blue">code</span>
<span style="color:red">dropbox-lnx.x86-0.6.404.tar.gz</span>
foo

브레이크를 <br/>로 변환 할 필요는 없습니다. 내가 모르는 이스케이프 코드 일뿐입니다. 직접 해킹 할 수도 있지만 밑줄이나 배경색의 작동 방식을 엉망으로 만드는 것과 같은 중요한 것을 놓쳤을 것입니다. 차라리 다른 사람의 코드 위에 앉아있는 것이 좋습니다.

그러한 도구 (명령 줄 linux) 또는 라이브러리 (perl, python 또는 ruby)가 존재합니까?


훌륭한 질문과 귀중한 답변 세트!
cxw

답변:



96

aha는 Ubuntu 패키지, http://ziz.delphigl.com/tool_aha.php 또는 github https://github.com/theZiz/aha 에서 사용할 수있는 C 언어 프로그램으로, 다음 과 같이 터미널 색상으로 입력을받습니다. 파이프 또는 파일을 사용하고 stdout에 (w3c 준수) HTML 파일을 넣습니다. 예:

ls --color=always | aha > ls-output.htm

또는

ls --color=always | aha --black > ls-output.htm

검정색 배경에 터미널 같은 느낌을줍니다.

"make"로 컴파일하고 원하는 곳에 넣으십시오.

피드백을 받으면 좋을 것입니다. ;-)


2
IcanDivideBy0이 놓친 것이 있습니다. Alexander Matthes의 게시물에있는 "독일어 링크"는 여전히 유효합니다. 원본 게시물의 "ziz"앞에 잘못된 ''가 있습니다. 사용 ziz.delphigl.com/tool_aha.php 에서 소스 - :에, 또한 알렉산더의 링크 포인트를 ziz.delphigl.com/data/aha-src-0.4.4.tar.gz , 그리고 - 다른 데비안 패키지를 HTTP에서 : // packages.debian.org/search?keywords=aha ( ':'뒤에 추가 된 공백 ( '')을 제거하십시오. 게시물 당 링크를 2 개 이상 포함 할 권한이 없으므로)
Der Schley

7
aha를위한 우분투 패키지가 있습니다
grep

1
이 앱의 github 저장소가 os x에서 문제없이 컴파일되고 실행된다는 점을 다른 사람들에게 알려 드리고 싶었습니다. :)
masukomi 2013-04-09

3
방금 aha에 대한 Homebrew Pull Request를 추가했습니다 . 수락되면 brew update && brew install ahaMac에서 aha를 설치하는 것이 간단 합니다.
Nightscape

2
내가 말할 수있는 한 16 가지 색상 만 처리하는 것 같습니다.
Gringo Suave

19

아직 유지되는 성숙한 Python 라이브러리 및 명령 줄 도구 : ralphbean / ansi2html

또는 Bourne 쉘의 경우 : ansi2html.sh


2
"pixelbeat 및 블랙 잭 작업에서 영감을 얻고 개발했습니다." 더 나은이 하나, 그리고 -i 옵션과 같은 나는 :) 중대하다
DavidG

큰! 둘 다 256 색상도 처리합니다. 찬성.
jamadagni dec

pixelbeat ansi2html.sh 는 저에게 잘 맞았 습니다!
cxw

더 이상 Bourne 및 deb, yum, apt 패키지로 제한되지 않음 : pypi.python.org/pypi/ansi2html/1.0.7
hobs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.