「引用を自動化」(DL要素版)
applingでの記事で「引用を自動化」と言う記事で引用を自動化するスクリプトを紹介いただきました。いつも感謝です。
ただ、基本ルール通りに記述するにはたくさんの情報をHTML要素の中に含めなければいけません。正しい記述方法は知っているけど、それが面倒でやっていない人も多いかと思います。そこでタグの生成を自動化できないかとAppleScriptを使って試してみました。
引用元:『引用を自動化 | appling 』
さらに加えて言うと、blockquote要素とcite要素をどう組み合わせるかという問題があります。本来はblockquote要素にはcite属性があるので引用元は指定できるのですが、多くのブラウザ上では無視されるので読者に引用元を知らせる術としては有効ではありません。結果 cite要素と組み合わせることになりますが、HTMLの仕様は上記の通りなので、これを組み合わせる必然性がないためそのような定義がありません。
考え方は2つあるようです。 cite要素もblockquote要素の中に記述してグループ化しようという考え方と、cite要素はblockquote要素の外に置いて別の手段でグループ化しようという考え方です。
前者は非常に簡単ですし関連も明確になりますが、本来blockquote要素のコンテンツは「引用文」であるべきで引用元情報を含むべきなのか?という課題があります。
後者はblockquote要素とcite要素の定義に準拠しながら意味付けができるというメリットがある反面、そんなグルーピングをする要素はHTMLでは定義されていないので無理矢理なコードになります。よくあるパターンとしては figure要素とfigurecaption要素を使うという手があります。
どちらのパターンも applingで示されていますが、わたし個人的にはdl要素を使ったコードを以前から使っていましたので、参考に dl要素版を作ってみました。
tell application "Safari" activate set theURL to URL of front document set theTitle to name of front document set selectedText to (do JavaScript "(''+getSelection())" in document 1) set the clipboard to "<dl class=\"quote\">" & return & "<dd>" & return & "<blockquote cite=\"" & theURL & "\" title=\"" & theTitle & "\">" & return & "<p>" & return & selectedText & return & "</p>" & return & "</blockquote>" & return & "</dd>" & return & "<dt class=\"cite\">" & return & "引用元:『" & "<a href=\"" & theURL & "\">" & "<cite>" & theTitle & "</cite>" & return & "</a>" & "』" & return & "</dt>" & return & "</dl>" & return as string end tell
<dl class="quote"> <dd> <blockquote cite="引用元のURL" title="引用元のタイトル"> <p> 引用本文 </p> </blockquote> </dd> <dt class="cite"> 引用元:『 <a href="引用元のURL"> <cite>引用元のタイトル</cite> </a>』 </dt> </dl>