chalow というツールを使うと、この Changelogメモを Web ページに変換できることが分かった。
clmemo(のデフォルトの設定) では “(” と “)” で囲われたものがカテゴリとして扱われるが、chalow では “[” と “]” という違いがある。
一応、以下のスクリプトで “(カテゴリ)” から “[カテゴリ]” への変換を行うことは出来たが、そもそも clmemo と chalow とでは、お題やカテゴリの考え方がだいぶ違うみたい。変換しても意味が無いので、カテゴリ分けをするのは今日からにしよう。
#!/usr/bin/ruby
ifile = File.open("/home/masutaka/clmemo.txt", "r")
ofile = File.open("/home/masutaka/tmp/clmemo2.txt", "w")
while line = ifile.gets
if /^\t\* .+\(/ =~ line
line_array = line.split(":")
head = line_array[0]
line_array.shift
body = line_array.join
head = head.gsub(/\(/, "[")
head = head.gsub(/\)/, "]")
ofile.write(format("%s:%s", head, body))
else
ofile.write(line)
end
end
ifile.close
ofile.close
clmemo のカテゴリの扱いを “()” から “[]” に変更した。~/.emacs.el に下記を追加。
(setq clmemo-subtitle-char "[")
(setq clmemo-subtitle-punctuation-char '(" [" . "]"))
今までは1ブロックには無駄な空行を一切入れなかったのだが、Web ページの見栄えが悪いので入れることにした。
今まで Computer と Work 以外のカテゴリは見せないようにしていたので、chalow の秘密の項目に変換した。(例: * 日記 => * p:日記)
#!/usr/bin/ruby
ifile = File.open("/home/masutaka/tmp/clmemo.txt", "r")
ofile = File.open("/home/masutaka/tmp/clmemo3.txt", "w")
while line = ifile.gets
if /^\t\*/ =~ line
unless /^\t\* +(Computer|Work|tmp)/ =~ line
line = line.gsub(/^\t\* /, "\t* p:")
ofile.write(line)
next
end
end
ofile.write(line)
end
ifile.close
ofile.close