SmartyPants

提供: 閾ペディアことのは
2009年7月19日 (日) 15:25時点における松永英明 (トーク | 投稿記録)による版 (新しいページ: 'SmartyPantsはMovable Typeなどで標準採用されているプラグインで、単純なASCII文字で入力された引用符などの記号を、印刷用の記号に...')
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動検索に移動

SmartyPantsはMovable Typeなどで標準採用されているプラグインで、単純なASCII文字で入力された引用符などの記号を、印刷用の記号に自動変換するものである。ただし、日本語環境での使用機会は低いと思われる。

SmartyPantsが標準装備されているMovable Typeでは、「Markdown+SmartyPants」記法が使えるほか、「MT-Textile」記法を選ぶと自動的にSmartyPantsが機能する。

概要解説

SmartyPantsは、フリーのウェブ投稿用プラグインで、Movable Type、Blosxom、BBEditに対応している。プレーンのASCII句読点記号を、「スマートな」印刷用句読点のHTML実体に簡単に変換する。

SmartyPantsは以下の変換を行なう。

  • まっすぐな引用符(「"」と「'」)を、カールした引用符HTML実体に
  • バッククォート記号(``こんな感じ'')を、カールした引用符HTML実体に
  • ダッシュ(ダーシ、「--」と「---」)を、enダッシュ(半角)とemダッシュ(全角)の実体に
  • 3つの連続した点「...」を省略記号(三点リーダ)実体に

プレーンな古いASCIIのまっすぐな引用符や、単純なダッシュや、単なる点々を記事として書いて編集し、保存したとしても、投稿された記事(と最終的なHTML出力)では、スマートな引用符、全角ダッシュ、適切な「…」に変換される。

SmartyPantsは、Movable Type、Blosxom、BBEditで動作するプラグインファイルである。これはUnixスタイルのコマンドラインからも使うことができる。

SmartyPantsは、<pre>、<code>、<kbd>、<script>タグブロックの中では文字を変換しない。これらのタグで示されるテキスト、すなわちソースコードやタグマークアップ見本では、スマートな引用符その他の「スマートな約物記号」を表示するのがふさわしくないと思われる。

必要な環境

  • Movable Type: 2.5 以降 (Movable Type 3、4、5を含む)
  • Blosxom: 2.0 以降
  • BBEdit: 5.1 以降
  • Perl: 5.005 以降

MT-Textileとの連動

Movable Type ユーザーは、SmartyPantsはBrad ChoateのMT-Textileプラグインでも動作することに注意。

MT-TextileはDean AllenのもともとのTextileプロジェクトを、PerlとMovable Type用移植版である。MT-Textileそのものは、Textile記法をHTMLに変換するだけである。しかし、SmartyPantsもインストールされているなら、MT-TextileはSmartyPantsを呼び出して、引用符、ダッシュ、省略記号を自動的に生成することになる。MT-Textileとの連携でSmartyPantsを使うのに、Movable Typeテンプレートで修正等は必要ない。

TextileはDean Allenの「人間的なウェブテキスト生成システム」であって、ウェブのためのテキストを書くのに書きやすく読みやすい速記法である。

なぜ?

印刷用の約物記号はスマートに見えるからだ。

なぜ普通のじゃだめ?

まず、あなたは気にかけないかもしれない。

たいていの普通の、精神的に安定した人は、適切な印刷用の約物が使われているかどうかなど気にもかけない。しかし、デザイン・印刷オタクは、たとえば“Joe’s”という綴りにまっすぐなアポストロフィーが使われているレストランのサインなどに出くわすと、じんましんが出てしまうのである。

もしあなたが気にならない人なら、これからも気にならずにいたいことだろう。まっすぐな引用符は、7ビットASCII文字セットに普通に含まれているものであり、それを使えば、確実に生きやすい生き方となる。

たとえ正確な印刷を気にするとしても、自分のブログで引用符文字を洗練させようとする前に考えておかねばならないことがある。カールした引用符のHTML実体を使うならば、他の人がコピーペーストでそのブログを引用するのがちょっと難しくなるという影響があるということだ。ブログからテキストをコピーしようとすると、8ビットのカールした引用符文字をコピーすることになる(このオプションを使っているなら、全角ダッシュや省略記号も同様に8ビット文字となる)。これらの文字は、テキストの文字コードが違えば文字化けする可能性がある。だからHTML実体というものがそもそも必要になっているわけである。

しかし、ブログからテキストをコピーした人は、カールした引用符を使っていることに気付かないかもしれない。そうなると、実体化されていない8ビット文字をブラウザーから電子メールメッセージや自分のブログにペーストすることになるだろう。「スマートな引用符号」がそのままペースとされたとき、これらの文字は認識不能なほどめちゃくちゃになる可能性が高い。

だから、ちゃんとしたテキストエディタや電子メールソフトは、スマートな引用符号文字を7ビットの対応する記号に落とし込むことができないと困ると私は言っているのである。そして、あなたが頼りないテキストエディタや電子メールソフトを使っていたとしても、それは私が悪いわけではない。[1]

アルゴリズム上の欠点

引用符号が誤ってカールしてしまう状況がある。その一つは、アポストロフィーが略語の冒頭で使われる場合である。例えば:

'Twas the night before Christmas.

この場合、SmartyPants はアポストロフィーを開く一重引用符に変えてしまうが、実際にはそれは閉じる引用符でなければならない。この問題は、一般的に解決可能ではないと思われる――一般的なワープロでもこの間違いは起こる。このような場合、最適なのは、閉じる一重引用符(「’」か「’」)を手動で挿入するか、UTF-8引用文字を使うことである。

訳注

  1. もともと文字化けが大きな問題となる日本語環境ではこれらの問題は起こりにくいと思われるが、電子メールでの文字化けなどについては避けられない場合も多い。