对于以下几乎没有什么不同的代码,我有一些宏用于定义不同种类的按钮
{# normal button #}
{% macro btn() %}
<a
class="btn waves-effect waves-light"
role="button"
>
{{kwargs.get('text')}}
</a>
{% endmacro %}
{# rounded button #}
{% macro btn_round() %}
<a
class="btn waves-effect waves-light btn-rounded"
role="button"
>
{{kwargs.get('text')}}
</a>
{% endmacro %}
{# outline button #}
{% macro btn_outline() %}
<a
class="btn waves-effect waves-light btn-outline-primary"
role="button"
>
{{kwargs.get('text')}}
</a>
{% endmacro %}
{# outline rounded button #}
{% macro btn_outline_round() %}
<a
class="btn waves-effect waves-light btn-rounded btn-outline-primary"
role="button"
>
{{kwargs.get('text')}}
</a>
{% endmacro %}
从一个宏到另一个宏,它们几乎相同,只是一个类稍有不同,例如。 btn()
与btn_round()
。好像我在重复自己很多次。
因此,我正在寻找如何将一个宏扩展到另一个宏。我期望这样的事情
{# normal button #}
{% macro btn() %}
<a
class="btn waves-effect waves-light"
role="button"
>
{{kwargs.get('text')}}
</a>
{% endmacro %}
{# rounded button #}
{% macro btn_round() %}
extend macro btn() add class btn-rounded
{% endmacro %}
{# outline rounded button #}
{% macro btn-outline-round() %}
extend macro btn_round add class btn-outline-secondary
{% endmacro %}
我不太确定这是否可行,但我希望我的代码缩短并进行维护,这是“ DRY”原则。谢谢