2012-04-30

zencoding.vim が書き出す HTML の lang="en" を lang="ja" に変更する方法

zencoding.vim を導入していると、
Vim で html:4s と入力したあとに「Ctrl+y ,」と打つするだけで、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title></title>
</head>
<body>
  
</body>
</html>
と、ここまで展開してくれて、めちゃくちゃ便利。
けど、lang="en" じゃないんだよなーと毎回 lang="ja" に打ちかえていたところ、最近になってようやく抜本的な解決策を発見。
こちらのコメントによると、
let g:user_zen_settings = {
\  'lang' : 'ja',
\}
_vimrc に入れておけばいいみたい。
ありがたやー。

2012-04-22

Blogger でサイトマップを表示するツールを、投稿が 500 件以上あるブログにも対応させてみた

こないだ、Blogger Tips でこんなのを書いた。 紹介したのは、短いコードを挿入するだけで、自動的にブログの投稿をラベル別に一覧にしてくれる便利なツール。とはいえ、何分 Blogger のフィードを JSONP で出力させているため、投稿が 500 件までしか取得できないという制約が…。

それで、blogtoc のコードを眺めまわして、コールバックに指定されている関数でデータの取得と表示を一手に行っていたのを、取得のみにして、複数のフィードのデータを読み込んだ後に表示の関数を呼び出すことにした。

元がこちら(オリジナルを整形したもの)。 で、複数フィードを指定できるようにしたのが、こちら。
導入方法

Blogger の管理画面「ページ」タブのリンクを「新しいページ」→「空白のページ」と進み、出てきたページエディタを「HTML」モードにした上で、本文の位置に、以下のコードを入力。赤字の部分は自身のブログの URL に変更すること。

<script type="text/javascript" src="http://tools.kuribo.info/blogtoc/blogtoc-plus.js"></script>

<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&redirect=false"></script>
<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&start-index=501&redirect=false"></script>
<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&start-index=1001&redirect=false"></script>

<script type="text/javascript">showPosts();</script>

3 行目からの各フィードで、投稿を 500 件ずつ取得するので、start-index パラメータで、投稿の開始番号を 500 番ずつずらして指定すること。ブログで必要な投稿分この行を増やすといいかと。ちなみに、指定なしは start-index=1 と解釈される。

最後に JavaScript の showPosts 関数(blogtoc-plus.js で定義)を呼び出して、取得した投稿データをソートして書き出す、と。

ブログの投稿数が 500 件を超えている人は、一度お試しを。

参考:
追記(2012-06-03)

こういうコメントが。
NEW!がかなり古い投稿にもついてしまうのですが、なぜでしょうか?
タイトルと一緒に投稿日付を表示することはできせんでしょうか?
別ウィンドウで開くようにすることは可能ですか?
フィードごとに、新しい投稿 10 件「NEW!」が表示されるようになっていました。元々のコードは複数のフィードを読み込むようになっていないので、まあ当然といえば当然。最初のフィードの新投稿 10 件だけ「NEW!」をつけるように修正しました。

「導入方法」で示したコードの

<script type="text/javascript">
  var openNewWindow = true;
  var showDate = true;
</script>

というのを挿入すると、リンクを新しいウィンドウで開く、投稿の日付を表示するというオプションが有効になるようにしました。

参考:

Zenback - Everyone's Related Posts