GAE上のdjangoで日本語版truncateを作る
何も完成させないままmixiアプリにも飽き、いまの趣味プログラミングはGoogle App Engineです。
データストアとかdjangoとかすごく便利!と思ってたんですが、truncatewordsが全く日本語向きでなかったのでカスタムフィルタを作ることにしました。
データストアとかdjangoとかすごく便利!と思ってたんですが、truncatewordsが全く日本語向きでなかったのでカスタムフィルタを作ることにしました。
カスタムフィルタの追加の仕方自体はこちらのページが分かりやすかったです
自力でescapeしてるのが何ともカッコ悪いです…。もうちょいスマートに書けないもんですかね。
from django import template import string register = template.Library() # 文字列をarg文字以内に切り詰める。超えた場合は末尾を'…'にする。 @register.filter def truncatejp(value, arg): value = value.strip() if len(value) <= arg: return value arg -= 1 return value[:arg].strip() + u'…' # truncatejpと同じだが、文字数ゼロのときはTABLEタグ用に<br />を返す。 @register.filter def truncatejp_br(value, arg): if len(value) == 0: return '<br />' ret = truncatejp(value, arg) ret = ret.replace('&', '&') ret = ret.replace('<', '<') ret = ret.replace('>', '>') ret = ret.replace('\'', ''') ret = ret.replace('"', '"') return ret truncatejp_br.is_safe = True
自力でescapeしてるのが何ともカッコ悪いです…。もうちょいスマートに書けないもんですかね。
« mixiアプリでOpenSocial-JQueryのPeopleオブジェクトから取れるもの一覧 | トップページ | VexFlow使ってみた »
「アプリ」カテゴリの記事
- GAE上のdjangoで日本語版truncateを作る(2010.05.08)
- テレビのような画像を作るPictBear用プラグイン(2006.09.13)
- 『七都市物語 シェアードワールズ』(原案:田中芳樹/著:小川一水・森福都・横山信義・羅門祐人)(2005.12.19)
コメント
この記事へのコメントは終了しました。
« mixiアプリでOpenSocial-JQueryのPeopleオブジェクトから取れるもの一覧 | トップページ | VexFlow使ってみた »
はじめまして、Django本家のtruncate_wordsではHTMLのエスケープしてないですよ(truncate_wordsもtruncatewords_htmlも)
以下のリンクはtruncate_wordsに似せて作ったものですが、よかったらどうぞ。
http://www.hashnote.tk/2010/may/19/truncate-words-for-japanese/
投稿: Alisue | 2010.05.19 00:37
はじめまして。
そうなんですか!
わざわざありがとうございます。
そしてそちらのコードのほうが明らかに凝ってますね…。こちらDjango初心者なので参考にさせていただきます。
投稿: おー | 2010.05.20 00:16