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

written on Sunday, January 29, 2012

ブログなんかはサイドバーに最近のエントリーみたいな形で表示する事が多い。 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 を設定すると該当エントリにリンクを設定する事ができる。

This entry was tagged python, restructuredtext and rstblog