emptypage.jp

Visitors’ Book

翻訳について

先日texttemplateのことを知り、便利に利用させて頂いております。

texttemplateのページの中で、今のテンプレートの記述法が好きではなく
ttp://webpy.org/templetor
この考えに同意するとかかれておりますが、こちらの文章を翻訳する予定などございませんでしょうか?

私はDjangoも利用しているので現在の記述法が慣れているという面もあるのですが、是非そのページの内容を読んでみたいと思っております。

また、texttemplateのstring.Templateのリンクが切れております。
ttp://docs.python.jp/2/library/string.html?highlight=string.template#string.Template
こちらになるでしょうか?

本文にURLを入れることができないという事ですので、頭のhを外しております。


こんにちは。リンク切れご指摘感謝です、2.7 のドキュメントのほうに張り直しました!

web.py のページもずいぶん更新されて、テンプレート・エンジンそのもののページは今は webpy.org/docs/0.3/templetor でしょうか。さすがに開発中のメモのようになってしまった文書をいま翻訳してもなー、と思いますので、残念ながらこの先も訳さないと思います。

最初のほうに、作者の Aaron Swartz が箇条書きで自分の作ろうとしているテンプレート・エンジンの要件を書いていますので、そこだけ簡単にご紹介しますね。彼がテンプレート・システムに求めていたのは、

1. 見苦しくないこと。<%#foo#%> みたいなのはダメ。
2. できるだけ Python の語彙・文法を採用。
3. 現実の処理に耐えうる表現力。
4. どんなテキスト形式にでも使えること。HTML/XML 専用じゃない。

の4点、また実装上の要件として

1. 第三者のユーザーがテンプレートを書いても大丈夫なようにサンドボックス化されていること。
2. シンプルで速いこと。

を挙げています。その上での結論がそれ以下の文法設計というわけです。以降は見本のコードを見ればなんとなく推測できるんじゃないでしょうか。

Python の文法をテンプレート・システムに入れようとすると、考えどころはやっぱり改行とインデントの扱いですね。処理対象のテキストも改行やインデントでわかりやすく整形しときたいと思うと、それとどう折り合いをつけるのか……。僕はテンプレート側のインデントの都合優先でマークアップで囲う方式にしちゃいましたが……。

コメントありがとうございます、なにかありましたらまたどうぞお気軽に(要望等は応えられるかはわかりませんが……)!


お返事有難うございます。
texttemplate.pyは非常に手軽で便利なテンプレートシステムだと思っておりますので、texttemplateのページにたどり着いた方に少しでも多くの情報を仕入れていただきたいと思い、リンク切れをご連絡させて頂きました。

翻訳については、今までにいくつかのテンプレートエンジンを触ったことがあるのですが、テンプレートエンジンごとに文法が大きく異なることもあり、どのような思想の元設計されているのか興味を持ち翻訳のご予定は無いか質問させて頂きました。
現在ではPython関係のマニュアルも日本語訳が多く出てきておりますので、そちらを読ませて頂こうかと思います。Djangoのテンプレートタグのマニュアルにも簡単な設計思想の記述があり勉強になっております。

また、パブリックドメインという事でしたので、私が必要になったinclude機能を自分用に付け加えたものを
https://github.com/w32jp/OneTemplate.py
こちらにて公開させて頂きました。

本来であれば既存のブロックタグに付け加えればいいかとも思ったのですが、プログラミング能力もPythonの理解力もまだ低く、新しくタグを追加する形になっております。
https://github.com/w32jp/OneTemplate.py/commit/d8a46c01d8062217d4fb702aba601304ce4ef5ec

今後もtexttemplate.pyを更新頂ければと思っております。有難う御座いました。


たしかに include は欲しいときありますね……。
github 見ましたが、短くかつ高効果っぽくてよさそうですね。
自分でちょくちょく使ってるので今後もアップデートはしていきますよ。
ありがとうございました!


御返事有難うございました。

先のコメントに書き込み忘れていたのですが、現在のinclude文は"UTF-8"にハードコードしているので、他のエンコードだと都度書き換えないといけないのが難点です。
どのようにしてエンコードを持ってくればよかったのかがわからなかったので、今後共に勉強させて頂きます。

ありがとうございました。


ああ、ハードコーディングしてるなーと思いながら見てました(笑)。
動かしてないので確信はないんですけど、取り込む側のテンプレートのどこかで {% encoding %}...{% end %} 指定してあれば判別して自動でデコードするんじゃないですか?


この話題にコメントする Post New Comment

新しい話題はトップページから投稿できます。

emptypage.jp