いろいろ修正と追加をしたバージョンです。 特に不具合の多かったはてなダイアリー風フォーマットの修正が大部分を占めています。
このプラグインを作り始めてから(というかそれ以前も含めて)はてなダイアリーを使ったことがなかったんですね、実は(^^;)
で、実際の動きを見て、大きな勘違いをしていたことにようやく気づき、修正するに至りました。
ということで修正点をご説明します(詳細は続きをごらんください)
*Ver.0.20修正項目(Ver.0.10からの)
- [YukiWiki]
- インラインのネスト時の多重escape対策
- バーベイタム機能の対応
- &amazon(caption, asin)の対応
- &color(colorname, caption)の対応
- [PukiWiki]
- インラインのネスト時の多重escape対策
- &aname(アンカー)の実装。
- #clearの実装。
- 最終行に<br clear="all" />の実装。
- [Hatena]
- 改行規則の見直し
- ><タグ対応
- 書影リンクASIN:xxxxx:image:sizeに対応。
- []..[]による自動リンクはずし対応
- タグ記述中のurlの自動リンク対応
- []なし自動リンク対応
- 脚注エスケープ対応
最新版は例によってhttp://hsj.jp/works/archives/000326.htmlからDLお願いします。
*修正項目詳細
*YukiWiki風フォーマットの修正点
*インラインのネスト時の多重escape対策
インライン項目を複数重ねたときに従来変換済みのHTMLが表出するケースがあったので、その辺の対策をして見ました。
例: ''&color(red,赤文字+太字)''
*バーベイタム機能の対応
YukiWikiの2.1系でサポートされた逐語出力機能への対応です。ちょっと不完全かもしれません。 ブロック単位で行う場合に--) (もしくは --) )で始まり --( (もしくは ---( )で区切ることで実体参照への変換を行わないようにできます。
実際の使用用途としてはMTでアップロードしてサムネイル生成した画像を表示するためのHTMLをこの間に貼り付けるなどが考えられます。
ちなみに<br />なんかを挟む程度のレベルでは&verb(...)をつかってください。
*&amazon(caption, asin)の対応
PukiWiki風やはてな風ではすでにサポートしていたAmazon商品リンクへの対応をVer.2.1系からのプラグイン機能を模して対応しました。
*&color(colorname, caption)の対応
色付けプラグインから機能を拝借した機能。
*PukiWiki風フォーマットの修正点
*インラインのネスト時の多重escape対策
YuKiWikiの項で言及したのと同様の措置を取っています。
*&aname(アンカー)の実装。
リンクアンカーを任意に設定できるのですが、使い道の難しい機能です。
*#clearの実装、最終行に<br clear="all" />の実装
画像の回り込み表示のクリアに使います。
しかし、&ref(...) ;のパラメータの列挙方式について悩んでおり、結論が出ないため今のところあるだけ…のような感じです。
*はてなダイアリー風フォーマットの修正点
基本的に改行がらみと自動リンクがらみの修正。
*改行規則の見直し
見直しというか完全なる勘違いでした。
*行頭・行末の><による自動pタグ囲み避け対応
こちらも完全に勘違い。 行頭に>を付けないとタグの解釈をしないという珍解釈がなくなりました。
*書影リンクASIN:xxxxx:image:sizeに対応。
一昨日のはてなダイアリーの機能追加にあわせて追っかけ実装しました。
例: ASIN:B0000TXOHC:image:small
何気にPukiWikiでも同じ記法で表示できてしまったりするのはご愛嬌ということで。
*[]なし自動リンク対応
これまで[と]で挟む必要のあったところ、なくても有効となります。
でも、poorな実装なので出来れば囲んで頂いたほうが確実かも。
*[]..[]による自動リンクはずし対応
上の対応のからみで、リンクをしないと明示的に表明する場合は[]で囲んでください。
*タグ記述中のurlの自動リンク対応
src="url"やらhref="url"などのURLの自動リンクもきちんと対処してくれるようになりました。
しかも、ASINやISBNとなっていた場合、Amazon.co.jpへのリンクに勝手になります。
*脚注エスケープ対応
脚注の二連カッコ囲みをそのとおり表示するための方法を用意しました。
三重以上の丸がっこで囲まれた部分は脚注になりません。→ (((三重カッコ))) 明示的にエスケープする場合には、「)((」と「))(」で囲みます→ 「)((カッコの中))(」 -> 「((カッコの中))」