mcpField
J
jinja2

jinja2

github.com/microsoft開発2.5k50 回インストール1 日前に更新
リポジトリ

jinja2 について

HTML、メール、設定ファイル、コード生成で Jinja2 を使う開発者向けの実践スキルです。環境の再利用、テンプレート構成、安全なレンダリングを扱います。

主な機能

  1. 01環境設定の再利用
  2. 02ファイル・パッケージ用ローダー
  3. 03テンプレート継承とカスタムフィルター
  4. 04自動エスケープとサンドボックス
  5. 05開発時の未定義変数チェック

活用シーン

  1. 01XSS リスクを抑えた HTML の描画
  2. 02テンプレート間でのレイアウト再利用
  3. 03信頼できないテンプレート定義への対応
  4. 04設定ファイルやコードの生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/microsoft/debugpy --skill jinja2

インストール後、Claude Code で/jinja2を入力して読み込まれたか確認します。

詳細

スキル:Jinja2

環境、フィルター、自動エスケープ、セキュリティなど、Jinja2でテンプレートをレンダリングする際のベストプラクティスです。

使用する場面

HTMLページ、メール、設定ファイル、コード生成など、Jinja2でテンプレートをレンダリングするときにこのスキルを適用します。

環境

  • jinja2.Environment(loader=..., autoescape=...) を一度作成し、再利用します。
  • ファイルベースのテンプレートには FileSystemLoader を、インストール済みパッケージには PackageLoader を使用します。
  • XSSを防ぐため、HTMLテンプレートでは autoescape=True を有効にします。

テンプレート

  • 出力には {{ variable }} を、制御フローには {% if/for/block %} を使用します。
  • レイアウトを再利用するには、テンプレート継承({% extends 'base.html' %})を使用します。
  • 再利用可能な変換処理には、カスタムフィルターを定義します。

セキュリティ

  • HTMLをレンダリングする際は、必ず autoescape=True を有効にします。
  • 信頼できないテンプレートには SandboxedEnvironment を使用します。
  • ユーザー入力をテンプレートコードとしてレンダリングせず、テンプレートデータとしてのみ扱います。
  • 自動エスケープが無効な場合は、|e フィルターを明示的に使用します。

注意点

  • Template(string) を直接使用しないでください。環境のローダーと設定を迂回してしまいます。
  • 未定義変数のエラーに注意してください。開発中は undefined=StrictUndefined を使用します。
  • テンプレート内の複雑なロジックは避け、表示に専念させます。

コメント