介绍
我正在创建一个模板构建器,用户可以使用它来为应用程序构建模板。用户可以拖放多个块,例如文本块和“自定义代码”块。该模板将在应用程序中解析。目前,模板可能看起来像这样:
<section>
<div class="row">
<div class="col-sm-12">
<section data-type="code">
<#code></#code>
</section>
</div>
</div>
<div class="row">
<div class="col-sm-12" data-type="container-content">
<section data-type="text">
<u>Lorem</u> ipsum
</section>
</div>
</div>
</section>
因此,该模板包含两个元素(请参阅data-type
属性):一个部分是自定义编写的代码。在这里,用户编写了自定义的代码,包括Apache Freemarker代码。第二部分是自定义编写的文本。
情况
上述代码将以两种不同的方式使用。
- 完全相同的代码将在使用模板的应用程序内使用(因此他们应该能够写入Freemarker代码,因为这将被解析)。
- 在我的网站上,用户应该可以编辑此模板。因为代码存储在数据库中,如上所述,存在问题:
问题
当我在Web界面中直接呈现模板时,text
部分将使用<u></u>
标记正确呈现,但code
部分也将呈现为HTML,这可能会导致奇怪的行为(例如,freemarker符号</#list>
被自动转换为<!--#list-->
)。
但是,如果我只呈现全文本模板,则带有<u></u>
标记的text
部分也将不会呈现。
预期结果
我想使用JavaScript/jQuery读取模板变量,然后将每个data-type
作为html解析,并将text
作为html,将code
作为文本。
我该如何遍历模板并执行此操作?
<#code>codeExample</#code>
并给出结果和期望结果吗?(在SO代码块中而不是文本说明)。因为我以前从未使用过apache freemarker。 - plonknimbuzz<div class="containerThemeBuilder"><section>restYourExampleAbove</section></div>
抛出到ajax中,使用$(".containerThemeBuilder").html()
。 - plonknimbuzz<#code></#code>
内的代码或者它使用Freemarker的问题;而是某些字符的组合不被支持。请参考这个链接:https://jsfiddle.net/akzL6cee/2/。因此,它将`</#code>转换为
<!--#code-->`(请查看源代码)。这就是您需要的信息吗? - Jordy