TopMovable Typeテンプレートタグ > Movable Type の記事中の&を&に変更する方法
2009年7月27日

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

Posted at July 27,2009 1:30 AM
Category:[テンプレートタグ]
Tag:[, , ]

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/正規表現
Posted by yujiro   このページの先頭に戻る
関連記事
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL


コメント

こんにちは。
エントリの中でしたらMT4だとリッチテキストエディタを一度開けばXHTMLでないコードを実態参照に変換してくれると思うのですが、不完全なところがあったりしたのでしょうか?

[1] Posted by ヲレ : August 3, 2009 12:19 PM

>ヲレさん
こんにちは。
情報ありがとうございました。
リッチテキストの動作確認はあまり行っていなかったので、全く存じませんでした(普段も使用していません)。
頂いた情報については、ブログでも別途エントリーしたいと思います。
それではよろしくお願い致します。

[2] Posted by yujiro logo : August 4, 2009 1:58 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Introduction
Entries of this Category
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

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

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.12