2011-02-24 58 views
4

我一直希望能夠使用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 &quot;stdafx.h&quot; 
#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,並且仍然發生崩潰行爲。

謝謝。

回答

1

看這 - 它可以幫助ckeditor-and-geshi-filter

+0

對不起,我忘了提及我已經試過Petrik的方法。它不適合我。我想我會再試一次,因爲我不確定我是否正確執行了「工具欄按鈕主題」部分。他沒有指定哪個CKeditor主題的三個CSS代碼應該進入。但是,這不應該影響解析代碼時CKeditor或GeSHi崩潰。我認爲問題的一部分是他的字符串替換列表不完整;似乎沒有處理由CKeditor插入的'&nbsp',或者CPP的結束包括陳述,就好像它們是HTML標記一樣。謝謝。 – SSilk 2011-02-24 19:52:32

+0

好的,我再次嘗試了Petrik的方法,並且這次得到了它的工作。有幾個小細節我跳過/被誤解了。它現在似乎正在工作。謝謝。 – SSilk 2011-03-05 22:14:05

5

的Drupal/CKEditor的的哪個版本/稱作GeSHi您使用的?我會驗證輸入格式(管理員/設置/過濾器),並確保您使用的任何格式不會使用其他過濾器混淆您的代碼。同時驗證允許的HTML標籤。

+0

我使用Drupal 6.20,CKEditor 6.x-1.2,GeSHi 6.x-1.4。在輸入格式 - >完整HTML下,啓用GeSHi以及HTML校正器,換行符轉換器和URL過濾器。在重新排列下,它們從上到下的順序是URL,HTML校正器,換行符,GeSHi。上述任何需要改變?謝謝。 – SSilk 2011-03-04 02:57:48

+0

爲了安全起見,我會關閉Line Break Converter和HTML Corrector。確保GeSHi過濾器的順序是最高的。 您運行的是哪個版本的CKEditor(不是Drupal模塊,而是CKEditor庫版本)。 – 2011-03-06 07:36:02

相關問題