跳过解析某些标签

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 标签,但至少很明显这里发生了一些额外的事情)。