WikiCreoleに対する我々(檜山&Kuwata)の立場は、Kuwataさんが要領よく説明してくれています。
- 「そんな仕様で大丈夫か?>WikiCreole」(http://return0.info/note/2010-11-08.e)
- 「一番いい仕様を頼む>WikiCreole」(http://return0.info/note/2010-11-11_1.e)
要するに、仕様を厳守するところからスタートしよう、ってことです。なんとか適合(conform)しようとしてるからこそ、愚痴や悪口も言いたくなるってもんです。でも今日は悪口じゃなくて、けっこう使いやすいな、というところを紹介。
Wikiマークアップとして使われている文字列を、リテラルとして入力したいときはエスケープする(特殊な意味を奪う)必要があります。WikiCreoleのエスケープ文字はチルダ('~')です。チルダによって直後の1文字だけがエスケープされます。これとは別なエスケープ・ルールとして、チルダに続くマークアップ全体をエスケープする方法があります。
例えば、'{{{'というWikiマークアップ(pre要素)をエスケープするとき:
- 直後の1文字をエスケープする方式では、'~{~{{'、または '{~{{' と書く必要がある。なぜなら、'{{' もWikiマークアップ(img要素)なので。
- 直後のマークアップをエスケープする方式では、'~{{{' でよい。
「直後の1文字」方式のほうがメンドクサイです。が、何も考えなくてもエスケープできます。「どこまでエスケープされるのだろう?」と悩む必要はありません。
「直後のマークアップ」という言葉は曖昧性があります。'~{{{'の場合、'{{'も'{{{'もマークアップなので、「直後の一番長いマークアップ」と言わないと不正確です。また、曖昧性を除くことができても、マークアップに関する正確な知識がない限りはエスケープ範囲を予測できないのです。
つまり、「直後のマークアップ」方式には次の問題点があるのです。
実際、http://www.wikicreole.org/wiki/Creole1.0Poll の審議の記録や投票結果を見ると、「直後のマークアップ」方式に賛成した人は一人もいません。
ルールが文脈や環境に依存して、場合分けと例外や付帯条件に対する記述がたくさん含まれるのは、ほんとにロクなことはないのです。ルールは、可能な限り一律に適用できて、例外も付帯条件もないのが望ましいのです。僕が'**'マークアップを槍玉にあげているのは、これが完全に例外規則になってしまっているからです。例外規則は人を混乱させ悩ませます。
エスケープに関してはほぼ一律に適用できるルールで良かった良かった、と。「ほぼ」なのは次の例外があるからです。でも、この例外は妥当、あるいは許容できるものです。
*1:このルールは、個人的には気に入らないですが、まー許容はできるかと。