블로그 특성상 소스코드를 붙여넣는 경우가 많은데,
티스토리에는 자체 소스편집기(애디터)가 없기 때문에, 나는 주로 글상자에 소스코드를 붙여넣는 방법을 사용했다.
짧은 테스트 코드를 여러개 붙여 넣을때는 글상자를 이용한 방법이 그런데로 편한 방법이지만
긴 코드나 IDE 별로 복사한 소스코드의 구문 강조가 그대로 복사되지 않는 경우도 발생했다.
소스코드가 한화면에 들어올 정도의 길이라면 화면 캡쳐도 괜찮은 방법인 듯 하다.
검색을 해보니 사용할 만한 방법이 두 가지정도 있었다. (더 있겠지만, 검색을 더 하지 않았다.....)
두 가지를 써보고 주관적인 느낌을 작성해본다.
SyntaxHighlighter
1. 적용방법
1) SystaxHighlighter 홈페이지 접속 후, 다운로드
- SystaxHighlighter 홈페이지: http://alexgorbatchev.com/SyntaxHighlighter
- SystaxHighlighter 다운로드: http://alexgorbatchev.com/SyntaxHighlighter/download/
2) 다운로드 받은 파일을 압축 해제 후 Styles폴더, Scripts 폴더 안의 파일을 티스토리에 추가
- SyntaxHighlighter 압축 해제
- Scripts, Styles 파일 업로드 (관리페이지 - 꾸미기 - HTML/CSS - 파일업로드)
- 파일을 업로드 하면 파일의 경로는 './images/파일이름'이 된다.
3) 티스토리 Skin 소스코드에 SyntaxHighlighter 스크립트 추가 (관리페이지 - 꾸미기 - HTML/CSS)
- 관리페이지 - 스킨 - HTML/CSS 페이지로 이동하여 skin.html에서 /body 키워드 검색
- 아래의 코드를 </body>태그 위에 추가
<!-- syntaxhighlighter_3.0.83 적용 코드 시작 -->
<script type="text/javascript" src="./images/shCore.js"></script>
<script type="text/javascript" src="./images/shLegacy.js"></script>
<script type="text/javascript" src="./images/shBrushBash.js"></script>
<script type="text/javascript" src="./images/shBrushCpp.js"></script>
<script type="text/javascript" src="./images/shBrushCSharp.js"></script>
<script type="text/javascript" src="./images/shBrushCss.js"></script>
<script type="text/javascript" src="./images/shBrushDelphi.js"></script>
<script type="text/javascript" src="./images/shBrushDiff.js"></script>
<script type="text/javascript" src="./images/shBrushGroovy.js"></script>
<script type="text/javascript" src="./images/shBrushJava.js"></script>
<script type="text/javascript" src="./images/shBrushJScript.js"></script>
<script type="text/javascript" src="./images/shBrushPhp.js"></script>
<script type="text/javascript" src="./images/shBrushPlain.js"></script>
<script type="text/javascript" src="./images/shBrushPython.js"></script>
<script type="text/javascript" src="./images/shBrushRuby.js"></script>
<script type="text/javascript" src="./images/shBrushScala.js"></script>
<script type="text/javascript" src="./images/shBrushSql.js"></script>
<script type="text/javascript" src="./images/shBrushVb.js"></script>
<script type="text/javascript" src="./images/shBrushXml.js"></script>
<link type="text/css" rel="stylesheet" href="./images/shCoreEmacs.css">
<link type="text/css" rel="stylesheet" href="./images/shThemeEmacs.css">
<script type="text/javascript">SyntaxHighlighter.all();</script>
<!-- syntaxhighlighter_3.0.83 적용 코드 끝 -->
- 위의 소스 코드에서 중요한 코드는 테마적용 코드, 원하는 테마코드로 설정할 것.
(디폴트 코드는 shCore,css, shThemeDefault.css)
(테마코드 및 테마 미리보기: http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/)
2. 티스토리에 소스코드 삽입(작성)
1) 소스코드 삽입
- 소스코드는 Html 방식으로 글쓰기에서 아래 태그 안에 작성하고자하는(구문강조 테마를 적용하고자 하는) 소스코드를 삽입한다.
- 언어에 따라 코드 부분에서 brush 부분을 달리 해주면 된다.
<pre class="brush:py">
... 소스 코드 작성 ...
</pre>
- brush 종류 참조: http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/
3. 소스코드 삽입 결과
- python 소스코드 삽입 결과 예시
''' Created on 2015. 7. 1. @author: eunguru ''' import glob, os.path ndir = nfile = 0 # 합계 출력을 위한 변수 def traverse(dir, depth): global ndir, nfile for obj in glob.glob(dir + '/*'): if depth == 0: prefix = '|--' else: prefix = '|' + ' ' * depth + '|--' # 디렉토리인 경우 if os.path.isdir(obj): ndir += 1 print(prefix + os.path.basename(obj)) # 하위 디렉토리의 파일, 디렉토리 출력을 위해 재귀함수 호출 traverse(obj, depth+1) # 파일인 경우 elif os.path.isfile(obj): nfile += 1 print(prefix + os.path.basename(obj)) # 그 외의 경우 처리 else: print(prefix + 'uknown object :', obj) if __name__ == '__main__': path = '..' # 경로 지정 print('path:', os.path.abspath(path)) traverse(path, 0) # 전체 합계 출력 print('\n', ndir, 'directories,', nfile, 'files')
- 글 작성 중에는 아무것도 보이지 않거나 구문 강조가 적용되지 않은 코드처럼 보임(즉, 위와 같이 보이지 않음) 미리보기나 작성이 완료되면 위와 같이 보임
4. 장,단점
1) 장점
- 각 언어별로 구문강조가 잘 적용되어 보여짐
- 소스코드가 예쁘게 보임
- 여러가지 테마를 제공함
2) 단점
- 모바일 웹에서는 구문강조 적용되지 않음
- 한 글에 짧은 소스코드가 여러번 삽입될 때는 글상자를 이용한 방법이 더 유용
- 스크립트, 스타일 시트를 이용한 방법이므로 페이지 로딩 속도를 저하시킬 수 있음
- html 코드로 적용해야 되므로 글 편집이 복잡함
- 티스토리에 구문강조를 위해 파일 업로드 및 스킨 소스코드 수정이 필요함
총평: 글 하나당 긴 소스코드 한, 두개 삽입시 적용할 만한 방법인 것 같음
Color Scripter
1. 적용방법
1) Color Scripter에 접속한다.
- Color Scripter 사이트 주소: http://colorscripter.com
2) 언어, 테마등을 설정하고 삽입할 소스코드를 복사한다. (실시간 하이라이팅에 체크되어 있어야 함)
3) 클립코드에 복사 버튼을 클릭하여 소스코드를 복사하여 블로그에 붙여넣는다.
2. 소스코드 삽입 결과
- 글 작성중에도 소스코드가 구문강조 되어 보임
- python 소스코드 삽입 결과 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | ''' Created on 2015. 7. 1. @author: eunguru ''' import glob, os.path ndir = nfile = 0 # 합계 출력을 위한 변수 def traverse(dir, depth): global ndir, nfile for obj in glob.glob(dir + '/*'): if depth == 0: prefix = '|--' else: prefix = '|' + ' ' * depth + '|--' # 디렉토리인 경우 if os.path.isdir(obj): ndir += 1 print(prefix + os.path.basename(obj)) # 하위 디렉토리의 파일, 디렉토리 출력을 위해 재귀함수 호출 traverse(obj, depth+1) # 파일인 경우 elif os.path.isfile(obj): nfile += 1 print(prefix + os.path.basename(obj)) # 그 외의 경우 처리 else: print(prefix + 'uknown object :', obj) if __name__ == '__main__': path = '..' # 경로 지정 print('path:', os.path.abspath(path)) traverse(path, 0) # 전체 합계 출력 print('\n', ndir, 'directories,', nfile, 'files') | cs |
3. 장,단점
1) 장점
- 각 언어별로 구문강조가 잘 적용되어 보여짐
- 소스코드가 예쁘게 보임
- 소스코드를 블로그에 삽입하는 과정이 비교적 간편
2) 단점
- 모바일 웹에서도 구문 강조된 코드가 보이긴 하지만, 크기가 모바일 웹에 맞게 변동되지 않음
- 한 글에 짧은 소스코드가 여러번 삽입될 때는 글상자를 이용한 방법이 더 유용
- 스크립트, 스타일 시트를 이용한 방법이므로 페이지 로딩 속도를 저하시킬 수 있음
- 구문강조를 지원하는 언어, 테마가 제한적
- 소스코드의 가로길이에 따라 가로크기가 유동적
총평: 글 하나당 긴 소스코드 한, 두개 삽입시 적용할 만한 방법인 것 같음
'컴&프로그래밍 > Etc, Install' 카테고리의 다른 글
MAMP에서 MySQL 패스워드 변경 (0) | 2021.09.28 |
---|---|
Mac OS X tree 명령어 설치, 실행 (1) | 2015.07.03 |
Mac OS X Eclipse CDT(C/C++ Development Tooling) 설치 (3) | 2015.02.03 |
알고리즘 분석 방법 - 시간 복잡도, 빅오 표기법 (0) | 2014.12.12 |
NSAutorealsePool과 automic reference counting mode (1) | 2011.12.14 |