2012-02-09 63 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