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