기록 #01: 컴퓨터/팁

구문 강조 스크립트 자동 적용

JinH 2013. 2. 26. 02:13

글에 <code> 태그를 사용하면서 구문강조 스크립트를 쓸 때 매번 드는 의문점이 있었으니... 그것은 바로 <code> 태그를 사용할 때는 100%> 구문강조가 필요한 상황인데도 매번 수작업으로 클래스를 지정해줘야 한다는 것.

예를 들어 google-code-prretify 를 사용하면 html편집기로  <code>나  <pre> 태그에  class="prettyprint" 속성을 지정해 줘야함.

이 번거롭기 짝이 없는 작업에서 탈출하기 위해 걍 쿨하게 모든 <code> 태그마다 자동으로 클래스를 추가하는 묘안을 생각해 내버린 거시여따. 나 좀 머리 좋은 듯 ㅎㅎ

예제

#0: .js

function prettyprint_class_add() { $('code').addClass('prettyprint'); $('code > xmp').addClass(function(){$(this).parent().removeClass('prettyprint'); return 'prettyprint';}); $('code > pre').addClass(function(){$(this).parent().removeClass('prettyprint'); return 'prettyprint';}); $('pre > code').removeClass(function(){$(this).parent().addClass('prettyprint'); return 'prettyprint';}); } $(window).load(function() { prettyprint_class_add(); prettyPrint(); });


#1: 인라인 <code>

인라인 요소에서는 function jinh() { visitor++; } 이렇게.


#2: <code> 내부의 <xmp>

// 블록 요소에서는 function jinh() { visitor++; } //이렇게.


#3: <code> 내부의 <pre>

// <pre> 요소 내부에서는
function jinh() { 
	visitor++; 
}
// 다른 태그가 작동해서 <xmp>를 선호함.


#4: <pre> 내부의 <code>

// <code>가 <pre> 안에 포함되어도
function jinh() { 
	visitor++; 
}
// 알아서 블록 요소로 얍얍.

야 편리하다!


끝.