TopMovable Typeテンプレートタグ > 2009年7月
2009年7月27日

Movable Type の記事中の&を&に変更する方法

Movable Type を使ってアンカーやアフィリエイトリンクなどを付けたブログ記事を書いたときに、リンクに含まれる&を&に自動的に変換する方法を紹介します。

1.基本

(X)HTML では、テキストやURLに含まれる & は & と、実体参照で記述する必要があります。

例1:テキスト

【誤】
ドラッグ&ドロップ

【正】
ドラッグ&ドロップ

例2:URL(Google の「Movable Type」の検索結果のリンク)

【誤】
<a href="http://www.google.co.jp/search?hl=ja&q=movable+type&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=">「Movable Type」の検索結果</a>

【正】
<a href="http://www.google.co.jp/search?hl=ja&amp;q=movable+type&amp;btnG=Google+%E6%A4%9C%E7%B4%A2&amp;lr=&amp;aq=f&amp;oq=">「Movable Type」の検索結果</a>

2.Movable Type のブログ記事内にある & を &amp; に変換する

各テンプレートにある MTEntryBody タグに、次の regex_replace タグ(青色部分)を追加すれば、ブログ記事内にある & をすべて &amp; に自動変換して、ページを出力します。

<$mt:EntryBody regex_replace="/&/g","&amp;"$>

次のようにしておけば、元からある &amp; は変換対象になりません。

<$mt:EntryBody regex_replace="/&(?!amp;)/g","&amp;"$>

ただし、他の実体参照(&lt;など)がブログ記事に含まれている場合もすべて変換対象になってしまうので、プライベートタグを使って記事ごとに振り分けるのも手かもしれません(というか、もっとエレガントな正規表現があるかもしれません)。

<mt:EntryIfTagged tag="@ref">
  <$mt:EntryBody regex_replace="/&/g","&amp;"$>
<mt:Else>
  <$mt:EntryBody$>
</mt:If>

実体参照したいブログ記事のタグに「@ref」を付与しておきます。

また、自動ではありませんが、下記のプラグインで実体参照化する方法もあります。

エムロジック放課後プロジェクト - EntryRefButton アーカイブ

3.参考サイト

以下です。ありがとうございました。

Wikibooks - Perl/正規表現
Comments [2] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3