サイト内検索:

MTでEvernoteの「Site Memory」を使う場合の記事タイトル内の「"」をエスケープする方法

「Site Memory」というのは自分のブログ内に設置可能なEvernoteボタンで、これを読者がクリックするとこで読者のEvernote内にその記事を取り込ませることを簡単にする、というものです。

うちのブログの場合は記事直下に設置したこの「Site Memory」ボタンをクリックすることで、記事の内容だけをプレーンテキストで取り込むことができるようになります。(HTMLで取り込みたい人はEvernoteをインストールした時にブラウザにインストールされるEvernoteのClip機能を使ってもらえばいいな、と思っています)。

で、前に「エバーノート、新機能「Site Memory」を公開 」というエントリーを書いて、その中で、

ちなみに表示用のJavaScriptですが、ブログ記事タイトル中に「"」が入っているとシンタックスエラーとなるようです。これについてはTwitterで@EvernoteJPに連絡したんだけど、何の返信もないですね・・・。

と書いたのですが、その後Evernoteの中の人から連絡が来て、英語であれこれやりとりしてて、これを解決する方法を教えてもらいました。

MTの場合、タイトルを入れ込む場合は<$MTEntryTitle>と指定してあげればいいのですが、このままだと記事タイトルに「"」があるとスクリプトがエラーになってしまいます。

で、encode_jsというオプションを使って<$MTEntryTitle encode_js="1"$>と書いてあげればいいのかと思ったのですが、これだと「"」が「\"」に変換されるものの、Site MemoryのJavaScript的にはエラーになってしまいます。

ということを伝えたら「encode_html」を使ってくれ、というメールが届きました(「encode_html」についての説明はこちら)。

そこで<$MTEntryTitle encode_html="1"$>と指定したところ、「"」が「"」に変換され無事エラーも出なくなりました。わーい。

というか全方位的にこういう場合にもちゃんと対応できるようにするオプションをちゃんと提供しているMTってすごいな、かな。

ちなみにWordPressでも同じような問題が発生するのか?って聞いたら

It's not necessary to escape titles in WordPress; calling the_title() automatically inserts HTML-safe strings.

ということで、何もオプションを使うことなく<?php the_title(); ?>と指定してあげればよいようです。
(WordPressでのSite Memoryの使い方の詳細はこちらに掲載されています)。

MTやTypePad系のシステムでSite Memoryを使っている人はオプションに「encode_html="1"」を指定してあげてください。

Evernoteの中のエンジニアのSethさんに感謝!

*記事中の「<」と「>」は便宜上全角を使っているので、適宜半角にして使ってください。

blog comments powered by Disqus

2011年アルファブロガー受賞

新着DVD

モバイル

Powered by Movable Type 6.1.2

ブログ内検索

BlogPeople ReviewMe!

このサイトのレビューとか応援コメントを書いてもらえると励みになります。

Affi☆List for Amazon

バナー広告

このブログ記事について

このページは、nagasawaが2010年9月15日 12:53に書いたブログ記事です。

ひとつ前のブログ記事は「9月15日のラッキーさん」です。

次のブログ記事は「パソコン工房、64,980円からの17型ノートPC」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。