2014年5月12日月曜日

[linux] ソースコードをHTMLに変換するコマンド:enscript

ブログ上でコードを紹介する際、単にコードをコピペしただけだと"<", ">", "&"などの文字が適切に表示されなかったり、タブの位置がずれたり、キーワードがわかりにくかったり、といった問題に遭遇します。
いろいろとツールが出ているようなのですが、linux上であればenscriptというコマンドで容易にhtml化ができることが分かったためその方法を紹介します。


%  enscript --highlight=cpp --color -C -o output.html -w html input.cpp


上記のコマンドでinput.cppの内容がoutput.htmlに出力されます。キーワードをハイライトするオプションである"--color"を指定する際には"--hilight"が必要なので注意が必要です。また、行番号を出力する"-C"はhtmlへの出力時には効かないようです(残念…)。
入力としてサポートしている言語は多岐にわたっています。以下、そのリストになります。
  • ada
  • asm
  • awk
  • bash
  • c
  • changelog
  • cpp
  • csh
  • delphi
  • diff
  • diffs
  • diffu
  • elisp
  • f90
  • fortran
  • fortran_pp
  • haskell
  • html
  • idl
  • inf
  • java
  • javascript
  • ksh
  • m4
  • mail
  • makefile
  • matlab
  • nroff
  • objc
  • outline
  • pascal
  • perl
  • postscript
  • pyrex
  • python
  • rfc
  • ruby
  • scheme
  • sh
  • skill
  • sql
  • states
  • synopsys
  • tcl
  • tcsh
  • tex
  • vba
  • verilog
  • vhdl
  • vrml
  • wmlscript
  • zsh
"-w"で指定する出力フォーマットは以下の通りです。
  • PostScript
    • generate PostScript (default)
  • html
    • generate HTML
  • overstrike
    • generate overstrikes (line printers, less)
  • rtf
    • generate RTF (Rich Text Format)
  • ansi 
    • generate ANSI terminal control codes

(独り言…)haskellもサポート言語に加えてほしいなぁ。失礼しました。ちゃんとhaskellもサポートされていました。

0 件のコメント:

コメントを投稿