我一直希望能夠使用Gentle的CKeditor,但我遇到了一些重大困難。會發生什麼,如果我創建了一個新的內容,那麼,禁用CKeditor,所以我只寫了純HTML,我可以在<pre> </pre>
標記中附上代碼snipptet。如果我然後保存,GeSHi做得很好,片段看起來不錯。但是,如果我嘗試編輯這段內容,CKeditor會使用代碼的格式化,特別是用特殊的轉義序列替換很多字符,並試圖關閉它認爲是HTML標記的內容,但是實際上是C++包含文件,例如#include <iostream>
將使CKeditor在文本末尾放置一個</iostream>
。然後,在最好的情況下,我的代碼看起來很糟糕。Drupal:試圖與CKeditor一起使用GeSHi
在其他情況下,行爲真的很奇怪:頁面不會加載,而是給我一個服務器錯誤。我認爲這是因爲,服務器端,CKeditor對代碼片段進行的一些更改正在使GeSHi崩潰,反之亦然。
下面是一個例子的代碼看起來正確後,我進入了它在純文本編輯逐字和<pre>
標誌包圍它:
// All rights reserved
// Email: [email protected]
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include <iostream>
#include <fstream>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
myClass::myClass()
{
m_lthing = NULL;
m_athing = NULL;
m_bthing = NULL;
m_lthingthing = NULL;
m_athingthing = NULL;
m_bthingthing = NULL;
}
然而,僅僅點擊編輯,然後再保存而不進行任何更改使得CKEDITOR更動的代碼,現在看起來是這樣的:
// All rights reserved
// Email: [email protected]
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include <iostream>
#include <fstream>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
myClass::myClass()
{
m_lthing = NULL;
m_athing = NULL;
m_bthing = NULL;
m_lthingthing = NULL;
m_athingthing = NULL;
m_bthingthing = NULL;
}</fstream></iostream>
沒有人對此有什麼想法,或者任何人都可以推薦一個很好的替代系統,我想現在使用?我並不是超級CKeditor或GeSHi,雖然我一直很滿意CKeditor到目前爲止,我喜歡GeSHi做MATLAB格式的事實。另外,根據下面的回答/評論,我已經嘗試了Peter Petrik的方法概述here,並且仍然發生崩潰行爲。
謝謝。
對不起,我忘了提及我已經試過Petrik的方法。它不適合我。我想我會再試一次,因爲我不確定我是否正確執行了「工具欄按鈕主題」部分。他沒有指定哪個CKeditor主題的三個CSS代碼應該進入。但是,這不應該影響解析代碼時CKeditor或GeSHi崩潰。我認爲問題的一部分是他的字符串替換列表不完整;似乎沒有處理由CKeditor插入的'&nbsp',或者CPP的結束包括陳述,就好像它們是HTML標記一樣。謝謝。 – SSilk 2011-02-24 19:52:32
好的,我再次嘗試了Petrik的方法,並且這次得到了它的工作。有幾個小細節我跳過/被誤解了。它現在似乎正在工作。謝謝。 – SSilk 2011-03-05 22:14:05