BT

Rubyと.NETの安全なユーザー生成テンプレート

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2011年12月11日. 推定読書時間: 1 分 |

原文(投稿日:2011/12/06)へのリンク

ユーザーに多くの権限を与えることにフォーカスしている他のテンプレートエンジンとは違い、Liquidはユーザーができることを制限するように設計されている。ゴールは、サーバーのセキュリティを悪化させることなく、エンドユーザーが彼ら自身のテンプレートを作ることができるようにすることである。

Liquidはもともと、eCommerceプラットフォームであるShopifyとして作られ、2006年から製品利用されている。Tim Jones氏は、このエンジンをDotLiquidという名前で.NETに移植した。どちらのバージョンも、テンプレート以下のプラットフォームにアクセスすることができず安全である。その代わりに、“フィルタ”と呼ばれる主に単純な関数に制限された命令セットと条件ステートメントを利用する。Liquidマークアップシンタックスは、どちらのバージョンも同じだ。

描画テンプレートには、2つのステップがある。最初は、ソースコードが再利用可能なテンプレートオブジェクトにパースされる。そして、必要に応じてテンプレートの描画メソッドが呼ばれる。テンプレートは、Ruby/.NETの変数にはアクセスできず、キー/バリューペアのディクショナリを利用して渡す必要がある。

開発者は、彼らのユーザーが利用するフィルタを開発することができる。新しいフィルタの公開は、特定のテンプレートのみでも、登録して全体でも可能である。いずれにしろ、関数の本質は、受け付けて、文字列を返すことである。新しいタグは少々複雑で、初期化と描画フェーズの両方が必要である。幸運なことに、最も面倒な部分は、ベースクラスを呼び出すことで処理することができる。

Jürgen Bäurle氏は、さらに進めて、SharePointに特化したDotLiquid拡張の作り方を提示している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT