読者です 読者をやめる 読者になる 読者になる

Vicunaではてすた個別エントリーの修正版

どうも、ぼくです。

Vicunaスタイルではてすたをいじるときのエントリーをいくつか書いたのですが、それの修正版ですね。 一覧ページにははてすたがいっぱい出てくるんですが、個別ページでは、タイトルにリンクが貼られていないので、無理矢理やる方法を紹介しましたが、なんか先日それをさらに修正してかなり楽しいことをしている人を発見したので、もうloadEntriesを上書きしてしまう方法にしました。

ちなみに従来の方法の

<h1><a href="<?php echo get_permalink() ?>"><?php the_title(); ?></a></h1>

だとリンクの色が変わってしまうので

<h1><a href="<?php echo get_permalink() ?>" style="display: none;" ><?php the_title(); ?></a>
<?php the_title(); ?></h1>

のような解決方法にするのが流行っているようですが、これだと、もうなんの為のVicunaスタイルか訳分からなくなってますね。(一時期僕もこれでやっていたわけですが^^;)

まぁ、CSSをオフにするその他音声ブラウザとかは企業のページじゃないしあんまり気にしてないんだけど、タイトルの部分をコピペなんかするとdisplay:noneの部分もコピーされてしまうので、タイトルが2回連続の文字列がクリップボードに保存されてしまうんですよ。

これは結構致命的ですよねorz

まぁ、本題です。下のコードをWP.Vicunaのシングルポストのページに適用すればおk

Hatena.Star.EntryLoader.loadEntries = function() {
    var entry = new Hatena.Star.Entry.Vicuna(document.getElementsByTagName('h1')[0]);
    return [entry];
}

Hatena.Star.Entry.Vicuna = new Ten.Class({
    initialize: function(h1) {
        this.title = h1.firstChild.nodeValue;
        this.uri   = '<?php echo get_permalink() ?>';
        this.comment_container = Hatena.Star.EntryLoader.createCommentContainer();
        h1.appendChild(this.comment_container);
        this.star_container = Hatena.Star.EntryLoader.createStarContainer();
        h1.appendChild(this.star_container);
    }
});

それに伴って、

Hatena.Star.EntryLoader.headerTagAndClassName = ["h1","entry_title"];

の部分は削除するかコメントアウトしてしまえばよいです。まぁしなくても動くと思いますが。

これで、リンクの無いタイトル文字列にはてすたをつけることができますね。

おめでとうございます。ありがとうございます。