2011-02-24 10 views
4

GeSHi에서 CKeditor를 사용하기를 바랬지 만 큰 어려움을 겪고 있습니다. 새로운 콘텐츠를 만든 다음 CKeditor를 사용하지 않도록 일반 HTML 만 작성하면 코드 조각을 <pre> </pre> 태그로 묶을 수 있습니다. 그러면 저장하면 GeSHi가 그 일을 멋지게 처리하고 스 니펫이 멋지게 보입니다.드루팔 (Drupal : CKeditor에서 GeSHi를 사용하려고 시도했습니다.

그러나 그 내용을 편집하려고하면 CKeditor는 코드 형식을 사용하여 많은 문자를 특수 이스케이프 시퀀스로 대체하고 HTML 태그라고 생각하는 것을 닫으려고하지만 실제로는 C++ 포함 파일입니다. #include <iostream>은 CKeditor가 텍스트 끝에 </iostream>을 배치하게합니다. 그렇다면 최상의 시나리오에서 내 코드는 나빠질 것입니다.

다른 경우에는 동작이 정말 이상합니다. 페이지가로드되지 않고 대신 서버 오류가 발생합니다. 서버 측에서 CKeditor가 코드 스 니펫에 수행 한 일부 변경으로 인해 GeSHi 충돌이 발생하거나 그 반대의 경우가 있다고 가정합니다. 다만 어떤 변화를 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; 
} 

그러나 다음은

내가 일반 텍스트 편집기에서이 그대로 입력 한 후 정확한보고 및 <pre> 태그에 동봉 된 코드의 예 조각입니다

// 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 포맷을 좋아합니다. 또한, 아래 답변/코멘트에 따라, 나는 이미 here에 설명 된 Peter Petrik의 접근법을 시도해 왔으며, 충돌하는 행동은 여전히 ​​발생했다.

감사합니다. 이

답변

1

봐? 입력 형식 (관리자/설정/필터)을 확인하고 사용 된 형식이 추가 필터가있는 코드를 엉망으로 만들지 않았는지 확인하십시오. 또한 허용 된 HTML 태그를 확인하십시오.

+0

미안 해요, 나는 페트 릭의 방법을 이미 시도한 것을 언급하는 것을 잊었습니다. 그것은 나를 위해 작동하지 않았다. 나는 "Toolbar button theme"섹션을 올바르게 수행했는지 확신 할 수 없기 때문에 다시 시도 할 것입니다. 그는 코드가 들어갈 CKeditor 테마의 세 가지 CSS 파일을 지정하지 않습니다. 그러나 CKeditor 또는 GeSHi가 파싱 코드에서 충돌하는 것에 영향을 미치지 않습니다. 문제의 일부는 문자열 교체 목록이 완전하지 않다는 것입니다. CKeditor가 삽입 한 '& nbsp'처리 나 CPP include 문을 HTML 태그처럼 처리하지 않는 것 같습니다. 감사. – SSilk

+0

OK, 나는 Petrik의 방법을 다시 시도했고, 이번에는 작동하도록했다. 내가 뛰어 넘었거나 오해 한 몇 가지 작은 세부 사항이있었습니다. 지금은 효과가있는 것으로 보입니다. 감사. – SSilk

5

드루팔/CKEditor 버전 ckeditor-and-geshi-filter/기 GeSHi를 사용하고 도움이 될 수 있습니다 -이에서

+0

저는 Drupal 6.20, CKEditor 6.x-1.2, GeSHi 6.x-1.4를 사용하고 있습니다. 입력 형식 -> 전체 HTML에서 HTML 교정기, 줄 바꿈 변환기 및 URL 필터와 함께 GeSHi가 활성화됩니다. Rearrange에서 위에서 아래로의 순서는 URL, HTML Corrector, Line Break, GeSHi입니다. 위의 변화가 필요합니까? 감사. – SSilk

+0

그냥 안전을 위해 줄 바꿈 변환기와 HTML 교정기를 해제합니다. GeSHi 필터가 가장 높은 순서인지 확인하십시오. 실행중인 CKEditor의 버전 (Drupal 모듈이 아니라 CKEditor 라이브러리 버전). –