ブログの記事は主に Markdown 記法で書いています( ´ ▽ ` )ノ
Markdownのオリジナルそのものは、2012年現在非常に古い…
Markdown 1.0.1 (18 KB) — 17 Dec 2004
オリジナルの最終更新は 2004-12-17
思えばこの頃、bloxsomとかでブログ(?)っぽいものを書いていたので、そのときに初めてこれを使ったのがMarkdown記法を知った切っ掛けでした。
ところが、流石に8年近く経てば色々と変わる物で…
ブログ記事などでTwitterIDを紹介するとき、いちいち手書きなどでリンクを貼るのも面倒くさいわけです。
そんくらい勝手にリンクしてくれないかなーと。
Twitter anywhereなど、自動リンクを貼ってくれるツールもあるわけですが、出来ればちょっと制御したいなと思うわけで、Markdown本体を改造することにw
# ええ、まぁ、単に弄りたかっただけです( ´ ▽ ` )ノ
手順としては、Movable Typeではplugin/Markdown
配下に、MT用と思われるカスタマイズされたMarkdown.plがあるので、これをダウンロードして弄るだけです。
差分そのものをざっくりと( ´ ▽ ` )ノ
*** Markdown.pl.orig2011-04-18 01:17:18.000000000 +0900 --- Markdown.pl2012-05-01 01:11:12.000000000 +0900 *************** *** 385,390 **** --- 385,391 ---- # tags like paragraphs, headers, and list items. # my $text = shift; + $text = _doTwitterLink($text); $text = _DoCodeSpans($text); *************** *** 440,445 **** --- 441,466 ---- } + sub _doTwitterLink { + # + # Turn Markdown Twitter shortcuts into XHTML <a> tags. + # + my $text = shift; + + # @twitterid to <a> tag + $text =~ s{ + \B\@# twitter markup '@' + (\w{1,15})# twitter id = $1 + }{ + "<a href=\"http://twitter.com/" . $1 . + "\" target=\"_blank\" class=\"twitter-anywhere-user\">@" + . $1 . "</a>"; + }xsge; + return $text; + } + + + sub _DoAnchors { # # Turn Markdown link shortcuts into XHTML <a> tags.
Markdown.plは根本的に文字列パターンの変換処理なので、パターンさえ思いつければ適当に作るのは非常に簡単です。
既存でリンクなどの処理をしている_RunSpanGamutの最初でTwitterLinkを生成する様に修正。
実は、最初はDoAnchorsなどの後で処理していたのですが、_
辺りの処理などで問題があったりしたので、一番最初に処理をするように変更しました(^^;)
作成した関数doTwitterLinkは、勝手関数なのでプレフィクスをdoにしたくらいの気持ちで…
内容は、単純にTwitterID文字列からの差し替えです。
一応このサイトにもTwitter anywhereを導入してあるので、そこのサポート用のclass名を付けるようにしています( ´ ▽ ` )ノ
とりあえずこれで問題無く動作してるからいっかなー程度なのですが…
もしかしたら不具合があったら、そのうち外すかもしれません(^_^;)
不具合などを見つけた方が居たら、是非Twitter(@ksworks)などでご報告ください!