jQuery.prettyQuote.js
Make your "quote" pretty & friendly!
About - このプラグインについて
blockquote
要素や、q
要素の引用元の情報を簡単に示すことができます。
たとえば、このようにマークアップされた HTML があったとすると……
<blockquote cite="http://ja.wikipedia.org/wiki/%E5%BC%95%E7%94%A8" title="引用 - Wikipedia">
<p>引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。</p>
</blockquote>
プラグインの初期設定では次のように整形されます。
(実際には、インデントや元テキスト以外の改行はされません)
<div class="prettyQuote">
<div class="header">引用 - Wikipedia</div>
<blockquote cite="http://ja.wikipedia.org/wiki/%E5%BC%95%E7%94%A8" title="引用 - Wikipedia">
<p>引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。</p>
</blockquote>
<div class="footer"><cite><a href="http://ja.wikipedia.org/wiki/%E5%BC%95%E7%94%A8">http://ja.wikipedia.org/wiki/引用</a></cite></div>
</div>
このようにリンクが生成されることで閲覧者が引用元を確認するのが容易になります。
また、書き手にとっても引用時にリンクを作る必要がなくなるので、少しは楽ができるかもしれません。
このプラグインを公開したときのブログ記事はこちらです。
blockquote 要素を整形する jQuery プラグイン「jQuery.prettyQuote.js」
プラグインの特徴
- 引用元が Web 上か書籍かを自動判別し、リンクを生成。
- 書籍の場合は Amazon.co.jp の商品ページへのリンクを生成。
cite
属性の ISBN は ISBN-13 でも ISBN-10 でも OK。- 生成される HTML をある程度まで指定可能。
blockquote
でもq
でも使用可能。- Amazon へのリンクにはアフィリエイト ID を付与可能。
DownLoad - ダウンロードとライセンスについて
プラグインのライセンスは MIT ライセンスです。
参考リンク:MIT License - Wikipedia
Installation - 導入方法
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.prettyquote.js"></script>
<script type="text/javascript">
$(function() {
$('blockquote').prettyQuote();
});
</script>
jQuery.prettyQuote.js は jQuery プラグインですので、使用には jQuery.js が必須となります。
jQuery.js は公式サイトからダウンロードするか、Google にホスティングされているものをご利用ください。
$('blockquote')
の部分は、適用したいセレクタに書き換えてください。
Options - オプション
jQuery.prettyQuote.js にはいくつかオプションがあり、デフォルトでは以下のようになっています。
$(function() {
$(selector).prettyQuote({
newWin: true,
container: { tag: 'div', className: 'prettyQuote'},
quoteWrap: { wrap: false, tag: 'div', className: 'body' },
header: { display: true, tag: 'div', className: 'header' },
footer: { display: true, tag: 'div', className: 'footer', text: 'uri' },
tooltip: '',
amazonId: ''
});
});
オプション項目の説明
ここで使われる対象要素とは、スクリプトを適用する要素のことで blockquote
要素、もしくは q
要素となります。
newWin
-
生成されたリンクを新しいウィンドウで開くかどうか。
true
かfalse
で指定。デフォルトはtrue
です。 container
-
対象要素と追加される要素を格納する要素です。サブオプションは以下のようになっています。
tag
- 使用する要素。デフォルトは
'div'
です。
空にするとプラグインは無効になりますので注意してください。 className
- 使用する要素に適用するクラス名。デフォルトは
'prettyQuote'
です。
quoteWrap
-
必要な場合に対象要素のみを囲む要素を指定できます。サブオプションは以下のようになっています。
wrap
- 囲むかどうか。
true
かfalse
で指定します。デフォルトはfalse
です。 tag
wrap: true
の場合に有効。何の要素で囲むかを指定します。デフォルトは'div'
です。className
wrap: true
の場合に有効。囲む要素に適用するクラス名。デフォルトは'body'
です。
header
-
対象要素の前に追加する要素。
title
属性の値を表示します。title
属性がない場合は追加されません。display
- ヘッダーを表示するかどうか。
true
かfalse
で指定します。デフォルトはtrue
です。 tag
display: true
の場合に有効。どの要素を使うかを指定します。''
のように空を指定すると、要素でマークアップされていないテキストが表示されます。
デフォルトは'div'
です。className
display: true
の場合に有効。使用する要素に適用するクラス名。デフォルトは'header'
です。
footer
-
対象要素の後に追加する要素。
title
属性の値、または URI を表示し、cite
属性がある場合にはリンクを生成します。display
- フッターを表示するかどうか。
true
かfalse
で指定します。デフォルトはtrue
です。 tag
display: true
の場合に有効。どの要素を使うかを指定します。''
のように空を指定すると、<cite><a href="URI">アンカーテキスト</a></cite>
のみが出力されます。リンクがない場合はアンカーテキストがそのまま表示されます。
デフォルトは'div'
です。className
display: true
の場合に有効。使用する要素に適用するクラス名。デフォルトは'footer'
です。text
- アンカーテキストに使用するテキスト。
'title'
または'uri'
で指定します。デフォルトは'uri'
です。
tooltip
- 生成するリンクのタイトル属性に入れたいテキスト (例:
'引用元へ'
)。'title'
を指定すると、title
属性の値を使用できます。デフォルトは空です。 amazonId
- Amazon へのリンクに使用する Amazon トラッキングコード (例:
'xxx-22'
)。デフォルトは空です。
各オプションは省略可能ですが、サブオプションに何か指定する場合、サブオプションは省略できません。
以下の例はフッターのテキストだけ変更する場合です。
(赤いテキストが変更箇所)
$(function() {
$(selector).prettyQuote({
footer: { display: true, tag: 'div', className: 'footer', text: 'title' }
});
});
q
要素に適用する場合など、以下のように指定すると使いやすいかもしれません。
$(function() {
$('q').prettyQuote({
container: { tag: 'span', className: 'prettyQuote'},
header: { display: false, tag: 'div', className: 'header' },
footer: { display: true, tag: 'span', className: 'cite', text: 'uri' }
});
});
Examples(Basic) - 基本的な使用例
デフォルト設定
スタイルはこのデモ用に作ったので、各自でいい感じにデザインしてください。
(このプラグインはスタイルシートを追加しません)
引用元が Web 上の場合
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
引用元が書籍の場合
jQueryの最大の特徴は、通常のJavaScriptとは異なる方法でJavaScriptの命令を記述できることです。JavaScriptの記述には多くの手続きを必要としますが、jQueryを利用すると非常に短いコードで済みます。
デフォルト設定下で、title
属性や cite
属性の有無による違い
どちらも指定されている場合は、上記のデフォルト設定の例のようになります。
cite
属性あり・title
属性なし
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
cite
属性なし・title
属性あり
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
cite
属性なし・title
属性なし
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
Examples(Advanced) - 高度な使用例
設定例を紹介します。これを参考にして自分好みの設定にしてください。
対象要素には cite
属性・title
属性の両方があるものとします
ヘッダーなしで、アンカーテキストに title
属性の値を使う
オプションの設定は以下。
$(function() {
$(selector).prettyQuote({
header: { display: false, tag: 'div', className: 'header' },
footer: { display: true, tag: 'div', className: 'footer', text: 'title' }
});
});
表示されるもの。
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
書籍からの引用文をアフィリエイト付きで Amazon.co.jp へリンクする
オプションの設定は以下。
$(function() {
$(selector).prettyQuote({
tooltip: 'title',
amazonId: 'pnr-22'
});
});
表示されるもの。
jQueryの最大の特徴は、通常のJavaScriptとは異なる方法でJavaScriptの命令を記述できることです。JavaScriptの記述には多くの手続きを必要としますが、jQueryを利用すると非常に短いコードで済みます。
dl
要素を使って、定義リストで出力する
オプションの設定は以下。
$(function() {
$(selector).prettyQuote({
container: { tag: 'dl', className: 'prettyQuote'},
quoteWrap: { wrap: true, tag: 'dd', className: 'body' },
header: { display: true, tag: 'dt', className: 'header' },
footer: { display: true, tag: 'dt', className: 'footer', text: 'uri' }
});
});
表示されるもの。
(Firebug などで確認してみてください)
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
リンクの前に「引用元:」とか「via:」とかを追加する
これはプラグインの機能ではないんですが、やりたい人もいるでしょうから書いておきます。
プラグイン自体はデフォルトで使用している、という条件だとこうなります。
オプションの設定は以下。
$(function() {
$(selector).prettyQuote();
$(selector).next().prepend('via: ');
});
表示されるもの。
引用(いんよう、英語:citation, quotation[1])とは、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること。
q
要素にいい感じに適用してみる
CSS を上手く指定しましょう。
オプションの設定は以下。
$(function() {
$(selector).prettyQuote({
container: { tag: 'span', className: 'prettyQuote'},
header: { display: false, tag: 'div', className: 'header' },
footer: { display: true, tag: '', className: 'qAfter', text: 'uri' },
tooltip: 'title'
});
});
スタイルシートを以下のように指定。
span.prettyQuote {
margin: 0 5px;
}
span.prettyQuote q {
background-color: #ddd;
quotes: '"' '"';
}
span.prettyQuote q:before {
content: '"'; /* for webkit */
content: open-quote;
}
span.prettyQuote q:after {
content: '"'; /* for webkit */
content: close-quote;
}
span.prettyQuote cite a {
display: inline-block;
margin-left: 5px;
width: 1em; /* font-size と同じ */
height: 1.6em; /* line-height と同じ */
overflow: hidden;
background: url(link.gif) center center no-repeat;
text-indent: -9999px;
vertical-align: bottom;
}
表示されるもの。
(文章は適当です)
引用文のことを考えてみましたが、よく分からないので、とりあえず Wikipedia を確認したところ、広義には、他人の著作を自己の作品のなかで紹介する行為、先人の芸術作品やその要素を自己の作品に取り入れること
と書かれていました。
これをもう少し読む進んでいくと……
Contact - 連絡先
バグなどありましたらご連絡ください。
機能の追加とかは気が向いたらします。
まだまだ甘いところがあると思いますので
「ここはこうした方が速くなるよ!」
「もっとスマートにできるよ!」
などのアドバイスも歓迎です。
メールでのご連絡は Gmail へ。アカウントは pnr.matori です。
ブログ記事のコメントでも OK です。記事はこちらからどうぞ。
Change logs - 更新履歴
- 2010-09-28
-
version 1.2
処理を開始する前に対象要素がblockquote
もしくはq
かチェックし、それ以外の場合には処理を行わないように変更。 - 2010-09-28
-
version 1.1
Wikipedia などの日本語 URL がアンカーテキストの場合に、表示テキストが長くなりすぎるとの指摘があったため、表示テキストのみURLデコードするように変更。 - 2010-09-28
-
version 1.0
ひとまず完成。公開。 - 2010-09-17
-
version 0.1
テスト版完成。