ひとりWikiを下書きに使う場合の注意というか、実際のWiki表示と違う部分があります。
まず、#contents(見出しリスト) や #comment(コメント入力フォーム) 等のPukiWiki拡張プラグインは、当然通常の文字列として表示されます。
#contents に関しては、右側リストを「目次」にした場合のリストと同じものなので、それを見て確認できます。
それから、文字色指定の COLOR(色): (または COLOR(色){文字列})は、表組みの先頭に書かれたもの以外文字列として扱われるようです。
表組みで、
|COLOR(red):もじ|
とした場合は、|もじ| とちゃんと色が変わるんですが、
|もじCOLOR(red){文字}|
とした場合は、|もじ文字| ではなく、|もじCOLOR(red){文字}| とそのまま表示されます。
文章行頭に COLOR(色):文字列 とした場合も同様に、そのまま表示されます。
ひとりWiki単体で使う場合は、プラグインとして color関数(color(前景色,背景色,文字列);) があるので、その記法で書くとちゃんと色がつくんですが、PukiWikiでは当然表示できません。
さらに、文章中の行末の扱いが若干PukiWikiと異なり、「br;」や「行末~」で明示的に改行指定をしないと、次の行がそのままつながって表示されます。
最後に、表組みに関していくつか。
表組みの際の書式指定行(|書式|書式|c)は無視されます。これは仕様として、はじめから書かれています。
また仕様としては書かれていませんが、ヘッダー行やフッター行指定(|ヘッダ|ヘッダ|h や |フッタ|フッタ|f)も通常のセルとして表示されます。
それと、PukiWikiでセル内の単独チルダ(|~|)は上のセルに連結(<TD rowspan>)となるのですが、ひとりWikiではヘッダー(<TH>)として表示されてしまいます。
これは恐らく、rowspan の表記である |~| の「|~」を、ヘッダー指定の表記 |~ヘッダー| の「|~」として解釈しているからだと思われます。これは製作者さんに頼んで直してもらおうかとも思ったんですが・・・
前述の通り、Wikiの場合 rowspan は「上のセルに連結」となり、
|文字列|文字列|文字列|
|~|文字列|文字列|
っというように、連結するセルに記述します。
ところがHTMLの場合、rowspan は「下のセルに連結」となっていて、
<tr><td rowspan="2">文字列</td><td>文字列</td><td>文字列</td></tr>
<tr><td>文字列</td><td>文字列</td></tr>
と、連結する先頭のセルに記述します。
プログラム的なことになるんですけど、HTMLのようにはじめに指定が出てくれば処理はそう難しくはないんですが、Wikiのように後から指定が出てくる場合、前に変換した内容に戻って書き換えなければいけないことになり、処理が難しくなります。また、ヘッダー指定の |~文字列| と区別する必要もあるため、その処理も追加しなければいけません。
そこで代案として rowspan のセル表示は連結せずにそのままでいいので、ヘッダーセルと区別できるようにできないか提案してみました。
要するに現状、
|文字列| の場合・・・・通常セル <TD> に変換
|~文字列| の場合・・・・ヘッダーセル <TH> に変換
|~| の場合・・・・ヘッダーセル <TH> に変換
となっているものを、
|文字列| の場合・・・・通常セル <TD class="td_default"> に変換
|~文字列| の場合・・・・ヘッダーセル <TH> に変換
|~| の場合・・・・通常セル <TD class="td_rowspan"> に変換
というようにしておいて、CSSで TH の背景色を青、TD.td_default を白、TD.td_rowspan を赤などにして、視覚的に分けるといいんじゃないかと。こうすれば、表中に赤いセルがあれば「上のセルとつながってるんだなぁ」と理解しやすいと思うんです。
ヘッダーセルと区別するための処理を追加する必要はありますが、前に戻って上のセルを rowspan 扱いにする必要はないですし、通常セルは変換するタグの内容が変わるだけなので、処理自体を書き換える必要はありません。
そんなわけで一応要望は上げておいたんですけど、難しいかなぁ・・・
|