日記
tDiaryのアンカーリンク時にドキュメントタイトルを表示する その3 (14:43)Edit

段落アンカーの頭は必ずしも1文字ではないようなんで、最初の半角スペースまでを除去するように変更。あと、日記タイトルはh1から取得するのはやめて、tDiary側でJavaScriptに埋め込むようにしてみた。

23,27d22
<
<         if (highlightElem.tagName == 'H3') {
<           var title = "#{@conf.html_title}(#{@date.strftime('%Y-%m-%d')})";
<           document.title = (highlightElem.innerHTML + ' - ' + title).replace(/<[^>]+?>/g, '').replace(/^[^ ]+ (.*)/, '$1');
<         }

これだともしも@conf.html_titleに「"」が含まれているような場合にまずかったりするんだけど、なんか上記の文脈で「"」を適切にエスケープする方法が良くわからなかったんでパス。@conf.html_title.tr('"', '\\"')だとダメなんだよなー。

Rubyのヒアドキュメントと式展開が入れ子になっていて、さらにその結果をJavaScriptの文字列に埋め込む場合、適切なエスケープはどう書くのが正解でしょう?

ネタがかぶっていた

「最初の半角スペースまでを除去する」というネタがかぶっていた

replace(/[^ ]* /, '')

の方がスマートな表現か。

ちなみにdocument.titletitleタグは、title_tag.rbを使っている場合は、その日のすべての段落タイトルが含まれてしまうんで、日記タイトル取得用には使えないんですよねー。

Published At2005-04-21 00:00Updated At2005-04-21 00:00