WiLiKi:開発:コメントマクロ

WiLiKi:開発:コメントマクロ

既に似たようなのを書いてらっしゃる方もちらほらいますが、 長年の要望なのでデフォルトでサポートすることにしました。 ここで実験します。仕様はまだいじる可能性ありなので、CVS HEADから 使ってみる方はご注意。

使いかた

(ここのコメント欄はサンプルなので、コメントされた内容は消えてしまうかも。 意見などは下の「議論」のセクションにお願いします)

[[$$comment]]

でコメント欄出現。コメント内にはマクロを除くWiLiKiマークアップが使える。 名前欄の記入は必須。

Past comment(s)

shiro (2007/07/18 19:15:52):

コメントページの名前づけを変えたので以前のコメントはリセット。

shiro (2007/07/18 19:16:19):

ついでにデフォルトのソート順を変えた。新しい方が下。この場合、コメントフォームも下の方がいいか?

cut-sea (2007/07/18 20:57:44):

確かに下に下に見ていくなら、そのまま下に入力フォームがあった方が自然ですよね。

cut-sea (2007/07/19 23:52:00):

あ、やっぱ今ので良い気がする。 コメントにコメント(反応)がついていくようなの(バグトラッカー)と違って、 あくまで元ネタに対してコメントすると考えれば、記事の直下にあるべきかも。

nobsun (2007/07/20 00:11:05):

コメントの並び順とかも、設定できるといいかも。

kiyoka (2008/03/20 03:17:05):

コメント内にWiLiKiマークアップを書けるようにするのは考えないといけないことがいろいろありそうですね。OldTypeでは、わりきってコメントにはマークアップ書けないようにしようかと思っています。

shiro (2008/04/01 17:30:41):

テスト

shiro (2011/06/12 17:12:03):

test

shiro (2011/06/13 11:27:20):

test2

shiro (2011/06/15 03:13:45):

test3

shiro (2014/03/04 06:10:27):

テスト

Post a comment

Name:

同一ページに複数つけたい時は、区別するためのIDを与える。

[[$$comment id=WiLiKi:開発:コメントマクロ:#2 order=new->old]]

Past comment(s)

shiro (2008/04/01 20:59:11):

テスト2

shiro (2008/04/01 20:58:49):

テスト1

Post a comment

Name:

実装

コメントのフォーマッティング

WiLiKiマークアップをコメント内に許したかったのだけど、 いくつか問題があった。

前者は、各コメントを別々のページに保存することで回避している (現在のフォーマッタはページ内で完結させることができるため、 その時点で閉じてないブロックマークアップを自動で閉じることが可能になる)。 デメリットとして、コメントが無闇に増えると全体のページ数が増えて 性能が低下する可能性があるが、しばらく様子を見てみる。

後者については、コメントフォーマット中にマクロ展開を禁止する ことでとりあえず対応した。本来はマクロ毎に、「コメント内で使用可かどうか」 を指定できるべきかもしれない。後で考える。

コメントの編集を許すべきか

コメントは |comments:ID::NNN という名前の通常のwikiページ として保存されている。(IDのデフォルトは$$commentマクロが置かれている ページ名)。だからそのページを直接開けば編集できる。

このへんは、まあwikiなんだから基本はオープンでよかろう。 いずれもう少しちゃんとしたアクセスコントロールの枠組を入れた時に コメントについてもなんらかのポリシーを設定できるようにする。

automated spam対策

一度捕捉されると対応がえらく面倒なのは身に染みてるので、 いくつか子供だましな対策を入れて様子見してるところ。 ちなみにCSSを全く解釈しないブラウザだと困ったことになってるはず。

議論

$$includeとの相互作用

Shiro(2007/07/17 10:36:33 PDT): あーまてよ、今のだと、IDを省略した場合は current-pageにコメントがつけられるんだけど、それだとコメント付きページ 自体を$$includeして表示させてる時におかしなことになるな。 「表示中のページ」ではなく、「マクロが付加されたページ」を取る必要があるのか…

いや、$$commentレンダリング中のcurrent-pageは$$commentマクロが出現した ページになってるからこれに関しては大丈夫だ。ただ、コメント記入後の復帰先が current-pageになるので、$$includeしてるページからコメント記入した時に 別のページに飛ばされて戸惑う可能性はあるな。

$$includeされたページにある$$commentマクロについてはフル展開せず、 サマリだけを表示するようにしてみた。WiLiKi:開発:コメントマクロ:includeテスト

コメントページ名

2007/07/18 01:44:53 PDT: しまった。コメントページ名を、元ページ名の後ろに何かつけたして作るように しておくと、元ページ名を含めるつもりだった$$indexマクロなどにコメントページも全て 含まれてしまうのであった。これはちょっと嫌だなあ。

元ページの前に何かつける、という方式にしなかったのは、後ろにつける方法だと breadcrumb linkによってコメントページから元ページを参照できるって メリットがあったからなんだが…

コメントページを comments:元ページ:NNN とかにして、comments:元ページ をvirtual pageにして元ページへのリンクを張ろうか。それなら2ホップにはなるけれど コメントページから元ページへたどりつけるし。

2007/07/18 19:22:59 PDT: というわけで変えてみた。

編集不可ページに対するコメント

2008/05/08 20:07:24 PDT 編集不可に設定したwilikiにコメント投稿できないのはちょっと痛いかも

More ...