ついでに書いておくと Unofficial Planet WordPress Japan のテンプレートいじった。Feedjack の Features には
# It generates pages/feeds with posts of a certain category (example, feed)
# It generates pages/feeds with posts from a certain subscriber (example, feed)
# It generates pages/feeds with posts of a certain category from a certain subcriber (example, feed)
と書いてあるけど、デフォルトでは全体の feed しか吐いてなかったので、各 subscriber, tag で feed 吐かせたいなぁ、と思ったので吐くようにテンプレートいじった。コントローラとかいじる必要あるのかと思ったけどテンプレート(Django ではビューで合ってる?)に書くだけでよかった。テンプレートだけで済むのはいいんだけど、書き方とかドキュメントにしておいてもらえると助かる。Feedjack 全般的にドキュメント少なすぎ。
URL 手打ちで http://planet.wp.luac.net/feed/rss/tag/del.icio.us/ とか http://planet.wp.luac.net/feed/rss/user/1/ とか http://planet.wp.luac.net/feed/rss/user/1/tag/books/ を叩くと feed が見られるので、テンプレートの中にこのような感じで表示すればよい。feed autodiscovery させたいので、HTML の head 要素に出力させたい。ついでにアイコンも出してしまいたい。
ということで Django のテンプレートいじり。else if 使いたかったのだけど使い方分からず(できるの?)。結局 if 文を一つづつ書くことで対応。
post_list.html を編集。
head 要素内に以下追加。
-
{% if tag and user %}
-
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{{ site.url }}/feed/rss/user/{{ user_id }}/tag/{{ tag.name|urlencode }}/" />
-
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{ site.url }}/feed/atom/user/{{ user_id }}/tag/{{ tag.name|urlencode }}/" />
-
{% endif %}
-
{% if user and not tag %}
-
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{{ site.url }}/feed/rss/user/{{ user_id }}" />
-
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{ site.url }}/feed/atom/user/{{ user_id }}" />
-
{% endif %}
-
{% if tag and not user %}
-
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="{{ site.url }}/feed/rss/tag/{{ tag.name|urlencode }}/" />
-
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{ site.url }}/feed/atom/tag/{{ tag.name|urlencode }}/" />
-
{% endif %}
アイコン出している id=button の div 要素を以下のようにした。
-
<div id="buttons">
-
{% if user and tag %}
-
•
-
{% endif %}
-
{% if user and not tag%}
-
•
-
{% endif %}
-
{% if tag and not user %}
-
•
-
{% endif %}
-
</div>
subscriber, tag もない場合は全体の feed, Django へのリンク, OPML を表示。subscriber と tag の時は subscriber, tag のアイコンを表示。subscriber の時は subscriber の feed アイコンを表示。tag の時は tag の feed アイコンを表示。
元から機能搭載されているとはいえ、テンプレートいじるだけでなんとかなるのは凄い便利と思った。Django がすごいのか Feedjack の作り方がすごいのか。とはいえ、Feedjack のドキュメントの充実化を願う。
Popularity: 24%


No Writebacks »
No Writebacks yet.
Leave a comment