我有一个 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/

10-09 08:26
查看更多