まだ重たい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 }