トップ(最新)

nDiki : InlineParser

スポンサード リンク

Related term

2004年2月10日 (火)

[ WiKicker ] WiKicker脚注機能追加 このエントリーを含むはてなブックマーク

WiKicker スタイルで日記を記述するにあたり欠けている機能として「脚注」がある。 Wiki としては必須でないので WiKicker には導入していないのだが、日記としては無いと困る。 脚注が使えると文を書く時に正直手を抜ける。 また hns 上の旧記事をコンバートする時にも無いといろいろ面倒だし。

ということで実装。

@ インラインブロック

さてどうしたものか。 WiKickerWRI (BracketName 等を含む識別子)としての実装なら、parser の変更もなく新しいWRI scheme の追加と対応するクラスを書くだけですむ。 しかし WRI は終端記号なので、そうすると脚注の中でWRIを使えなくなる。 それは困る。

ということで、やはり非終端記号が必要。 悩んだあげく、

 {{scheme: ... }}

という「インラインブロック非終端記号」を導入。 {{..}} というのは確かいくつかの WikiEngineプラグイン呼び出しで使っている記法だったような。

  • 一般的な文章中には現れず、
  • かといって文章中に混ぜてもそれほど違和感なく(wiki ではこれが重要)
  • これ以上文法を追加したくないので、今後機能追加の際に利用できるように scheme 指定できる

といった点から、このようにしてみた。 2番目の点で合格点の出せる記法かどうかは微妙だが、まぁ許せる範囲かな。

{{ }} は、1行中に現れる必要有り。 「...」は scheme specific part だが、今のところ scheme によらず、InlineParser で解析されて部分木になるため、WRI とか ... とかも書ける。 InlineParser では正規表現を使っていて括弧の数は数えないので、今のところ {{ }} の中に {{ }} は書けないが、まぁ問題ないでしょう。

@ 脚注記法

脚注は、

 {{fn: ...}}

となる。 普通。

@ 実装

いざ実装してみると、ちょこっとのコードで実現。 脚注番号の降り方とか、今後改良する点はあるけど、大枠は完成。

スポンサード リンク


[ 2月10日全て ]

■よく検索されるキーワード

torrent(56) 提案書(47) perl(45) windows(37) linux(31) 使い方(27) 書き方(25) debian(22) x31(22) usb(22) cvs(20) subversion(20) インストール(18) ドラマ(18) c#(17) mp980(17) svn(17) 修理(17) 手帳(16) ssh(15) 評判(15) アジェンダ(15) java(15) デロンギ(14) ガントチャート(13) 感想(13) n-01a(13) centos(13) tc-1(13) 充電式カイロ(13) ノート(12) ダイソー(12) thinkpad(12) rcs(12) f-01a(12) ヤマダ電機(12) ganttproject(12) 無印(11) ppm(11) レビュー(11) カイロ(11) 壁紙(11) 静電気(10) 動画(10) バッグインバッグ(10) ヨドバシカメラ(10) サンプル(10) アジェンダとは(10) wiki(10) ミノルタ(10) グッズ(10) 作り方(10) tortoisesvn(10) firefox(9) so905ics(9) memcached(9) 画像(9) gmail(9) ハクキンカイロ(9) 口コミ(9) a6(9) sh-01a(9) 冷蔵庫(9) ほぼ日手帳(9) mp3(8) emacs(8) 日本語(8) openssh(8) xampp(8) カメラ(8) nikon(8) 設定(8) 写真(8) 値段(7) flash(7) 方眼(7) web(7) docomo(7) カバー(7) リポジトリ(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.04978s / load averages: 0.25, 0.46, 0.46
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)