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

2006/05/15(月)ブロッククラス指定記法

5/15スナップショット

  • 標準パーサーに「空行まで1段落。改行そのまま」モードを追加しました。
  • その関係で conf ファイルが変わっています。新しいサンプルをベースにしましょう。
  • 標準パーサーで、ブロック開始タグの後にブロックのクラスを指定できるようにしました。
  • 更新通知pingを実装しました。初期設定では、日記作成画面の「更新通知」にチェックをいれれば、ping.bloggers.jpにPingを飛ばします。

ブロッククラス指定記法

後の改変において、>>~<<系のブロックのクラス指定はブロック開始タグ後にクラス名を書く方式のみに仕様変更しました。::によるクラス指定は、table/listブロック専用となります。

例えば次のようにクラス指定を行います。

>>mono
monoクラスを指定することで、内部を等幅フォントで表示可能になり、
"my $top = $lines->[0];"といった表示か見やすくなります。
<<

とするとブロックのクラスが指定でき、

monoクラスを指定することで、内部を等幅フォントで表示可能になり、

"my $top = $lines->[0];"といった表示か見やすくなります。

となります。出力されるHTMLソースは

<blockquote class="mono">
<p>monoクラスを指定することで、内部を等幅フォントで表示可能になり、</p>
<p>"my $top = $lines-&gt;[0];"といった表示か見やすくなります。</p>
</blockquote>

です。

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 : すでに日記帳テーブルを生成済の方は……諦めましょう(汗