速度解析+全局变量与宏



在我的项目中,我有很多html代码块,我在不同的地方使用略有变化。例如,我有一个代码块定义了一个信息横幅,但文本和配色方案是不同的。

我看到两种方法来"包含"。在我的主模板中:

1。

#set( $infoBannerText = "This is an info banner..." )
#set( $infoBannerColor = "YELLOW" ) ## predefined map with color-related properties
#parse( "info-banner" )

  1. 如果之前已经定义了#macro( info_banner $infoBannerText $infoBannerColor ):
#info_banner( "This is an info banner..." "YELLOW" )

我看到以下优点/缺点:第二种方法在缺少变量定义或无意中覆盖变量方面更加健壮。而第一个具有更好的性能,并且允许更清晰的可重用部件结构,我可以将其存储在单个文件中。使用宏给人的感觉是,我最终会得到一个缺乏清晰度的大宏文件。

不知何故,我更喜欢第一个解决方案,但想知道什么是"最佳实践"。或者你有什么经验

您可以混合使用这两种方法:

#macro(info_banner, $infoBannerText, $infoBannerColor)
#if(!$infoBannerText) Missing banner text! #end
#if(!$infoBannerColor) Missing banner color! #end
#parse('info-banner')
#end
#info_banner( "This is an info banner..." "YELLOW" )

我不认为这两种方式有任何性能问题。一个好的做法是将所有解析过的块收集到某个/inc/子文件夹中,这样它们就不能作为顶级模板被直接调用。

最新更新