nDiki : WRI
WRIの種類
WRIは次のように分類できる
WRI
+- URI
| +- URL
| |
| +- URN
|
+- WRN
+- QWRN
| |
| +- RWRN
| |
| +- UWRN
|
+- NQWRN
|
+- PWRN
|
+- SWRN
- URI: いわゆるURI(のサブセット)
- WRN: (WiKicker Resource Name)
Related term
2004年2月7日 (土)
■ [ WiKicker ] 複数のキーワード集合による、AutomaticLink

WiKicker の Wiki間連携の強化(および開発中の DiKicker との相互連携)のために、 AutomaticLink を実現しているtrieによるキーワード抽出クラスを拡張する。
本来は一つの trie に属性付きでキーワードを登録して lookup するのがよいのだろうが、
- キーワード集合に優先順位をつけたい (最長でなくても、キーワード集合の優先度の高い方に含まれるキーワードを優先して使用する)。
- 既存の(単独集合用の)クラスも性能低下させずに維持したい
ということでもっと簡単に実装。 単純に複数の trie を作って、それぞれ順番にキーワード抽出(2番目以降は先のキーワード抽出でマッチしなかった部分文字列に対して適用)するというようにした。 キーワード集合が増えるとどんどん遅くなるが、2つぐらいだったら耐えられるかな。
@ 抽出した語のリンク先
通常の AutomaticLink はその WikiForum 内のページにリンクされるのだが、例えば他のWikiForum の WikiName 集合を第2キーワード集合とした場合はその WikiForum 内のページURIに resolve する必要がある。
WiKicker の設定ファイルでどうやって指定するようにするかな。 InterWikiDefinition で定義してある InterWiki にマップするのも手だな。
さらに一歩すすめて、 WRI (WiKicker Resource Identifier) に写像してしまえば InterWiki だけでなく、いろいろ活用の幅が広がるかもしれない。
- [ WiKicker ] 自動InterWiki (2004-02-09)
- WiKicker / DiKicker の AutomaticLink 長... (2007-03-01)
- 私的10大ニュース2003 (2003-12-31)
- [ WiKicker ] 日記機能開発開始 (2003-12-27)
- WiKicker でソフトウェアかんばん (2007-03-01)
2004年2月10日 (火)
■ [ 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)
- キックオフミーティング2日目 (2004-10-26)
2005年2月11日 (金)
■ WiKicker に Flickr 関連機能追加

WiKicker / DiKicker で Flickr 上の画像ファイルを貼れるように WRN scheme を追加。 Flickr では
画像ファイルURL:
http://photos番号.flickr.com/画像ID_文字列(_サイズ).jpg
画像ページURL:
http://www.flickr.com/photos/アカウントエイリアス/画像ID/
となるようだ。画像サーバ名と文字列部分の割り当ては推測できないので、画像ファイルURLは直接指定する他ないか。 後はアカウントエイリアスを指定すれば2つのURLが生成できる。 幸いアカウントエイリアスは : を含まない ([a-zA-Z0-9_-]+?)。
以上から WikiPage の中では
[[flickr:アカウントエイリアス:画像ファイルURL]]
のように指定できるようしてみた。 www.flickr.com はレスポンスが悪いのだが画像サーバ自体のレスポンスは良いようで、試しに nDiki に貼ってみたが特に問題はないようだ。
@ 画像からのリンク
WiKicker では YukiWiki を真似て WikiPage に貼ったインライン画像はその画像のURLにリンクするようにしていたのだが、今回やめることにした。
Flickr や ASIN リンクのようにリンク先が決定できる時のみリンクにするようにする。 以前から、バナーを貼る時などのために「画像URLとリンク先URLの両方」を指定できるようにしたいのだが、いい記法が思い浮かばないのでいままでずっと実装しないままになっている。 何かうまいWRIを考えたい。
- Flickr に登録 (2005-02-08)
- Flickr + nDiki (2005-02-11)
- WiKicker 0.25 リリース - Win32 対応は動作未確認 (2005-05-07)
- WiKicker / DiKicker の AutomaticLink 長... (2007-03-01)
- DiKicker の出力する HTML コードを小さく (2006-10-05)
2005年10月10日 (月)
■ [ WiKicker ] WRI まわりの整理

WRIに関して、private method、protected method がごちゃごちゃしてわかりにくくなってきたので整理。
今まではプライベートメソッドも、プロテクトメソッドも
_private_method
のようにアンダースコアをつけていたのだがこれだと区別しにくい。 プライベートメソッドについては、
__private_method
のように、__ を前置するようにした。 区別は容易になるが、コードが繁雑になるのが問題。
[ 命名規則 ]
- WiKicker に Flickr 関連機能追加 (2005-02-11)
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- [ WiKicker ] WiKicker へ脚注機能追加 (2004-02-10)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- mixiに登録 (2004-11-19)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.08945s / load averages: 0.09, 0.13, 0.14
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク