それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

source-highlight コマンドでCSSを指定する

GNU source-highlight コマンドで、ソースをハイライトしたHTMLを作成できます。

ただし、font タグが入り乱れて美しくない。

source-highlight で生成したHTML

css を使うオプションをつける。

source-highlight  -c style.css 

これをつけると、 style.cssへのリンクタグとヘッダが生成される。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="GNU source-highlight 3.1.7
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite">
<title>./index.html</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>

でも求めているのはこういうのじゃなく、 font タグとかを消して自分でスタイルを決めたい。

--no-doc オプション

source-highlight  -c style.css --no-doc

このオプションをつけると、埋め込み用になるが、styleタグまで消されてしまう・・・

<pre><tt><span class="preproc">&lt;!doctype</span><span class="normal"> </span><span class="type">html</span><span class="preproc">&gt;</span>
<span class="keyword">&lt;html</span><span class="normal"> </span><span class="type">lang</span><span class="symbol">=</span><span class="string">"ja"</span><span class="keyword">&gt;</span>
<span class="keyword">&lt;head&gt;</span>

ちなみに行番号は

source-highlight -n 

これで行番号も入れてくれます。便利。

自分でスタイルを入れることにした。

GNUのページに公開されてるデフォルトスタイルを自分で追記することにしました。

<style>
body {  background-color: white;  }

/* the color for context lines (when specified with line ranges) */
.context {  color: gray; }

.keyword { color: blue; font-weight: bold; }
.type { color: darkgreen; }
.usertype, .classname { color: teal; }
.string { color: red; font-family: monospace; }
.regexp { color: orange; }
.specialchar { color: pink; font-family: monospace; }
.comment { color: brown; font-style: italic; }
.number { color: purple; }
.preproc { color: darkblue; font-weight: bold; }
.symbol { color: darkred; }
.function { color: black; font-weight: bold; }
.cbracket { color: red; }
.todo { font-weight: bold; background-color: cyan; }

/* line numbers */
.linenum { color: black; font-family: monospace; }

/* Internet related */
.url { color: blue; text-decoration: underline; font-family: monospace; }

/* other elements for ChangeLog and Log files */
.date { color: blue; font-weight: bold; }
.time, .file { color: darkblue; font-weight: bold; }
.ip, .name { color: darkgreen; }

/* for Prolog, Perl */
.variable { color: darkgreen; }
.italics { color: darkgreen; font-style: italic; }
.bold { color: darkgreen; font-weight: bold; }

/* for LaTeX */
.underline { color: darkgreen; text-decoration: underline; }
.fixed { color: green; font-family: monospace; }
.argument, .optionalargument { color: darkgreen; }
.math { color: orange; }
.bibtex { color: blue; }

/* for diffs */
.oldfile { color: orange; }
.newfile { color: darkgreen; }
.difflines { color: blue; }

/* for css */
.selector { color: purple; }
.property { color: blue; }
.value { color: darkgreen; font-style: italic; }

/* for Oz */
.atom { color: orange; }
.meta { font-style: italic; }
  </style>

これで冒頭のようなHTMLを作ることが出来ました。めでたい。