prism.css

prism.js


과거에 무언가 설정해 놓고, 아무 생각없이 스킨을 변경해버렸더니 모든 수정 내용이 날아가 버렸다.
그 덕에 예전에 다 설정해놓고 써 놓았던 코드 하일라이트 기능은 모두 날아가 버렸다.

그래서 부랴부랴 highlight 기능의 대명사인 http://alexgorbatchev.com/SyntaxHighlighter/ 사이트에서 적용하려고 했는데 git에 담긴 소스를 받아보니, css를 scss로 변경해서 적용하고 뭔가.... 좀 많이 달라진 느낌.

게다가 설치 방법을 이해 못해서 헤매다가... 포기했다.


그러다가, prism http://prismjs.com/ 이라는 곳을 알게 되서 그곳의 소스를 받아왔다. 
특이한 건, 소스파일 유형(C#, Java, C++ 등등) 을 선택하면 그에 맞게 알아서 합쳐서 두개의 파일만 등록하면 되게 해놓았다. 두개의 파일안에 선택한 모든 소스 코드들이 담기는 것 같다. 더욱이 압축형으로 만들어준다.

지금 첨부파일에 등록한 파일이  그 파일들이다.


이 파일들을 티스토리 적용하는 방법을 기록한다.

  1. 먼저 Tistory에 접속해서 관리자 모드로 접속한다.

  2. 왼편 메뉴의 꾸미기 -> HTML, CSS 편집을 선택한다.


  3. 파일 업로드 탭으로 들어가 하단의 "추가" 버튼을 눌러 해당 js와 css 파일을 올린다.
  4. 정상적으로 올라가면 images/prism.js 와 images/prism.css가 보일 것이다.
  5. 이제 HTML 탭에 들어가서 HTML 소스를 연다. 상단의 <head> ~ </head> 상이에 다음과 같은 코드를 입력한다.
    <link type="text/css" rel="stylesheet" href="./images/prism.css"/>


  6. 좀 더 아래로 이동해서 <body > 부분 아래에 다음과 같은 코드를 입력한다.
    <script type="text/javascript" src="./images/prism.js"></script>


  7. 이제 상단의 저장 버튼을 눌러 저장한다.

자 이제 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





물론 완전하지는 않다. 다음과 같은 조건이 붙는다.
  1. 코드 부분은 HTML 인코딩이 되어있어한다.
    웹을 좀 다뤄보신 분들은 단박에 이해 될 것이고, 아닌 분들은 아마도 이게 뭔가 싶을 것이다.
    즉 HTML 내 소스 중 중요한 부분인 "<" 와 "/>" 부분인데, 코드를 그대로 입력하게 되면,
    십중 팔구는 소스 안에 있는 "<" 와 "/>" 부분 때문에, 소스 코드 하일라이트는 안되고 소스가 사라져 보이거나
    전혀 다른 화면이 표시될 수 있다. 최소한 소스들이 HTML 인코딩이 필요한지 여부는 판단해야 한다.
    다행히 (물론 인터넷이 되는 환경에서) 많은 사이트들 중 무료로 HTML 인코딩을 해주는 사이트들이 많다.
    그 사이트에 자신의 소스를 한번 넣어보면 변환되서 표시해주는 내용으로 가져다 쓰면 된다.

  2. XHTML 기반 HTML 5 지원 웹브라우저에서나 된다.
    현재 이 코드를 만드는 로직은 <code> ~ </code> 라는 독특한 태그 안에서 처리된다.
    웹브라우저에서 인식할 수 있는 태그가 아닌데, XHTML 즉, XML 기반의 HTML 파싱이 되고,
    HTML5 특성을 잘 수용할 수 있어야 한다는 것이다.
    사실 대부분 웹브라우징을 할 때는 HTML5가 잘 지원되는 크롬, 엣지, 파이어폭스 등 메이저 웹브라우저를 이용하기 때문에 큰 문제는 아닐 듯 싶다.
    뭐... 소스 안보인다고 할 사람도 없을 것이고 ㅋ

이번 스킨 변경 후 날려 먹은 경험 때문인지, 기록의 중요성이 다시금 새록 새록하고 해서 글로 남긴다.

아... 이제 나머지 소스 부분을 위의 내용 처럼 변경해야 하는데... 좀 많이 귀찮다.


728x90

먼저 입력할 계정의 리스트가 담긴 CSV 파일을 먼저 만든다.

형식은 어떻게 만들어도 상관 없지만, 상단에는 영어로된 제목이 있어야 한다.

여기서는 3개의 필드만 만들었다.


만들었으면 다음과 같은 텍스트 파일 기반의 스크립트 파일을 만든 뒤, exec.ps1 이라는 이름으로 저장한다.

$Users = Import-Csv -Path "list.csv"            
foreach ($User in $Users)            
{            
    $Displayname = $User.'Name' 
    $UserFirstname = $User.'Name'
    $UserLastname = ' '
    $OU = $User.'OU'            
    $SAM = $User.'Id'            
    $UPN = $SAM + "@knoie.net"              
    New-ADUser -Name "$Displayname" -DisplayName "$Displayname" -SamAccountName $SAM -UserPrincipalName $UPN -AccountPassword (ConvertTo-SecureString -String "1234" -AsPlainText -Force) -Enabled $true -Path "OU=Developers,OU=Members,DC=knoie,DC=net" -ChangePasswordAtLogon $false –PasswordNeverExpires $true -server knoie.net            
}


실행을 하면, 각 계정들을 자동으로 생성한다.

암호는 일괄적으로 1234로 등록된다.


다만, 이 스크립트를 실행하려면 Run As Administrator로 띄워야 정상적으로 실행된다.


728x90

+ Recent posts

728x90