반응형

C/C++ 소스 코드를 HTML 으로 변환하기

GNU source-highlight 툴을 사용하여 소스 코드를 Visual Assist의 신택스 컬러링과 유사한 색상의 HTML 문서로 쉽게 변환하는 팁입니다.

이런 저런 사이트에 소스코드를 올릴 때, 유용하게 쓰일것입니다.

///
// (1) GNU Source-highlight 다운로드
///
    http://www.gnu.org/software/src-highlite/ 
글을 작성하는 현재( 2007년 01월 14일 )에는 2.5버전이 최신버전으로 되어있네요^^
2.1.2 설치버전을 구해놓았는데요..
단은 2M를 넘기지 않는 것 같으니, 파일을 올려두도록 하겠습니다.
색상을 표현하는 것 말고는 다른 기능은 따질 것이 없으니....
그리고 2.1.2버전으로도 충분히 소스하일라이트 기능을 사용하는데 지장이 없으니...
2.1.2버전을 사용합시다 ^^;; ( 세팅이 달라져있을수도 있거든요^^ )
압축을 푸시면, src-highlite-2.1.2.exe가 있고,
default.style파일이 있습니다.
///
// (2) 설치
///
설치과정은 무난하게 넘어갑시다..
몽땅 Next Next Next하시면 되요~

///
// (3) 설정하기
///

test라는 프로젝트를 임의로 생성하였습니다.

Tool 메뉴에 보시면, Customize... 메뉴가 있는데, 선택합니다.

사용자 삽입 이미지


다시 Tools 탭에서 아래의 스샷처럼 입력합니다.

사용자 삽입 이미지


Src To HTML이라는 메뉴로 생성하고자 하는것이구요...
그 아래의
Command에는 C:\Program Files\GnuWin32\bin\source-highlight.exe 를,
Arguments에는 -s cpp -f html --data-dir="C:\Program Files\GnuWin32\\share\source-highlight" --line-number-ref "$(FilePath)" 를,
Initial directory에는 $(FileDir)를 입력해주세요~

Use Output Window에 체크하시는 것도 잊지 마세요~~

사용자 삽입 이미지

위처럼 헬로월드 소스코드를 작성하고 컴파일까지 잘 되는지 확인합니다.
컴파일이 되지 않아도 변환은 되니, 안심하세요^^

사용자 삽입 이미지



이제 저희가 방금 생성한 메뉴를 클릭합니다.
return 값이 0이면 정상적으로 변환되었다는 뜻입니다^^
해당 프로젝트 폴더에 가시면, html파일이 추가되어있습니다. 확인을 해보면...
사용자 삽입 이미지

이렇게 변해져있는 것을 확인하실 수 있습니다.

이제, default.style파일을
C:\Program Files\GnuWin32\share\source-highlight 폴더에 덮어씌웁니다.

그 다음 다시 변환을 하면, 다음과 같이 됩니다.

사용자 삽입 이미지

 
네... 보통의 비주얼 어시스트와 비슷하게 default.style을 수정해둔것입니다.
나중에 필요하시면, 처음에 알려드렸던

    http://www.gnu.org/software/src-highlite/ 


사이트에 가셔서 색상값 등을 참고하셔서 수정하시면 될것입니다^^
메뉴를 생성할 때의 옵션값도 자유자재로 다룰 수 있으면 좋겠지만...
솔직히 거기까지는 ㅎㅎㅎㅎ
암튼, 이렇게 생성된 코드를 블로그나 이런 저런 사이트에 Copy & Paste하시면 됩니다^^
1: #include <stdio.h>
2:
3: int main()
4: {
5:         printf( "Hello, World!" );     
6:
7:         return 0;
8: }

즐코딩하세요 ~ 후후후
///
// 추가
///

' -o STDOUT ' 옵션을 추가하면 .html 을 생성해주는 대신에 VC6의 output 윈도에 변환된 HTML 내용을 바로 출력해줍니다. HTML소스코드로 출력되니까 홈페이지에 올릴 때에 편할 수 있습니다.

반응형

'Tip & Tech.' 카테고리의 다른 글

Copy as HTML..  (0) 2007.03.17
안테나의 원리  (0) 2007.03.15
VNC 원격제어 프로그램  (0) 2007.03.11
Posted by Real_G