본문 바로가기
웹 코딩/티스토리

코드블럭 - 줄번호 표시 (라이트 버전)

by 알릭2 2020. 8. 25.

난 다 필요없고 단순히 줄번호만 표시되면 좋겠다!! 하시는 분들을 위해 준비했습니다.

 

요런 느낌? ㅋ

 

설치법은 풀버전과 동일합니다. 그저 소스가 매우 짧을 뿐

 

<style>
/* optional */
pre[data-ke-type='codeblock'] {
	white-space: pre-wrap;
	word-break: break-word;
}
/* required css */
pre[data-ke-type='codeblock'] > code {
	position: relative;
	padding-left: 50px;
}
.ln[data-ln]::before,
.ln[data-ln--before]::before {
  content: attr(data-ln);
}
pre[data-ke-type='codeblock'] > code .ln, 
pre[data-ke-type='codeblock'] > code .lnBorder {
	box-sizing: border-box;
	position: absolute;	
	left: 0;
	display: inline-block;
	width: 40px;	
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
pre[data-ke-type='codeblock'] > code .lnBorder {
	z-index: 1;
	top: 0;
	bottom: 0;
	width: 40px;
	border: 1px solid transparent;
	border-right-color: #ccc;
}
pre[data-ke-type='codeblock'] > code .ln {
	z-index: 0;
	padding-right: 10px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: right;
}
</style>
<script>
//addon starts
window.addEventListener("load", function() {
  var codes = document.querySelectorAll('pre > code');
  for(var i=0; i < codes.length; i++){
    var ln = 1;
    var code = codes[i];
    var color = window.getComputedStyle(code, null).getPropertyValue("color");
	code.innerHTML = '<div class="lnBorder" style="border-right-color:'+color+';"></div><span class="ln" style="color:'+color+';" data-ln="'+(ln++)+'"></span>' + code.innerHTML.replace(/\n/g, function(n) { 
		return n + '<span class="ln" style="color:'+color+';" data-ln="'+(ln++)+'"></span>';
	});
	if (code.lastChild.dataset && code.lastChild.dataset.ln) {
		code.removeChild(code.lastChild); 
	}		
	if (code.lastChild.nodeName == "SPAN") {
		if (code.lastChild.lastChild.dataset && code.lastChild.lastChild.dataset.ln) {
			code.lastChild.removeChild(code.lastChild.lastChild); 
		}
	}
  } //end of forloop
});
//addon ends
</script>

 

풀버전과의 기능적 차이는, 

  • 줄번호 감추기 불가
  • 줄강조 불가
  • 시작번호 지정 불가
  • 긴 코드가 줄바꿈되었을 시, 들여쓰기(indent)가 유지되지 않음
  • 선별적 적용 안됨

더 많은 기능은 아래 글 참고

2020/08/25 - [웹 코딩/티스토리] - 코드블럭 - 줄번호 표시하기 (풀버전)

댓글