跳过解析某些标签
Skip parsing certain tags
有没有办法跳过对整个应用程序的某些标签的解析?例如。我的模板中有很多 <pre>
标签,我想跳过所有这些标签,而不是在每个地方无聊地插入 <#noparse>
标签。
如果您的模板中有很多不是 FreeMarker 插值的 ${}
-s,那就太不幸了。 (这最终必须由 FreeMarker 使用语法选项来解决。)对于转义个人 ${exp}
-s 有一些比 <#noparse>${exp}</#noparse>
:
更短的 hack
<#macro $>${'$'}{<#nested>}</#macro>
然后
<@$>exp</@>
或
${'$'}{exp}
如果您提供自己的 TemplateLoader
实现(另请参阅 Configuration.setTemplateLoader
),也可以 post 动态处理模板(即加载模板时),它包装了真实的 TemplateLoader
并过滤了它创建的 Reader
。因为在那个级别你正在使用普通的 Reader
-s,解析由你决定,但是正确地做这并不是那么微不足道。有了它,甚至可以用 <#noparse><pre>...</pre></#noparse>
替换 <pre>...</pre>
,尽管我认为这种魔法会让其他开发人员感到困惑。所以如果你沿着 post-processing 路径走下去,我建议使用类似 <#pre>...</#pre>
的东西(一个假的 FTL 标签,但至少很明显这里发生了一些额外的事情)。
有没有办法跳过对整个应用程序的某些标签的解析?例如。我的模板中有很多 <pre>
标签,我想跳过所有这些标签,而不是在每个地方无聊地插入 <#noparse>
标签。
如果您的模板中有很多不是 FreeMarker 插值的 ${}
-s,那就太不幸了。 (这最终必须由 FreeMarker 使用语法选项来解决。)对于转义个人 ${exp}
-s 有一些比 <#noparse>${exp}</#noparse>
:
<#macro $>${'$'}{<#nested>}</#macro>
然后
<@$>exp</@>
或
${'$'}{exp}
如果您提供自己的 TemplateLoader
实现(另请参阅 Configuration.setTemplateLoader
),也可以 post 动态处理模板(即加载模板时),它包装了真实的 TemplateLoader
并过滤了它创建的 Reader
。因为在那个级别你正在使用普通的 Reader
-s,解析由你决定,但是正确地做这并不是那么微不足道。有了它,甚至可以用 <#noparse><pre>...</pre></#noparse>
替换 <pre>...</pre>
,尽管我认为这种魔法会让其他开发人员感到困惑。所以如果你沿着 post-processing 路径走下去,我建议使用类似 <#pre>...</#pre>
的东西(一个假的 FTL 标签,但至少很明显这里发生了一些额外的事情)。