SOURCE HIGHLIGHT : C++ 에서 HTML 로 소스 변환 도구 이야기


텍스트 형태로 이글루에 소스코드를 올리려면 불편하다. Syntext Highlight 도 안되서 색깔도 그냥 까맣다.

이글루에 소스를 신택스 하일라이팅 된 소스를 올리기 위해서는 HTML 로 작업을 해야하는데 그것도 직접 할 수는 없는 노릇



이를 위한 몇가지 툴이 있다.


2. Source Highlighthttp://gnuwin32.sourceforge.net/packages/src-highlite.htm (for Windows)

이외에도 몇가지 더 있지만 ^^; 요 두가지만으로도 충분하므로 넘어가자. 

WebCpp 는 CSS 형태의 HTML 문서를 제작해 준다. 그러나 이글루에서는 제대로 작동하지 않음으로 
Source Highlight 를 사용해서 C++ 문서를 삽입 가능한 HTML 문서로 바꾸는 방법에 대해서 알아보자


Source Highlight 는 다음과 같은 포맷을 지원한다. (GNU Source-Highlight 3.1.4 기준, Windows 용은 버전이 더 낮다.)

  • Ada
  • Asm
  • Applescript
  • Awk
  • Autoconf files
  • Bat
  • Bib
  • Bison
  • C/C++
  • C#
  • CakePhp templates     (new)
  • Clipper
  • Cobol
  • Configuration files (generic)
  • Caml
  • Changelog
  • Css
  • D
  • Diff
  • Erlang
  • errors (compiler output)
  • Flex
  • Fortran
  • GLSL
  • Haskell
  • Haskell literate programming     (new)
  • Haxe
  • Html
  • ini files
  • Java
  • Javascript
  • KDE desktop files
  • Latex
  • Ldap files
  • Lisp     (new)
  • Logtalk
  • Log files
  • lsm files (Linux Software Map)
  • Lua
  • Makefile
  • Manifest
  • M4
  • ML
  • Oz
  • Pascal
  • Perl
  • pkg-config files
  • PHP
  • Postscript
  • Prolog
  • Properties files
  • Protobuf (Google's Protocol Buffers)     (new)
  • Python
  • RPM Spec files
  • Ruby
  • Scala
  • Shell
  • S-Lang
  • Sql
  • Tcl
  • Texinfo
  • Vala     (new)
  • VBscript
  • XML
  • XOrg conf files

(LANG 문법 파일은 http://www.gnu.org/software/src-highlite/lang_files/ 에서 다운 )

Src Highlight 는 콘솔창에서 다음과 같이 입력하면 사용 할 수 있다. 

(source-highlight.exe 가 존재하는 디렉터리로 이동, 보통 C:\Program Files\GnuWin32\bin 다.)

>> source-hightlight.exe -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style--file=default.style --lin-number-ref <HTML 로 만들 CPP 파일이 있는 곳>


관련 옵션은,  콘솔에서 >> source-highlight --help 와 같이 입력함으로써 알아볼 수 있다.

추가적으로, Visual Studio 외부 도구를 이용해 자동화 할 수도 있다.  

Visual Studio 에서 도구 -> 외부 도구 로 들어간다.




위 그림과는 본인의 경우(배치파일을 사용)을 이미지로 찍은 것이고, Visual Studio 외부 도구를 이용해서 바로 만들거라면

명령 에 C:\Program Files\GnuWin32\bin\source-highlight.exe
인수 에 -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style--file=default.style --line-number-ref "$(ItemPath)"  

를 입력하면 현재 작업중인 파일을, 현재 프로젝트 디렉터리에 HTML 형태로 만들어 준다. 만약, 바로 긁어서 사용하고 싶다면 인수 옵션에서 -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style--file=default.style --line-number-ref "$(ItemPath)" -STDOUT  으로 변경하면 Visual Studio 출력창에 바로 나온다. 긁어서 붙여넣기 ㄱㄱㄱ

아래의 소스코드는 src highlight 를 이용하기 위해 만든 배치파일이다. (윈도우용 버전에서는 Bat Lang 을 지원 안한다..ㅠ_ㅠ)

01: @ECHO OFF
02:
03: REM For Windows7 현재 디렉토리를 저장하고 배치파일이 존재하는 곳으로 이동한다.
04: pushd %~dp0
05:
06:
07:
08: set SrclightPath=C:\Program Files (x86)\GnuWin32
09: set CopyPath=\\192.168.10.105\public\Hoon\Source
10: set TargetPath=%1
11:
12:
13: IF "%1" == "" (
14: ECHO.
15: ECHO Usage : $ %0 ^[FILE^]
16: GOTO END
17: )
18:
19:
20:
21: REM HTML 파일 생성 루틴
22: :CREATE
23:
24: IF NOT EXIST %1 (
25: ECHO.
26: ECHO 파일이 존재하지 않습니다.
27: GOTO END
28: )
29:
30: "%SrclightPath%\bin\source-highlight.exe" -s cpp -f html --data-dir="%SrclightPath%\share\source-highlight" --style-file=user_normal.style --line-number-ref %1
31:
32: REM 이동 루틴
33: :COPY
34:
35: MOVE %~1.html %CopyPath%\%~nx1.html
36:
37:
38:
39:
40: REM 종료 루틴
41: :END
42:
43: set SrclightPath=
44: set CopyPath=
45: set TargetPath=





참고 - http://aitch.egloos.com/433477 (Source-Highlight 이용하기)
       - http://snoopybox.co.kr/1404 (배치파일 만들기)

핑백

덧글

댓글 입력 영역


시계

라운드 시계

위키피디아