rstblog で最近のエントリーを表示する

heavenshell's note -rstblog で最近のエントリーを表示する の転載。


ブログなんかはサイドバーに最近のエントリーみたいな形で表示する事が多い。
Octpress なんかも表示している。
rstblog でどうやって表示するか分からなかったのでちょっとだけソースを読んでみた。


rstblog/modules/blog.py

def setup(builder):
  # snip
  builder.jinja_env.globals.update(
      get_recent_blog_entries=get_recent_blog_entries
  )

Jinja2 に get_recent_blog_entries というオブジェクトを渡している。
なので、テンプレートでこれを呼んでやれば良い。

<div class="side">
  <h2>Recent Posts</h2>
  <ul class="unstyled">
  {% for entry in get_recent_blog_entries() -%}
    <li><a href="{{ link_to('page', slug=entry.slug) }}">{{ entry.title }}</a></li>
  {% endfor -%}
  </ul>
</div>

get_recent_blog_entries は引数で件数を設定できる。
設定しない場合はデフォルトで 10 件取得するようになっている。
エントリのタイトルを表示し、リンクとしてエントリの slug を設定すると該当エントリにリンクを設定する事ができる。