과거에 무언가 설정해 놓고, 아무 생각없이 스킨을 변경해버렸더니 모든 수정 내용이 날아가 버렸다.
그 덕에 예전에 다 설정해놓고 써 놓았던 코드 하일라이트 기능은 모두 날아가 버렸다.
그래서 부랴부랴 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> - 이제 상단의 저장 버튼을 눌러 저장한다.
<pre>
<code class="lang-html">
코드~~~~~~~
</code>
</pre>- 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가 잘 지원되는 크롬, 엣지, 파이어폭스 등 메이저 웹브라우저를 이용하기 때문에 큰 문제는 아닐 듯 싶다.
뭐... 소스 안보인다고 할 사람도 없을 것이고 ㅋ
prism.css