高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

NP_HatenaLike

どうやら昨日の記事が早速トラックバックされているようですので、NP_HatenaLike(本体のみ)、ブリーフケースにあげておきます。完成形ソフトあたり。
使用方法は、ただプラグインとして登録するのみです。mediaタグなどが展開されていてもいなくても影響はありませんので、順序はどうでもかまいません。NP_HighlightSourceなどは、調べていませんが、NP_HatenaLikeより先に実行すれば何とかなるかな?
なお、注釈機能はサポートしてないので、NP_FootNoteあたりを使用してください。
続きに概要を書きます。この辺の内容は実際にダウンロードページに書くのと同じ物(予定)

サポートしている記法や機能

はてなになくて、こっちでサポートしているものには(独自)と書いてあります。

  • 各行をpタグで囲む
  • クラスを指定したpタグ(独自)
  • <で始まる行は引用行とする(quoteクラスのついた段落 / 独自)
  • ハイフン四つだけの行を罫線と置き換え
  • 行頭にハイフンで順序なしリスト(一段階のみ)
  • 行頭にプラスで順序有りリスト(一段階のみ)
  • :見出し:内容で区切って定義リスト
  • アスタリスク1〜3つを行頭に置いて、見出しとする(h4 - h6)
  • 空行を意味段落の区切りと見なして、p / ul / ol / dl をまとめて、div class="section"で囲む(独自)*1
  • 角括弧*2で囲まれた領域(文字列)を論理修飾タグで修飾(以降独自)
  • ! 文字列 !で、emタグで囲む
  • !_ 文字列 _!でwarnクラスのついたemで囲む
  • !! 文字列 !!で、strong
  • < 文字列 > で、dfn
  • * 文字列 *で、kbd
  • " 文字列 "で、q
  • & 文字列 &で、code
  • x 文字列 xで、samp
  • $ 文字列 $で、var
  • __ 文字列 __で、ins
  • -- 文字列 --で、del
  • '(文字列)::(非省略形)で、文字列を略語と見なし、abbrタグで囲む
  • ::(URL)::(文字列)で、URLへのリンク*3
  • r:(文字列)::(ふりがな)で、rubyタグ(もちろん完全な)
  • http, ftpで始まるURLの自動リンク
  • メールアドレスを自動リンク

といった機能があります。ほぼ全部一行の正規表現でやってるので、それなりの速度で展開できるはず。(だから低機能(^。^;))

問題点?

こちらもまだあんまりたくさんテストしたわけじゃないので何とも言えません。
とりあえずPerlでやったときには正常に動いたので、使えると思って間違いはないはず…。

*1:いちおうこのプラグインの目玉のつもり。[http://bakera.jp/:title=ばけらさんのサイト]などを参考にしてます

*2:そういえば角括弧そのものを表現できないことに気づきましたね、どうにかしたいです

*3:これだけ書式がはてなとちがいますが、もうエントリの大半をこれで書いてしまったので変えられませんm(__)m そのうちはてな互換タグも定義に加えておきます