text-hatena.js
text-hatena.js copied to clipboard
自動リンク機能
自動リンク機能を一部実装してみました。 動画や音声、mapは未実装ですが、通常リンクや画像は対応できていると思います。
未完成部分もありテスト実装に近いので、マージして頂かなくてもOKです。
Hatena.AutoLink()
は単なる関数(コンストラクタではない)となるような実装で他と違っていたりしますし問題点があればどんどん言って頂けると助かります。
現在の方針では対応するインライン要素を増やしたときに破綻しそうです。
方針としては Hatena.Text
で <(a|iframe|script).*?</\1>
と <img\s.*?>
はスキップしつつ、
先頭から 1 文字ずつ、Url や Bracket にマッチするかを調べていくのがシンプルでしょう。
(hparser の実装のマネ)
実際は []
を省略できるものも多いので、正規表現では限界がありそうです。
現在の方針では対応するインライン要素を増やしたときに破綻しそうです。
仰るとおりですorz
いちおう、<...>
内と <a ..>...</a>
内はスキップするようにはしていますが...。やはり拡張性を考えると一文字ずつ見ていくのが良さそうですね。