nDiki : 2004年02月10日
2004年2月10日 (火)
■ 過去の今ごろ

過去の2月10日より。
- LEATHERMAN MICRA ケース作成開始
- テキストを見るとムシピンみたいのを使っているんだよな。今度一度使ってやってみたい。
■ Wikiの文法の標準化

今まで触れなかったが、やはり文法拡張する際は気になる存在。
各方面で出ている賛否どちらの意見もうなずける点が多く、自分の思いつく点もだいたいどこかで語られている感じ。
私が最初に Wiki の存在を知ったのは、やまだ君からだった。 当然「記法(文法)は?」というのがまず気になった点だったが、その時すでに「Wikiの文法はWikiEngine毎に異なる」という事だった。
WiKicker という新しい WikiEngine を作る際には、もちろん各 Wiki の文法を調べたのだが、それはもう様々で。 「見出し」記号など単純に流派的なものと、ブロックやプラグインなど設計思想に依存するものがあって、特に後者はどれかを統一して選択するのは難しいと感じた。
WiKicker では(もともと利用していた) YukiWiki2 に emacs-wiki の [[A][B]] を加え、その他の文法要素と表記は、
- 見やすさ
- メジャー度
- WiKicker のベースの文法と衝突しない
- 行指向を採用(行を越えた、開始・終了を利用者が明記しないで済むように)
- 構文解析しやすい (実装の容易性は、高速化・独自ツール作成時に重要)
あたりをポイントに決めた。
@ 将来標準(ができたとして)に準拠する?
多分しないな。 面倒だし。
- [ WiKicker ] WiKicker へ脚注機能追加 (2004-02-10)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
- [ WiKicker ] touch (2003-05-14)
- [ WiKicker ] リビジョンが追加されていかない (2003-04-22)
■ [ WiKicker ] WiKicker へ脚注機能追加

WiKicker スタイルで日記を記述するにあたり欠けている機能として「脚注」がある。 Wiki としては必須でないので WiKicker には導入していないのだが、日記としては無いと困る。 脚注が使えると文を書く時に正直手を抜ける。 また hns 上の旧記事をコンバートする時にも無いといろいろ面倒だし。
ということで実装。
@ インラインブロック
さてどうしたものか。 WiKicker の WRI (BracketName 等を含む識別子)としての実装なら、parser の変更もなく新しいWRI scheme の追加と対応するクラスを書くだけですむ。 しかし WRI は終端記号なので、そうすると脚注の中でWRIを使えなくなる。 それは困る。
ということで、やはり非終端記号が必要。 悩んだあげく、
{{scheme: ... }}
という「インラインブロック非終端記号」を導入。 {{..}} というのは確かいくつかの WikiEngine でプラグイン呼び出しで使っている記法だったような。
- 一般的な文章中には現れず、
- かといって文章中に混ぜてもそれほど違和感なく(wiki ではこれが重要)
- これ以上文法を追加したくないので、今後機能追加の際に利用できるように scheme 指定できる
といった点から、このようにしてみた。 2番目の点で合格点の出せる記法かどうかは微妙だが、まぁ許せる範囲かな。
{{ }} は、1行中に現れる必要有り。 「...」は scheme specific part だが、今のところ scheme によらず、InlineParser で解析されて部分木になるため、WRI とか ... とかも書ける。 InlineParser では正規表現を使っていて括弧の数は数えないので、今のところ {{ }} の中に {{ }} は書けないが、まぁ問題ないでしょう。
@ 脚注記法
で脚注は、
{{fn: ...}}
となる。 普通。
@ 実装
- InlineParser の拡張
- InlineBlockNode クラスの追加
- 各 Visitor に visit_InlineBlockNode を追加。
- HtmlFragmentVisitor に fn: の処理を追加。
いざ実装してみると、ちょこっとのコードで実現。 脚注番号の降り方とか、今後改良する点はあるけど、大枠は完成。
- Wikiの文法の標準化 (2004-02-10)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- [ DiKicker ] hnsからのコンバータ作成開始 (2004-02-11)
スポンサード リンク
■よく検索されるキーワード
torrent(63) perl(50) linux(41) 書き方(40) windows(37) 提案書(36) x31(31) アジェンダ(30) インストール(23) 画像(23) 手帳(22) svn(22) 使い方(21) mp980(20) debian(18) thinkpad(18) usb(17) rcs(16) 設定(16) サンプル(14) アジェンダとは(14) tc-1(14) cvs(13) ドラマ(12) ecj-jk10(12) リフィル(12) wiki(12) 作り方(12) java(12) 動画(11) ssh(11) 生年月日(11) 壁紙(11) ほぼ日手帳(11) window(11) ノート(10) ダイソー(10) dropbox(10) 修理(10) firefox(9) ボールペン(9) gtd(9) 影舞(9) nikon(9) バッテリー(9) c#(8) thinkingrock(8) イグアナの娘(8) apache(8) ヨドバシ(8) google(8) ganttproject(8) 会議(8) 写真(8) tortoisesvn(8) システム手帳(8) 無印(7) unison(7) naney org wiki(7) 感想(7) 提案書の書き方(7) 無料(7) a6(7) centos(7) ジョイントラック(7) 評判(7) 冷蔵庫(7) scale(7) 三条まゆみ(6) terastation(6) cgi(6) ガントチャート(6) 最終回(6) レビュー(6) ダウンロード(6) テンプレート(6) nsis(6) エラー(6) ubuntu(6) ドライバ(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.45844s / load averages: 0.10, 0.16, 0.16
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク