最近、
Igor Kononuchenko がPythonで書かれたタイポグラフのバージョンを投稿しました。 人間のイゴール、ありがとうございました。 そして、私は控えめに、ライブラリからdjango用の活版印刷フィルターを作成することにしました。 複雑なことではありませんが、私のような初心者にとっては便利かもしれません。 実際に何が起こったのか。
1.最初に、Googleコード
http://code.google.com/p/typo-py/を使用してSVNライブラリからダウンロードしました。
2.フィルターを作成する際のガイドとして、
公式のドキュメントを参照しました 。
3.以前に作成されたポートフォリオモデルでテストを行いました-ここから、そのような方法が判明しました。
typographus.pyファイルを
mysite / Portfolio / templatetagsに配置します(空の
__init__.pyファイルをそこに配置することを忘れないでください)。 ファイルの最後にフィルターコード自体を追加しました。
from django import template
register=template.Library()
@register.filter
@stringfilter
def typographus(string):
"""Russian typorgify"""
if type(string) is not unicode:
string = unicode(string)
return Typographus().process(string)
4.
settings.pyファイルの
INSTALLED_APPSリストに、ハンドラーを接続する行
mysite.portfolio.templatetags.typographusを追加しました。
5. htmlテンプレートで、次のコードが判明しました。
{% extends "base.html" %}
{% load typographus %}
...
{% block content %}
{% autoescape off %}
<h1>{{ portfolio.title|typographus }}</h1>
{{ portfolio.text|linebreaks|typographus }}
{% endautoescape %}
{% endblock %}
実際、それがすべてです。 執筆の過程で小さな問題にぶつかりました:タイポグラファー自体がutf8の行を必要とし、フィルターチェーンが使用されている場合(段落転送の場合:
{{portfolio.text | linebreaks | typographus}} )、エラーが
生成されます。 そのため、フィルター自体には、必要に応じて文字列のタイプとutf8の変換のチェックがあります。
私は少ししわくちゃになったことを学びました-私は最近Djangoを使用します-どこかで間違えたら-私を修正してください タイポグラファーの
イゴールに再び感謝します。