2010-01-09 31 views
11

có cách nào để chuyển đổi kết quả bash thành html không? ví dụ nếu tôi đã có một số sản lượng colorized trong bash (một cái gì đó như htop), làm thế nào tôi có thể chuyển đổi nó sang thẻ html ... (một cái gì đó như thế này: <p style="color: red">some text</p>)Đầu ra của trình bao linux thành html

+1

Kết quả chuyển đổi sẽ trông như thế nào? Không có cấu trúc dễ nhận biết ở đây có thể được chuyển đổi thành các thẻ HTML. Chính xác là bạn đang cố đạt được điều gì? –

+0

Dữ liệu của bạn có vẻ đầy các chuỗi điều khiển ANSI. Điều đó có chủ ý không? –

+2

Liên quan: http://stackoverflow.com/questions/245121/a-library-to-convert-ansi-escapes-terminal-formatting-color-codes-to-html – Tobu

Trả lời

19

ansifilter cộng với một số công cụ như highlight sẽ tạo ra html được tô màu từ văn bản thuần túy như tệp nguồn.

Cả hai đều có sẵn here.

+3

Đây chính xác là những gì tôi muốn ... ansifilter -i file -H -o file.html – linker

9

Có, bạn cần phải kết quả thông qua một công cụ như ansi2html.

3

Không cần in ấn đẹp, điều đơn giản nhất bạn có thể làm là thoát khỏi mọi thứ cần thoát, và bọc một lớp vỏ HTML cơ bản (sau đây phải là hợp lệ tối thiểu HTML5). Ví dụ, có được một tổ chức của fastesc: http://raa.ruby-lang.org/project/fastesc/, và quấn nó vào một trình bao HTML.

Nếu bạn muốn giữ sự kỳ diệu ANSI, sau đó bạn cần phải chuyển đổi mà sang HTML, có lẽ với http://ansi-sys.rubyforge.org/

Và sau đó làm một cái gì đó như thế này, tùy thuộc vào nhu cầu của bạn:

require 'ansisys' 


def ansi_escape(string) 
    terminal = AnsiSys::Terminal.new 
    terminal.echo(string) 
    terminal.render 
end 

def to_html(string) 
    %Q{ <!DOCTYPE html> 
     <title>Converted to html</title> 
     <pre> 
     #{ansi_escape(string)} 
     </pre> 
    } 
end 
+0

+1 Đây cũng là câu trả lời của tôi ... – linker

+0

Điều này có thể vẫn cần HTML thoát. – nes1983

Các vấn đề liên quan