웹마스터 팁

안녕하세요 6년만인가요... 너무 오랫만에 와서 흔적 좀 남기려... 예전에도 자주 오지는 않았지만...

Code-Highlighter 새 버전 3.0.83은 줄바꿈이 안되는 모양입니다? (혹시 저만 그런줄 알고 있는 건 아니겠죠?)

가로 스크롤 바를 없애 보려고 애쓰다 보니... 이렇게 해서 줄바꿈을 하고 있습니다.

우연히 보게 된 그누보드에 적용하느라 여기 저기 찾아 다니면서 삽질하셨다는 그 분께 감사의 말씀을 드리며...

XE에 적용해 보니 이렇게 하면 되더군요.

 

1.선택해서 사용하시는 테마의 shCoreXXXX.css 파일을 열어서 이렇게 넣어 주세요.

xe/modules/editor/components/code_highlighter/syntaxhighlighter/styles/shCoreXXXXX.css
80
81
82
83
.syntaxhighlighter .line {
  white-space: pre-wrap !important;
  word-break: break-all !important;
}
줄번호는 다소 다를 수 있습니다. 그리고 word-break: 속성은 원하시는 것으로 바꾸시면 됩니다. (단어 단위로 줄바꿀 것인지...
글자단위로 줄빠꿈을 할 것인지 말이죠. 위의 경우는 글자 단위로 줄바꿈을 하게 됩니다)
 
normal : 기본값. 기본 줄 바꿈 규칙을 사용합니다.
break-all : 오버플로를 방지하기 위해 모든 문자에서 단어가 깨질 수 있습니다.
break-word : 오버플로를 방지하기 위해 임의의 지점에서 단어가 깨질 수 있습니다.
 

2.shCore.js 파일을 열어서 맨 끝에서 줄바꿈 하셔서 아래 스크립트를 넣어주세요.

