先日 aha というコマンドを試しましたが,今回 terminal-to-html
という似たコマンドを試してみました.
導入とhelp
$ go install github.com/buildkite/terminal-to-html/v3/cmd/terminal-to-html@latest $ which terminal-to-html /home/matoken/go/bin/terminal-to-html $ terminal-to-html --help terminal-to-html - turn ANSI in to HTML STDIN/STDOUT USAGE: cat input.raw | terminal-to-html [arguments...] > out.html WEBSERVICE USAGE: terminal-to-html --http :6060 & curl --data-binary "@input.raw" http://localhost:6060/terminal > out.html OPTIONS: --http value HTTP service mode (eg --http :6060), endpoint is /terminal --preview wrap output in HTML & CSS so it can be easily viewed directly in a browser (default: false) --log-stats-to-stderr Logs a JSON object to stderr containing resource and processing statistics after successfully processing (default: false) --buffer-max-lines value Sets a limit on the number of lines to hold in the screen buffer (and also limits the possible window height), allowing the renderer to operate in a streaming fashion and enabling the processing of large inputs. Setting to 0 disables the limit, causing the renderer to buffer the entire screen before producing any output (default: 300) --window-max-cols value Sets an upper bound on the window width (which may change based on input). Window size mainly affects cursor movement sequences (default: 400) --window-cols value Sets the initial window width. Window size mainly affects cursor movement sequences (default: 160) --window-lines value Sets the initial window height. Window size mainly affects cursor movement sequences (default: 100) --help, -h show help --version, -v print the version
早速実行してみます.既定値ではヘッダーやフッターは付かないようです.
$ cowsay hello terminal | terminal-to-html ________________ < hello terminal > ---------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
次に --preview
option を試します.HTML と CSS でラップしてくれます.aha コマンドでは表現されなかった cow のしっぽの点滅も再現できています.
しかしここに HTML を貼り付けたら WprdPress と干渉して色コードが下部のタグになったり改行が入ってしまったりとひどいことになったのでとりあえず静止画です.ちなみに Asciidoctor Reveal.js へは綺麗に貼り付けできました.
$ unbuffer apt moo moo | terminal-to-html --preview | xsel
次にウェブサービスとして動かしてみます.http 経由で変換ができます.
$ terminal-to-html --http :6060 & $ cowsay hello > input.raw $ curl --data-binary "@input.raw" http://localhost:6060/terminal _______ < hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || $ kill %1 $ terminal-to-html --preview --http :6060 & $ curl --data-binary "@input.raw" http://localhost:6060/terminal | head % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 1<!DOCTYPE html> 0<html> 1 <head> 5 <meta charset="UTF-8"> 6 <title>terminal-to-html Preview</title> <style>.term-container { background: #171717; 1 border-radius: 5px; 0 color: white; 0 10005 100 151 6211k 95994 --:--:-- --:--:-- --:--:-- 9917k curl: Failed writing body
aha の方が HTML 変換のオプションが多いけど,terminal-to-html は http server 昨日が合ったりとユニークな部分も.好みで使い分けると良さそうです.
環境
$ terminal-to-html --version terminal-to-html version 3.16.3 $ dpkg-query -W golang curl curl 8.10.1-2 golang:amd64 2:1.23~2 $ lsb_release -dr Description: Debian GNU/Linux trixie/sid Release: n/a $ arch x86_64