2012-02-09 61 views
3

我有需要,我确定其他开发人员必须拥有的和StackOverflow的确有。所见即所得 - 文本和代码编辑器

方案

我建立一个网站,邮编例子,由我通过一个管理系统编写的,但也可能是前端reg'd用户的文章。

使命

为了有一个所见即所得的编辑器,用户可以发表文章。显然,它可能是一段文字,一些标题......并不是问题,因为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> 

到所见即所得和高亮显示以及选择预格式化就可以了,它所有的括号编码到<和>,这是完全正常的。它存储在我的数据库中,然后出来;

<pre>&lt;xsl:template match="*" mode="jsonObjectOrElementProperty"&gt;<br /> &lt;xsl:text&gt;"&lt;/xsl:text&gt;<br /> &lt;xsl:value-of select="name()"/&gt;<br /> &lt;xsl:text&gt;":&lt;/xsl:text&gt;<br /> &lt;xsl:apply-templates select="." mode="jsonObjectProperties"/&gt;<br /> &lt;/xsl:template&gt;</pre> 

但是编辑时,所以加载textarea与现有的内容;看HTML;

<textarea class="tinyMCE"><pre>&lt;xsl:template match="*" mode="jsonObjectOrElementProperty"&gt;<br /> &lt;xsl:text&gt;"&lt;/xsl:text&gt;<br /> &lt;xsl:value-of select="name()"/&gt;<br /> &lt;xsl:text&gt;":&lt;/xsl:text&gt;<br /> &lt;xsl:apply-templates select="." mode="jsonObjectProperties"/&gt;<br /> &lt;/xsl:template&gt;</pre></textarea> 

TinyMCE的重新编码所有的括号,并删除所有与任何基于XML的代码,脚本标记为非有效元素,而不是把他们当作纯文本。

添加到这一点,它有没有那种CDATA功能,以便它忽略了一些地方...

我需要一个插件,因为我不能从头开始写,我没有带的时间或预算。对于StackOverflow究竟是什么让我在创建这个问题时做的事情! 好#1

问题

有没有人曾与这样对TinyMCE的任何运气? 我可以窃取/借用Stackoverflows吗?检查源代码看不到它是一个插件,更多是一个定制的东西。 有谁知道任何其他格式插件,允许代码片段?

+0

不...这不是一个产品建议的要求。至少在 – JSON 2014-06-21 11:43:55

回答

0

Codemirror - 可以为你解决吗?

+0

谢谢,我已经看了代码镜像,但是如果你写了一些东西,比如你在这里做一个问题......你不想标记你自己的所有文本内容吗? – 2012-02-10 10:17:56

+0

那么,这就是为什么Stackoverflow使用Markdown语法而不是WYSIWYG编辑器...... – mb21 2012-06-24 11:20:38

0

我想你需要调整你的tinymce init设置valid_elements和valid_children(别忘了你的属性)。

+0

是的,但我不想为所有可能的标签执行此操作,尤其是XML可以是任何标签名称。 – 2012-02-10 10:14:20

+0

取消激活清理设置,然后 – Thariama 2012-02-10 11:02:07

+0

取消激活清理设置?有这样的事吗?!?!?关闭Google搜索... 嗯不知道,仍然需要确保它仍然是有效的XML,因为它存储在数据库中的XML字符串中,并在输出中输出到更大的XML文档中,以便将XSLT转换为xHTML。 http://www.tinymce.com/wiki.php/Configuration:cleanup “它也确保它是一个正确的XHTML文档,所有标签都关闭,”在正确的地方以及类似的东西。“ – 2012-02-10 19:16:26