Archive@2007/11
ジャンプスクエアを試しで購入
遂に創刊された
「ジャンプスクエア」
本当は発売日に会社帰りに買って読もうとしたら、
結構店で売り切れてたので、
本日近所のコンビニで購入。
まぁ~特に読みたいって思ったのは無かったが、
漫画は大好きなので試しにね。
ってかこれって「月刊」なんだね。
それも値段が「500円」もしやがった。
単行本が買えるじゃないかぁ~。
読んだ感想としては、
今後これが読みたいから買おうかなって作品が無かった・・・。
まぁ~そんなもんだよね。
![]() | ジャンプ SQ. (スクエア) 2007年 12月号 [雑誌] 集英社(2007-11-02) 集英社 新品価格:¥ 500 ASIN:B000XA813A |
- Posted at:
- 2007/11/03 20:26:00
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://kishi-r.com/2007/11/03/post_63/trackback/
Dj Deckstreamのアルバム「SOUNDTRACKS」
最近HipHopの中では抜群に良いアルバムだったな。
先行で大分前に買った「Play On」なんかも入ってて、
素敵すぎた。
一番良いと感じたのは、11曲めの
「1.2.3.Contact feat.Surreal (Sound Providers)」
ってかあの「m-flo」の「Verbal 」もfeatされてるし。
当分は聞き倒すかなw
Dj Deckstream/SOUNDTRACKS
SONG LIST
1. Intro feat.DJ Premier
2. Play On feat.Pep Love (Hieroglyphics)
3. Can you let me know feat.Lupe Fiasco, Verbal & Sarah Green
4. Inconvenient Truth feat.Aloe Blacc (Stones Throw)
5. Five Alarm feat.Nikki Jean
6. Life feat.Juju Bee
7. Keep In The Pocket feat.Talib Kweli
8. Touch Of Mink feat.Camp Lo
9. Spread Love feat.Zion I
10. Something About Me feat.Moka Only
11. 1.2.3.Contact feat.Surreal (Sound Providers)
12. Memory of melodies feat.Dred Scott & Adriana Evans
13. Still Here feat.Bahamadia
14. Keep In The Pocket feat.Talib Kweli
- Posted at:
- 2007/11/03 13:42:57
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://kishi-r.com/2007/11/03/dj_deckstreamsoundtracks/trackback/
Djangoでテンプレートフィルタを作る
Djangoで「reStructuredText」を使っているのですが、
ユーザー側に
・管理側のテキストエリアで入力された「HTML」をそのまま表示させたい。
・コメント欄(テキストエリア)を「reStructuredText」で書けるようにしたい。
・コメント欄(テキストエリア)に入力された「HTML」は「escape」させたい。
などの問題があります。
なので、
ユーザー側に
・reStructuredTextのみを表示させる。
・reStructuredTextとHTMLをそのまま表示させる。
の2パターンが必要になります。
なのでテンプレートフィルタを作成する事にしました。
※11月10日追記
見づらいので、Wikiに記載しました。
http://project.pod-head.net/wiki/reStructuredText
まずテンプレートフィルタの作成方法を
Djangoの和訳ドキュメントに書かれている通りやってみました。
「templatetags」パッケージを適当な「Django」アプリケーションパッケージ内に作ります。
※パッケージは models.py や views.py などと同じ階層にせねばなりません。
なので下記のようになります。
test/
models.py
templatetags/
views.py
のように「templatetags」ディレクトリを作成。
その後に
「templatetags」内にファイルを2つ追加します。
・ __init__.py
・ 自作のタグ/フィルタ定義の入ったファイル
今回は自作のタグ/フィルタ定義の入ったファイルを「rawtext.py」のような名前で作成するので、
・ __init__.py
・ rawtext.py
になります。
「__init__.py」には何も書かなくて良いが、
「rawtext.py」にフィルタ定義を書きます。
今回は「reStructuredText」使うため
/DjangoをインストールしたPATH/django/contrib/markup/templatetags/markup.py
に記述されている
def restructuredtext(value):
try:
from docutils.core import publish_parts
except ImportError:
if settings.DEBUG:
raise template.TemplateSyntaxError, "Error in {% restructuredtext %} filter: The Python docutils library isn't installed."
return force_unicode(value)
else:
docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILT|~ER_SETTINGS", {})
parts = publish_parts(source=smart_str(value), writer_name="html4css1",settings_overrides=docutils_settings)
return force_unicode(parts["fragment"])
を使用します。
「rawtext.py」を下記のように記述します。
# vim: fileencoding=utf-8 :
import re
from django.template import Library
from docutils import nodes
from docutils.parsers.rst import directives
from django.conf import settings
from django.utils.encoding import smart_str, force_unicode
register = Library()
@register.filter
def rawtext(value):
def raw_directive(name, arguments,options, content, lineno,
content_offset, block_text, state, state_machine):
return [nodes.raw('', u'\n'.join(content), format='html')]
raw_directive.content = 1
directives.register_directive('raw', raw_directive)
try:
from docutils.core import publish_parts
except ImportError:
if settings.DEBUG:
raise template.TemplateSyntaxError, "Error in {% restructuredtext %} filter: The Python docutils library isn't installed."
return force_unicode(value)
else:
docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {})
parts = publish_parts(source=smart_str(value), writer_name="html4css1", settings_overrides=docutils_settings)
return force_unicode(parts["fragment"])
まず必要なライブラリなどをimportします。
その時にテンプレートフィルタを作成するのにひつようなのが、
from django.template import Library
register = Library()
上記を記述するのは、
有効なタグライブラリを作るには、 register という名前のモジュールレベル変数に template.Library のインスタンスを入れておく必要があります。このインスタンスには、全てのタグとフィルタが登録されます。
の為です。
次に
Django テンプレート言語で使えるようにするために Library インスタンスに登録する必要があります。
※バージョン 2.4 以上の Python を使っているのなら、 register.filter() デコレータを使えます
なので、
下記も記述します。
@register.filter
ドキュメントに記載されている通り
@register.filter(name='rawtext')
でも良いです。
今回は関数名をそのままフィルタ名として使用するので省略しました。
次に実際に作成したテンプレートフィルタを使用します。
下記を使用するテンプレートに記述します。
{% load rawtext %}
フィルタの使用例は下記になります。
{ comment|rawtext }
のようになります。
「reStructuredText」のみを表示する場合は、
{{ comment|restructuredtext }}
よって、
ユーがー側のコメントを表示する部分を
{{ comment|restructuredtext }}
にして、
管理画面でテキストエリア(tipstext)に入力された部分を表示する場合を
{{ tipstext|rawtext }}
と記述します。
入力方法は
「reStructuredText」で入力する場合は、
.. sourcecode:: 言語(javascriptやpythonなどのように)
<input type="text" name="hoge">
「HTML」を入力する場合は、
.. raw::
<input type="text" name="hoge">
になります。
これで2パターン対応する事が出来ました。
今回もnobuさんにヘルプしていただきながら、
色々教えていただきました。
ありがとうございました。
参考サイト
Djangoオンラインドキュメント和訳
- Posted at:
- 2007/11/01 15:23:05
- 0 Comments
- 0 TrackBacks
- Tags:
- Trackback:
- http://kishi-r.com/2007/11/01/django/trackback/
![ジャンプ SQ. (スクエア) 2007年 12月号 [雑誌] ジャンプ SQ. (スクエア) 2007年 12月号 [雑誌]](http://ecx.images-amazon.com/images/I/31TDahUD37L.jpg)



