我有一个 TinyMce 与 Twig 结合的问题,
我正在尝试将带有 Twig 标签的 html 粘贴到 tinyMce。 (使用原始 html)
这是我想要的结果:
<table>
<thead>
<tr>
<th></th>
{% for period in report.periods %}
<th>
{% set per = "last_" ~ period %}
{{ per | trans({}, "admin") }}
</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for category in report.categories %}
<tr>
<td>
<b>{{ category | trans({}, "admin") }}</b>
</td>
{% for period in report.periods %}
<td>
{{ data[category][period] }}
</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
这是我将它粘贴到 tinyMce 并验证我的 HTML 时的样子
<p>{% for period in report.periods %} {% endfor %} {% for category in report.categories %} {% for period in report.periods %} {% endfor %} {% endfor %}</p>
<table>
<thead>
<tr>
<th></th><th>{% set per = "last_" ~ period %} {{ per | trans({}, "admin") }} </th>
</tr>
</thead>
<tbody>
<tr>
<td><b>{{ category | trans({}, "admin") }}</b></td>
<td>{{ data[category][period] }}</td>
</tr>
</tbody>
</table>
如您所见,tinyMce 将我的 Twig 标签移到 table 外并打破了我想做的所有逻辑。
我已经直接在官方网站上尝试了 tinyMce (
cleanup : false
) 和几个版本 (3.x, 4.x) 的几个配置。但它也不起作用
感谢您的帮助。
最佳答案
这对我来说看起来很复杂,因为在 </td>
和 <td>
之间放置一些东西会导致无效的 HTML。
TinyMCE 是一个 WYSIWYG HTML 编辑器,因此它会尝试解释您的 HTML 以呈现它,因为它会产生结果;在这一步,您的原始 HTML 已损坏。尝试在任何浏览器中呈现以下代码:
<table border=1>
<tr>
<td>test</td>
hello
<td>test</td>
world
<td>test</td>
</tr>
</table>
你会得到类似的东西:
表范围之外的代码已放置在上面,这种行为看起来就像您在验证 TinyMCE 字段时获得的 HTML。
由于 Twig 文件只是模板而不是最终文档,因此没有将它们导入 WYSIWYG 编辑器的逻辑,因为无法呈现无效的 html。我建议你用 codemirror used in jinja mode 替换 TinyMCE 以获得合适的 Twig 编辑器。
关于symfony - 如何在 TinyMCE 中编写 Twig 标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24163660/