まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2006/05/13(土)ソース中コメント記法

5/12スナップショット

今回はスナップショットとして公開してませんが、サーバ上には実装されています。

  • 管理メニューのデザインを変更しました。要望とかあればお願いします。
  • SALT(crypt)のキャッシュ機構を搭載し、更に高速化しました。
  • 要望にあったユーザー定義タグ機能を装備しました(管理メニュー参照)
  • 要望にあったソース中のコメント機能を装備しました。

ソース中コメント記法

ソース中コメント機能ついて解説します。>||#~#||< という新たなブロックタグがこの環境です。基本的には >||~||< と同様にブロック中のすべてのタグが無効化される環境(はてな記法のスーパーpre環境)ですが、次のように強調やコメントを書けます。

>||#
##{# リンク名}
#{if} ($ary->[0] ne '') { $name=#{join}(':', @$ary); }
#{if} (#{substr}($name,0,6) #{eq} 'title=') { $name=#{substr}($name, 6); } 
##{# リンク先タイトル}
#{my} $title = $self->{titles}->{$cmd};
#{if} ($title ne '') { $title=" title=\"$title\""; }
##{# リンク構成}
#{return} "<a$title href=\"$url\">$name</a>";
#||<

と書くことで

# リンク名
if ($ary->[0] ne '') { $name=join(':', @$ary); }
if (substr($name,0,6) eq 'title=') { $name=substr($name, 6); } 
# リンク先タイトル
my $title = $self->{titles}->{$cmd};
if ($title ne '') { $title=" title=\"$title\""; }
# リンク構成
return "<a$title href=\"$url\">$name</a>";

という風になります。

追記(2006/06/10)

ソース中コメント記法において、#{~}によるコメントだけでなく、((注釈記法))も受け付けるように変更しました。

>||#
# mini verbatim表記  {xxx}, {<tag>}, {[xxx:tag]}
$line =~ s/\{\{(.*?)\}\}/ $self->mini_pre($1) /eg;((mini pre {{ xxx }}))
$line =~ s/\{(.*?)\}/ $self->mini_verbatim($1) /eg;((mini varbatim {[xxx]}))
#||<

と入力すると、つぎのようになります。

# mini verbatim表記  {xxx}, {<tag>}, {[xxx:tag]}
$line =~ s/\{\{(.*?)\}\}/ $self->mini_pre($1) /eg;*1
$line =~ s/\{(.*?)\}/ $self->mini_verbatim($1) /eg;*2

*1 : mini pre {{ xxx }}

*2 : mini varbatim { x[x]x }

2006/05/12(金)5/11版スナップショット

  • 要望にあったサブカテゴリ機能を装備しました。例えばカテゴリ名に「感想::小説」と入れると「感想」がメインカテゴリ「小説」がサブカテゴリになります。
  • 最近のコメント、記事などの内部管理を変更しました。日記帳の設定→詳細設定→保存として、一度再生成してください。
  • TextParserのコメントの扱いに関するバグを修正
  • 国内のメジャーなアンテナ形式LIRSHINA/2.2の生成に対応しました*1
  • MySQLでの運用において、全く使い物にならないテーブルINDEXを作成していた不具合を修正しました*2
  • 通信用語の基礎知識の、通信用語の基礎知識以外の8辞書に対応しました。タグ名は辞書IDの小文字化してください。
    • 通信用語の基礎知識:wdic
    • 電算用語の基礎知識:tech
    • 科学用語の基礎知識:sci
    • 国土用語の基礎知識:geo
    • 鉄道用語の基礎知識:rail
    • 軍事用語の基礎知識:mili
    • 文化用語の基礎知識:cul
    • 萌色用語の基礎知識:moe

サブカテゴリに関する変更に伴い、MySQLでは以下を実行してください。

mysql> ALTER TABLE xxx_diary ADD (category_main TEXT);
mysql> UPDATE nabe_diary SET category_main=category;
mysql> CREATE INDEX xxx_diary_category_main_idx ON nabe_diary (category_main(16));

今度こそもうデータベースは変更しないと思います(汗

*1 : RSSと同時に生成されます

*2 : すでに日記帳テーブルを生成済の方は……諦めましょう(汗

2006/05/08(月)5/8版スナップショット

  • スケルトンファイルの名称変更と多数の移動。特に害はありませんが、気になる人は旧スケルトンファイルとキャッシュをすべて消してから新バージョンを展開するとよいと思われます。
  • エラー処理を整理
  • TextParserのコメントの扱いに関するバグを修正。
  • RSS1.0, RSS2.0配信対応(デフォルトではRSS2.0を配信します)。
  • 日記の説明欄(概要欄)を追加。
  • 使用可能なタグを制限する機能(制限なしも可能)を追加。

ついでに、FirefoxのSageに「&lt; &gt;」などを2度解釈してしまうバグを見つけました。*1

*1 : これXSSになりかねないんだけど大丈夫なのかなぁ……