0

いくつかのオプションに基づいて YAML ファイルをレンダリングしたい cookiecutter テンプレートがあります。

簡単な例として、レンダリングされた YAML ファイルが次のようになるとします。

supported_databases:
  - mysql
  - postgres

そして、私のcookiecutter JSONは次のようになりました:

{
  "mysql": ["yes", "no"],
  "postgres": ["yes", "no"]
}

if私の YAML ファイルは、4 つの有効な組み合わせすべてをサポートするために、恐ろしく s でいっぱいになります。

{%- if cookiecutter.mysql == 'yes' or cookiecutter.postgres == 'yes' %}
supported_databases:
{%- if cookiecutter.mysql == 'yes' %}
  - mysql
{%- endif %}
{%- if cookiecutter.mysql == 'yes' %}
  - postgres
{%- endif %}
{%- endif %}

if両方のオプションが「いいえ」の場合に無効な YAML がレンダリングされるのを防ぐために、outerが必要です。

これを達成するためのよりきちんとした方法はありますか?

助けてくれてありがとう。

4

1 に答える 1