과거에 무언가 설정해 놓고, 아무 생각없이 스킨을 변경해버렸더니 모든 수정 내용이 날아가 버렸다.
그 덕에 예전에 다 설정해놓고 써 놓았던 코드 하일라이트 기능은 모두 날아가 버렸다.
그래서 부랴부랴 highlight 기능의 대명사인 http://alexgorbatchev.com/SyntaxHighlighter/ 사이트에서 적용하려고 했는데 git에 담긴 소스를 받아보니, css를 scss로 변경해서 적용하고 뭔가.... 좀 많이 달라진 느낌.
게다가 설치 방법을 이해 못해서 헤매다가... 포기했다.
그러다가, prism http://prismjs.com/ 이라는 곳을 알게 되서 그곳의 소스를 받아왔다.
특이한 건, 소스파일 유형(C#, Java, C++ 등등) 을 선택하면 그에 맞게 알아서 합쳐서 두개의 파일만 등록하면 되게 해놓았다. 두개의 파일안에 선택한 모든 소스 코드들이 담기는 것 같다. 더욱이 압축형으로 만들어준다.
지금 첨부파일에 등록한 파일이 그 파일들이다.
이 파일들을 티스토리 적용하는 방법을 기록한다.
- 먼저 Tistory에 접속해서 관리자 모드로 접속한다.
- 왼편 메뉴의 꾸미기 -> HTML, CSS 편집을 선택한다.
- 파일 업로드 탭으로 들어가 하단의 "추가" 버튼을 눌러 해당 js와 css 파일을 올린다.
- 정상적으로 올라가면 images/prism.js 와 images/prism.css가 보일 것이다.
- 이제 HTML 탭에 들어가서 HTML 소스를 연다. 상단의 <head> ~ </head> 상이에 다음과 같은 코드를 입력한다.
<link type="text/css" rel="stylesheet" href="./images/prism.css"/>
- 좀 더 아래로 이동해서 <body > 부분 아래에 다음과 같은 코드를 입력한다.
<script type="text/javascript" src="./images/prism.js"></script>
- 이제 상단의 저장 버튼을 눌러 저장한다.
자 이제 Highlight 하기 위한 모든 준비가 완료되었다.
이제 다음과 같이 코드를 입력하면 된다.
<pre>
<code class="lang-html">
코드~~~~~~~
</code>
</pre>
소스 유형에 따라 class = "lang-xxxxx" 부분, xxxx 에 자신의 소스 유형을 넣어주면 된다.
다음 표의 내용이 바로 각 소스코드 유형별 이름이다.( 붉은색 부분이 이름 )
- Markup -
markup
- CSS -
css
- C-like -
clike
- JavaScript -
javascript
- ABAP -
abap
- ActionScript -
actionscript
- Ada -
ada
- Apache Configuration -
apacheconf
- APL -
apl
- AppleScript -
applescript
- Arduino -
arduino
- AsciiDoc -
asciidoc
- ASP.NET (C#) -
aspnet
- AutoHotkey -
autohotkey
- AutoIt -
autoit
- Bash -
bash
- BASIC -
basic
- Batch -
batch
- Bison -
bison
- Brainfuck -
brainfuck
- Bro -
bro
- C -
c
- C# -
csharp
- C++ -
cpp
- CoffeeScript -
coffeescript
- Crystal -
crystal
- CSS Extras -
css-extras
- D -
d
- Dart -
dart
- Django/Jinja2 -
django
- Diff -
diff
- Docker -
docker
- Eiffel -
eiffel
- Elixir -
elixir
- Erlang -
erlang
- F# -
fsharp
- Flow -
flow
- Fortran -
fortran
- Gherkin -
gherkin
- Git -
git
- GLSL -
glsl
- Go -
go
- GraphQL -
graphql
- Groovy -
groovy
- Haml -
haml
- Handlebars -
handlebars
- Haskell -
haskell
- Haxe -
haxe
- HTTP -
http
- Icon -
icon
- Inform 7 -
inform7
- Ini -
ini
- J -
j
- Java -
java
- Jolie -
jolie
- JSON -
json
- Julia -
julia
- Keyman -
keyman
- Kotlin -
kotlin
- LaTeX -
latex
- Less -
less
- LiveScript -
livescript
- LOLCODE -
lolcode
- Lua -
lua
- Makefile -
makefile
- Markdown -
markdown
- MATLAB -
matlab
- MEL -
mel
- Mizar -
mizar
- Monkey -
monkey
- N4JS -
n4js
- NASM -
nasm
- nginx -
nginx
- Nim -
nim
- Nix -
nix
- NSIS -
nsis
- Objective-C -
objectivec
- OCaml -
ocaml
- OpenCL -
opencl
- Oz -
oz
- PARI/GP -
parigp
- Parser -
parser
- Pascal -
pascal
- Perl -
perl
- PHP -
php
- PHP Extras -
php-extras
- PowerShell -
powershell
- Processing -
processing
- Prolog -
prolog
- .properties -
properties
- Protocol Buffers -
protobuf
- Pug -
pug
- Puppet -
puppet
- Pure -
pure
- Python -
python
- Q -
q
- Qore -
qore
- R -
r
- React JSX -
jsx
- Ren'py -
renpy
- Reason -
reason
- reST (reStructuredText) -
rest
- Rip -
rip
- Roboconf -
roboconf
- Ruby -
ruby
- Rust -
rust
- SAS -
sas
- Sass (Sass) -
sass
- Sass (Scss) -
scss
- Scala -
scala
- Scheme -
scheme
- Smalltalk -
smalltalk
- Smarty -
smarty
- SQL -
sql
- Stylus -
stylus
- Swift -
swift
- Tcl -
tcl
- Textile -
textile
- Twig -
twig
- TypeScript -
typescript
- VB.Net -
vbnet
- Verilog -
verilog
- VHDL -
vhdl
- vim -
vim
- Wiki markup -
wiki
- Xojo (REALbasic) -
xojo
- YAML -
yaml
물론 완전하지는 않다. 다음과 같은 조건이 붙는다.
- 코드 부분은 HTML 인코딩이 되어있어한다.
웹을 좀 다뤄보신 분들은 단박에 이해 될 것이고, 아닌 분들은 아마도 이게 뭔가 싶을 것이다.
즉 HTML 내 소스 중 중요한 부분인 "<" 와 "/>" 부분인데, 코드를 그대로 입력하게 되면,
십중 팔구는 소스 안에 있는 "<" 와 "/>" 부분 때문에, 소스 코드 하일라이트는 안되고 소스가 사라져 보이거나
전혀 다른 화면이 표시될 수 있다. 최소한 소스들이 HTML 인코딩이 필요한지 여부는 판단해야 한다.
다행히 (물론 인터넷이 되는 환경에서) 많은 사이트들 중 무료로 HTML 인코딩을 해주는 사이트들이 많다.
그 사이트에 자신의 소스를 한번 넣어보면 변환되서 표시해주는 내용으로 가져다 쓰면 된다. - XHTML 기반 HTML 5 지원 웹브라우저에서나 된다.
현재 이 코드를 만드는 로직은 <code> ~ </code> 라는 독특한 태그 안에서 처리된다.
웹브라우저에서 인식할 수 있는 태그가 아닌데, XHTML 즉, XML 기반의 HTML 파싱이 되고,
HTML5 특성을 잘 수용할 수 있어야 한다는 것이다.
사실 대부분 웹브라우징을 할 때는 HTML5가 잘 지원되는 크롬, 엣지, 파이어폭스 등 메이저 웹브라우저를 이용하기 때문에 큰 문제는 아닐 듯 싶다.
뭐... 소스 안보인다고 할 사람도 없을 것이고 ㅋ
이번 스킨 변경 후 날려 먹은 경험 때문인지, 기록의 중요성이 다시금 새록 새록하고 해서 글로 남긴다.
아... 이제 나머지 소스 부분을 위의 내용 처럼 변경해야 하는데... 좀 많이 귀찮다.
728x90