いくつかのオプションに基づいて 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が必要です。
これを達成するためのよりきちんとした方法はありますか?
助けてくれてありがとう。