我有需要,我确信其他开发人员必须拥有的东西,StackOverflow确实有。
我正在建立一个网站来发布代码示例,这些文章是由我通过管理系统编写的,但也可能是前端注册用户。
拥有用户可以发布文章的WYSIWYG编辑器。显然它可能是一段文字,一些标题......不是问题因为TinyMCE目前处理这个问题。 与文本混合将是代码示例,最好是代码标记。
所以我一直在玩TinyMCE。 我可以允许代码标记,但无法将其突出显示在代码标记中,但可以将其转换为预标记。不是问题。 所以粘贴:
<xsl:template match="*" mode="jsonObjectOrElementProperty">
<xsl:text>"</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>":</xsl:text>
<xsl:apply-templates select="." mode="jsonObjectProperties"/>
</xsl:template>
进入WYSIWIG并突出显示并选择Preformatted是好的,它将所有括号编码为&lt;和&gt;这很好。它存储在我的数据库中,然后就这样出现了;
<pre><xsl:template match="*" mode="jsonObjectOrElementProperty"><br /> <xsl:text>"</xsl:text><br /> <xsl:value-of select="name()"/><br /> <xsl:text>":</xsl:text><br /> <xsl:apply-templates select="." mode="jsonObjectProperties"/><br /> </xsl:template></pre>
但是在编辑时,所以用现有内容加载textarea;见HTML;
<textarea class="tinyMCE"><pre><xsl:template match="*" mode="jsonObjectOrElementProperty"><br /> <xsl:text>"</xsl:text><br /> <xsl:value-of select="name()"/><br /> <xsl:text>":</xsl:text><br /> <xsl:apply-templates select="." mode="jsonObjectProperties"/><br /> </xsl:template></pre></textarea>
TinyMCE重新编码所有括号并删除所有和任何基于XML的代码,脚本标记为无效元素,而不是将它们视为纯文本。
除此之外,它没有任何CDATA功能,因此忽略了某些部分......
我需要一个插件,因为我无法从头开始编写,我没有时间也没有预算。对于StackOverflow完全让我在创建这个问题时所做的事情! Good Stackoverflow
有没有人对TinyMCE这样做有什么好运? 我可以窃取/借用Stackoverflows吗?检查源代码无法看到它的插件,更多的是自定义构建的东西。 有没有人知道允许代码片段的任何其他格式化插件?
答案 0 :(得分:0)
Codemirror - 可能是您的解决方案吗?
答案 1 :(得分:0)
我认为你需要调整你的tinymce init设置valid_elements和valid_children(不要忘记你的属性)。