実際には、このようなテキストフィールドに参照を格納する場合、基本的に単純なマークアップ言語を使用して参照を格納しています。
この場合、テンプレートはこれを行う場所になると思います。
残念ながら、フィルタを作成してコンテキスト変数に書き込む方法はありません。ところで
{% output_with_references article_content myreferencesvar %}
[snip]
<ul>
{% for ref in myreferencesvar %}
<li><a name="{{ ref.id }}">{{ ref.authors }}, {{ ref.year }}</a></li>
{% endif %}
</ul>
:は、フィルタを使用しているページのコンテキストに記述する方法ががあれば、私は」だからではなく、フィルタを使用して、あなたは、何かのようにタグを使用する必要があるとしていますそれについて知りたいです。
更新
それを実装するには、次のようなものを使用したい:これだけを確認するために、返信用
from django.template import Library, Node, TemplateSyntaxError
register = Library()
class OutputWithReferencesNode(Node):
def __init__(self, input, ref_varnam='references'):
self.input = input
self.ref_varnam=ref_varnam
def render(self, context):
output = self.input
references = []
# process self.input
context[self.ref_varnam] = references
return output
@register.tag
def output_with_references(parser, token):
try:
fnctn, input, ref_varname = token.split_contents()
except ValueError:
raise TemplateSyntaxError, "%s takes the syntax %s text_to_output references_variable_name" % (fnctn,)
return OutputWithReferencesNode(input, ref_varname)
こんにちは、おかげで:outputwithreferencesはmyreferencesvar(引数1 =マークアップでテキストを作成する必要があります引数2は新しい変数ですか?)、これをページのさらに下に使用できますか? –
はい、サンプルコードが追加されました。しかし、テストされていません。 –
マークアップの特定の構文に設定されていない場合は、既存のもの(MediaWiki http://en.wikipedia.org/wiki/Wikipedia:Citing_sourcesなど)を使用することを検討してください。次に、mwlib(http://code.pediapress.com/wiki/wiki/mwlib)を使用してマークアップを解析することができます。 –