ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

Wikiプラグイン一通り実装完了。

以下のプラグインを実装しました。

delプラグイン(inline)

最初、block型も作ってみたんですよ。でも、どうも

 #del||>
 ...
 ||<

と書くと、HTMLタグ上、

 <del>
 <div>...</div>
 </del>

となってしまって、取消線が表示されない。だからKinoWikiのdelプラグインも、inlineだけだったのか・・・。

というわけで結局KinoWikiと同様、inlineプラグインになりました。

brプラグイン(inline/block)

block型作っても意味無いとかそこ、言わない!!

インライン要素中で手動で改行タグ(br)を挿入したい時に使います。多分、テーブルを作る時に、文章を改行させたい時に使うと思います。

| 要素1 | 要素2 | 要素3-1 &br() 要素3-2 |

みたいな。

これ、KinoWikiには確か無かった。PukiWikiには有るのだけれど。不思議。
まぁYakiBikiで使えるようになったから良いよね。

htmlプラグイン(inline/block)

うー・・・。ヤバイのは重々承知です。なので、config.phpに次の項目を追加しました。

// Enable/Disable "HTML" Wiki Plugin
_YB('wiki.plugin.html.disable', true); // false: enable, true: disable

SVN中のconfig.phpのデフォルトではtrueになっています。つまり、htmlプラグインは無効化されます。
無効化されるとどうなるかというと、単にで囲まれるようになります。

javascriptプラグイン(inline/block)

これもヤバイのは重々承知です。config.phpに以下を追加、デフォルトは無効化されててで囲まれます。

// Enable/Disable "JavaScript" Wiki Plugin
_YB('wiki.plugin.javascript.disable', true); // false: enable, true: disable

一応、第一パラメータにjsファイルを指定して、外部jsを読み込ませたりできます。

&javascript(jquery.js, http://example.com/test.js) { ... }

↑は、↓のように展開されます。

<script type="text/javascript" src="_YB('url') + 'jquery.js'"></script>
<script type="text/javascript" src="http://example.com/test.js"></script>
<script type="text/javascript">
<!--
...
// -->
</script>

第一パラメータを省略した場合は、通常の

<script type="text/javascript">
<!--
...
// -->
</script>

のみとなります。
jsファイルについてはカンマ区切りで複数指定できます。空白が前後に挟まっても、trim()されますので平気です。

html, javascriptプラグインの注意点。

それぞれ _YB('wiki.plugin.html.disable'), _YB('wiki.plugin.javascript.disable') でON/OFFできますが、実はこれ、yb_特殊タグ系列じゃないので、キャッシュされます。
つまり、ある時点までdisableをfalse、つまり有効化しておいて記事を書いていて、ある時点からdisableに戻した場合、以前の記事は相変わらずhtmlやjavascriptが有効化されて表示されてしまいます。
これを回避するには
1.WikiテキストのHTML変換後のキャッシュの有効期限が過ぎ、再キャッシュされるまで隠しておく。
2.cacheディレクトリの中身を一旦全て削除する。
3.html, javascriptプラグインを使って書かれた記事を一つ一つ、更新して古いキャッシュを削除する。
などする必要があります。

技術レベルと気心の知れた数人だけで使う場合はずっとONでも構わないとは思いますが、何人もに書いてもらう場合はOFFにするのをお奨めします。特にHTMLプラグインの場合、HTMLタグを壊してしまう場合が十分ありえるので、特に検索画面での一覧表示がおかしくなる可能性が高いです。

基本OFFをお奨めします。JavaScriptのデモなどを見せたい場合は、デモのファイルをまとめたtarボールなどをUPっておけば良いのではないでしょうか。あるいはFlashビデオにしてYouTubeなどにUPっておくとか。

PukiWiki形式の強調・取消線記法に対応

''太字になります。''  : <strong>タグ
'''斜体字になります。''' : <em>タグ
%%取消線が引かれます。%% : <del>タグ

一応KinonWikiの強調記法('*', '**')も残してありますので、好きな方を使えると思います。

取消線について一点だけ、&del()との違いを。"%%"で囲った場合は、中の文字列はインライン要素にはならず、そのまま表示されます。
つまり、

%%取消線の中に ''太字は'' 入れられません!%%
でも
&del(){ delプラグインの中になら ''太字は'' 入れられます。 }

ということです。