xe/modules/editor/components/code_highlighter/syntaxhighlighter/scripts/shCore.js
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function lineWrap(){ 
    var wrap = function () { 
        var elems = document.getElementsByClassName('syntaxhighlighter'); 
        for (var j = 0; j < elems.length; ++j) { 
            var sh = elems[j]; 
            var gLines = sh.getElementsByClassName('gutter')[0].getElementsByClassName('line'); 
            var cLines = sh.getElementsByClassName('code')[0].getElementsByClassName('line'); 
            var stand = 15; 
            for (var i = 0; i < gLines.length; ++i) { 
                var h = $(cLines[i]).height(); 
                if (h != stand) { 
                    console.log(i); 
                    gLines[i].setAttribute('style''height:' + h + 'px !important;'); 
                
            
        
    }; 
    var whenReady = function () { 
        if ($('.syntaxhighlighter').length === 0) { 
            setTimeout(whenReady, 800); 
        else 
            wrap(); 
        
    }; 
    whenReady(); 
}; 
lineWrap(); 
$(window).resize(function(){lineWrap()});
우측의 코드는 CSS가 줄 바꿈 해주고 좌측의 번호는 자바스크립트가 줄 바꿈 해줍니다. 나중에는 어쩌면 가로 스크롤바가
보고싶어 질 수도 있겠습니다.
 
글을 다 적고 나니 뭔가를 빠트린 듯 희미한 불안감이... 사용하고 있는 것을 확인해 보고 빠진 것이 있으면 조속히 첨부 
하겠습니다.
태그 때문인가요? 김밥 옆구리 터지듯 내용이 게시판을 뚫고 나가 버리는 군요. 어찌할 바를 모르겠군요.
PS:튀어 나가는걸 잡아 보려니... 스타일 속성중에 필터링 되는 것이 있는 모양입니다. 수정 클릭하고 들어오면 overflow:hidden 가 사라지는군요.
등록 할 때는 남아 있는 것 같은데... 더 손대지 말아야지. ㅡㅡ
.
 
PS

3. Popup창 띄우고 미리보기 할 때 첫번째 화면에만 적용되는 문제


추가로 해 준 것이 있네요. Editor 에서 Code-highlighter를 띄웠을 때에 첫번째 미리보기 버튼 클릭에만 반응 하는데, 미리보기 할 때마다 적용되어서 보여지려면 Popup.html 파일에 한줄 넣어주세요.
xe/modules/editor/components/code_highlighter/tpl/popup.html
91
92
         window.SyntaxHighlighter.all();
         lineWrap();
줄번호는 다를 겁니다. 밑에서 몇번째 일텐데 window.SyntaxHighlighter.all(); 줄을 찾아 그 아래 lineWrap(); 줄만 넣어주세요.
기존코드는 창 크기가 조절되면 발생하는 Event에 물려 있기는 한데 미리보기 할 때마다 창을 조절하기는 번거롭겠습니다.
 
 
늘 평안들 하시길...
 
 
출처 : 참고페이지 : https://sir.kr/g4_tiptech/33028 (그누보드에 적용하는 방법을 올리신 분)
제목 글쓴이 날짜
역삼오피 ⦑오피.CLUB⦒ 역삼OP 역삼오피 역삼출장샵 역삼오피 koykoyah 2025.02.20
익산오피 익산출장안마 ⦑출장안마사이트.COM⦒ 익산OP 익산오피 익산오피 koykoyah 2025.02.20
안산오피 ⦑오피사이트.NET⦒ 안산오피 안산출장마사지 안산오피 안산OP koykoyah 2025.02.20
부평오피 ⦑오피사이트.NET⦒ 부평오피 부평출장마사지 부평오피 부평OP koykoyah 2025.02.20
신림오피 ⦑출장마사지안내.COM⦒ 신림오피 신림OP 신림건마 신림오피 koykoyah 2025.02.20
안산오피 안산출장안마 ⦑오피.CLUB⦒ 안산OP 안산오피 안산오피 koykoyah 2025.02.20
신촌오피 ⦑출장안마사이트.COM⦒ 신촌마사지 신촌오피 신촌오피 신촌OP koykoyah 2025.02.20
의정부오피 의정부OP ⦑오피쓰주소.COM⦒ 의정부휴게텔 의정부오피 의정부오피 koykoyah 2025.02.20
대전오피 ⦑오피.CLUB⦒ 대전오피 대전OP 대전건마 대전오피 koykoyah 2025.02.20
해운대오피 해운대오피 ⦑오피쓰주소.COM⦒ 해운대OP 해운대스파 해운대오피 koykoyah 2025.02.20
용인오피 용인출장안마 ⦑오피쓰.COM⦒ 용인OP 용인오피 용인오피 koykoyah 2025.02.20
서면오피 서면OP ⦑오피쓰주소.COM⦒ 서면휴게텔 서면오피 서면오피 koykoyah 2025.02.20
해운대오피 해운대오피 ⦑출장마사지안내.COM⦒ 해운대OP 해운대스파 해운대오피 koykoyah 2025.02.20
대구오피 대구오피 ⦑오피쓰.COM⦒ 대구OP 대구스파 대구오피 koykoyah 2025.02.20
안양오피 안양출장안마 ⦑출장안마사이트.COM⦒ 안양OP 안양오피 안양오피 koykoyah 2025.02.20
신촌오피 신촌OP ⦑오피사이트.NET⦒ 신촌휴게텔 신촌오피 신촌오피 koykoyah 2025.02.20
인천오피 인천오피 ⦑오피사이트.NET⦒ 인천OP 인천스파 인천오피 koykoyah 2025.02.20
울산오피 ⦑오피쓰주소.COM⦒ 울산마사지 울산오피 울산오피 울산OP koykoyah 2025.02.20
부산오피 부산출장안마 ⦑출장안마사이트.COM⦒ 부산OP 부산오피 부산오피 koykoyah 2025.02.20
제주도오피 제주도출장안마 ⦑출장안마사이트.COM⦒ 제주도OP 제주도오피 제주도오피 koykoyah 2025.02.20