我最近在Freemarker中启用了自动转义,并将我的.ftl
文件更改为.ftlh
,以确保它们以HTML格式/转义格式化/转义。但是,这意味着任何内联<script>
或<style>
标记都会转义HTML,这不是我想要的。我可以通过这样做解决问题:
<script>
[#outputformat "JavaScript"]
jQuery(".stuff").blah();
[/#outputformat]
</script>
这很有效,但是在每个脚本标记的内容周围添加这个包装似乎要做很多工作。似乎有一个足够智能的OutputFormat来检测脚本/样式标签并使用正确的格式,或者具有与上述相同效果的自定义标签。类似的东西:
[@smartscript]
jQuery(".stuff").blah();
[/@smartscript]
这样的事情(或解决这个问题的其他任何事情)是否已经存在?我找不到任何东西。
答案 0 :(得分:1)
除了预处理自定义TemplateLoader
中的模板(包装另一个TemplateLoader
并过滤其返回的Reader
)之外,目前还没有解决方法。宏也无济于事,因为#outputformat
没有运行时效果。它只是将FTL源代码的各个部分与输出格式相关联。