自分はLT資料を作る際に、『Carbon』というおしゃれなコード画像を生成するWebサービスを利用しています。今回はCarbonをインスパイアした『Silicon』というRust製のCLIツールを発見したので紹介します。
こういった画像がCLIで生成できます。
Rustをインストールしている前提で次のコマンドを実行します。
$ cargo install silicon
$ silicon --version
でバージョン情報が出力されればインストールは成功です。
Siliconは画像化したいファイルのパスと、output
オプションで出力先のファイルを指定して動かします。
次のコマンドはsiliconの利用例です。
silicon index.js -o main.png
クリップボードのコードから画像を生成できます。
ただし、language
オプションで言語を指定してコードハイライトを有効にする必要があります。
silicon --from-clipboard -l js -o main.png
背景・影色や、ウィンドウコントロール・行番号の非表示、ハイライトのテーマなどのオプションも指定できます。
help
オプションで指定できるオプションを確認できます。
silicon index.js -o test.png --background '#ffffff' --no-window-controls --no-line-number --theme TwoDark
例の通り、Siliconは多くのオプションを指定することになるでしょう。オプションの初期値を記入する設定ファイルの仕組みも用意されていないので、シェルのエイリアスとして設定することで便利に使えます。
例えば次のようなエイリアスを.bashrc
などシェルの設定ファイルに記入しましょう。
ファイルを引数として与えれば、タイムスタンプをファイル名としたpngファイルが~/Download
フォルダに生成されるコマンドです。非常に乱暴なエイリアスですが、利便性は高めです。
alias code2img="silicon -o ~/Downloads/code2img-$(date '+%y%m%d%H%M%S').png --background '#ffffff' --no-line-number --no-window-controls"
alias code2img="silicon -o ~/Downloads/code2img-(date '+%y%m%d%H%M%S').png --background '#ffffff' --no-line-number --no-window-controls"
ファイルを指定して画像を生成する
$ code2img package.json
クリップボードから言語を指定して画像を生成する
$ code2img --from-clipboard -l js
コードを画像化する上でオフラインでも画像を生成できるSiliconは素晴らしい選択肢になると思います。
ただし、2019年08月04日現在は背景の透明化を行うことができません。しかし、Issueは既に立っているので対応されるのを期待しましょう。
(2019年8月9日追記)透明な背景色が使えるようになりました。
Add support for transparency by Aloxaf · Pull Request #31 · Aloxaf/silicon
ここ最近、Web技術を利用した画像生成に興味があります。本記事では、日本語における表現の一種である縦書きに焦点を当て、Web技術を使った縦書きを含む画像生成方法についての調査をまとめました。 > 現
追記(2022/12/29): 問い合わせに対応する窓口をTwitterに統一したいので、フォームページは削除しました。 当ブログは静的サイトホスティングサービスのNetlifyでホスティングされ
毎年10月に開催されるHacktoberfestに参加しました。このイベントはOSSへの貢献を行い、期間中に規定数(4つ)の貢献を行った人に特典がプレゼントされるものになっています。 自分はドキュメ