Я надеялся использовать CKeditor с GeSHi, но у меня возникли серьезные трудности.Что происходит, если я создаю новый фрагмент контента, затем отключаю CKeditor, поэтому я просто пишу простой HTML, я могу заключить фрагмент кода в теги
.Если я затем сохраню, GeSHi прекрасно справится со своей задачей, и фрагмент будет выглядеть хорошо.
Однако, если я тогда попытаюсь отредактировать этот фрагмент контента, CKeditor не справится с форматированием кода, в частности, заменяя многосимволы со специальными escape-последовательностями, а также попытки закрыть то, что они считают тегами HTML, но на самом деле являются включаемыми файлами C ++, например, #include <iostream>
заставит CKeditor поместить </iostream>
в конце текста.Тогда в лучшем случае мой код просто выглядит плохо.
В других случаях поведение действительно странное: страница не загружается и выдает ошибку сервера.Я предполагаю, что это связано с тем, что на стороне сервера некоторые изменения, внесенные CKeditor в фрагмент кода, приводят к сбою GeSHi или наоборот.
Вот пример кода, который выглядел правильно после того, как я дословно ввел его в текстовом редакторе и заключил его в теги <pre>
:
// All rights reserved
// Email: firstname.lastname@url.com
//////////////////////////////////////////////////////////////////////
#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;
}
Однако, просто нажав Edit, затем снова Saveбез каких-либо изменений заставляет CKeditor бездельничать с кодом, который теперь выглядит следующим образом:
// All rights reserved
// Email: firstname.lastname@url.com
//////////////////////////////////////////////////////////////////////
#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.Кроме того, согласно ответу / комментарию ниже, я уже попробовал подход Питера Петрика, обрисованный в общих чертах здесь , и поведение сбоя все еще происходило.
Спасибо.