pystacheで使ってはいけない文字列。

pystacheは、ヒゲテンプレートエンジンMustacheのPython版なのですが、あるファイルをpystacheを使うとコケる、という問題に遭遇しました。

$ python mt2rest.py data/mkouhei.txt
Traceback (most recent call last):
  File "mt2rest.py", line 201, in <module>
    print(o.render().encode('utf-8'))
  File "/usr/lib/python2.7/dist-packages/pystache/view.py", line 110, in render
    return Template(template, self).render(encoding=encoding)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 42, in render
    template = self.render_sections(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 78, in render_sections
    insides.append(self.render(inner, item))
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 42, in render
    template = self.render_sections(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 78, in render_sections
    insides.append(self.render(inner, item))
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 43, in render
    result = self.render_tags(template, context)
  File "/usr/lib/python2.7/dist-packages/pystache/template.py", line 96, in render_tags
    func = modifiers[tag_type]
KeyError: u'#'

入力元のファイルは、はてなダイアリーのエクスポートデータだったのですが、コケていたのは この記事 。原因は”{{“と”}}”でした。納得。そりゃエスケープしないとアカンすな。