Source Highlight - c/c++ 을 html 로 변환 하는 방법

C/C++ 소스 코드를 HTML로 변환하는 방법을 소개 한다.

GNU source-highlight 툴을 사용하여 소스 코드를 Visual Assist의 Syntax 컬러링과 유사한 색상의 HTML 문서로 쉽게 변환하는 팁입니다.
source-highlight 상당히 강력한 유틸리티이긴한데 콘솔 유틸리티라서 사용하기가 번거롭고 디폴트 설정으로 변경한 HTML 문서의 색상은 그다지 만족스럽지 못합니다.
Visual Assist의 색상과 비슷하게 변환하게 해주면서 익스플로러나 VC6에서 간단하게 원 클릭만으로 사용할 수 있게만들어 봤습니다.

■ source-highlight 다운로드/설치하기

우선 다음 링크에서 source-highlight를 다운로드 받아서 설치합니다.
이 글이 쓰여지고 있는 시점 에서는 최신버젼이 Source-highlight 2.1.1 입니다.

GNU Source-highlight
http://www.gnu.org/software/src-highlite/

Src-Highlite for Windows
http://gnuwin32.sourceforge.net/packages/src-highlite.htm

설치하면 기본적으로 C:\Program Files\GnuWin32 폴더로 파일들이 복사됩니다. source-highlight.exe 는 bin 폴더에 생성됩니다.

Style 파일 다운로드 style.rar

  • 콘솔창에서 Visual Assist와 유사한 색상으로 변환하기

    share/source-highlight/ 폴더에 포맷 옵션을 결정하는확장자가 style 라는 이름의 텍스트 파일이 있습니다.
    기본적으로 default.style 로 설정 되어 있으며 변경을 하려면 --style-file=style3.style 와 같은 형식으로 변경 할수 있습니다.

    style 파일은 아래와 같은 형식으로 존재하면 색상의 값을 직접 #ffffff 와 같은 방법으로 변경이 가능 합니다
    (단, Source Highlight에서 지원하지 않는 색상값 darkgray 와같은 방법으로 색상을 입력 하면 오류가 발생 합니다 이때에는 darkgray에 맞는 rgb 코드로 직접 입력 하시면 해결 가능합니다.)
    ------------------------------------------------------------------------
    keyword blue b ;
    type darkgreen ;
    string red ;
    comment brown i ;
    number purple ;
    preproc teal b ;
    symbol darkred ;
    function #ffffff b;
    cbracket red;
    lineno orange b;
    ------------------------------------------------------------------------

    콘솔 창 에서는 다음과 같은 옵션을 사용하여 변환하면 됩니다.
    >> source-highlight.exe -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style-file=default.style --line-number-ref newcpp.cpp


  • 탐색기(explorer)에서 오른쪽 버튼 메뉴를 통해 HTML으로 변환하기

    아래 첨부를 REG파일로 만들어 등록 시킵니다.
    ------------------------------------------------------------------------
    Source-highlightFromExplorer.reg 파일
    ------------------------------------------------------------------------
    REGEDIT4
    [HKEY_CLASSES_ROOT\cppfile\shell\Convert to HTML]

    [HKEY_CLASSES_ROOT\cppfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""

    [HKEY_CLASSES_ROOT\cxxfile\shell\Convert to HTML]
    [HKEY_CLASSES_ROOT\cxxfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""
    [HKEY_CLASSES_ROOT\cfile\shell\Convert to HTML]
    [HKEY_CLASSES_ROOT\cfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""
    [HKEY_CLASSES_ROOT\hfile\shell\Convert to HTML]
    [HKEY_CLASSES_ROOT\hfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""
    [HKEY_CLASSES_ROOT\hppfile\shell\Convert to HTML]
    [HKEY_CLASSES_ROOT\hppfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""
    [HKEY_CLASSES_ROOT\hxxfile\shell\Convert to HTML]
    [HKEY_CLASSES_ROOT\hxxfile\shell\Convert to HTML\command]
    @="\"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 \"%1\""
    ------------------------------------------------------------------------

    위의 파일은 source-highlight 가 C:\Program Files\GnuWin32\ 폴더에 설치되었다고 (디폴트) 가정합니다.
    다른 폴더에 설치했을 경우 그에 맞게 경로를 수정해야 합니다.
    style 파일은 default.style로 설정 되어 있지만 본인이 직접 만든 style 파일로 변경이 가능 합니다.

    .cpp, .cxx, .c, .h, .hpp, .hxx 확장자를 가지는 파일에서 오른쪽 마우스 클릭 후 "Convert To HTML"을 선택하면 같은 폴더에 .html 파일을 생성합니다.


  • VC6 와 VC2005 에서 툴메뉴를 통해 직접 변환하기

     a) VC6 메뉴 중 Tools -> Customize 메뉴를 실행 -> Tools 탭을 선택 합니다.
         (VC2005 : 도구 -> 외부도구)
         
     b) 추가 버튼 (점선 네모)을 선택 후 "Menu contents:" 리스트 박스에
         (VC2005 : 추가 버튼을 누른후  제목에 입력)
        "Convert To HTML" 라고 Typing 합니다 (다른문자로 해도 상관 없습니다)

     c) "Command:" 필드에
         (VC2005 : 명령 필드)
         C:\Program Files\GnuWin32\bin\source-highlight.exe
         를 적습니다.

     d) "Arguments:" 필드에    
       -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style-file=user.style --line-number-ref "$(FilePath)"
     를 적습니다. (user.style 파일은 변경 가능 합니다.)

        (VC2005 : 인수 필드) FilePath가 ItemPath로 변경됨
      -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style-file=user.style --tab=3 --line-number-ref "$(ItemPath)"

     추가 적으로 아래와 같이 "-o STDOUT" 옵션을 추가하면 .html 을 생성해주는 대신에 VC6의 output 윈도에 변환된 HTML 내용을 바로 출력해줍니다.
     출력된 내용을 선택/복사/붙이기 하면 더 쉽게 사용할 수 있습니다.
      -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style-file=user.style --tab=3 --line-number-ref -o STDOUT "$(FilePath)"

    (VC2005 에서는 FilePath를 ItemPath로 변경)
      -s cpp -f html --data-dir="C:\Program Files\GnuWin32\share\source-highlight" --style-file=user.style --tab=3 --line-number-ref -o STDOUT "$(ItemPath)"

      e) "Initial directory:" 필드에 
       $(FileDir)
        (VC2005 에서는  $(ItemDir) 입력)
       
      를 적습니다.

     f) Use Output Window를 체크합니다.
        (VC2005 : 출력창 사용 체크)

     g) Close


재차 말하지만 위의 과정에서 source-highlight의 설치 폴더가 다른 경우 적절히 수정해줘야 합니다.
위의 과정 후 Tools 메뉴에 Conver To HTML 이란 메뉴가 생깁니다. 이 메뉴를 통해서 현재 VC6에서 열려진 소스 코드를 직접 HTML로 변경할 수 있습니다.

참고로 라인넘버가 필요없다면 source-highlight 의 명령 인자 중에서 --line-number-ref 를 제거하면 됩니다.


꼬릿말 : 이런한 방법이 귀찮다면, VC에서 소스를 복사한 후 마이크로소프트 워드에 붙여 넣은뒤 다시 복사하여 인터넷의 게시판등에 붙혀도 소스의 색이나 들여 쓰기 등이 원본 그대로 적용이 된다.

Windows Licence 오류 관련

IE7 RC1 을 설치 하기까지 여러 차례 삽질(?)을 한 후 설치를 하게 되었다;;

이유인즉 Validate 에서 자꾸만 불법 복제 제품이라 인증이 안된다는 것이었다

여러가지로 알아 보던중 하나는 hotfix 로 update에 관한 인증에 관한 것이고

또하나는 레지스트리 파일을 건드려 주어야 한다는 것이었다...

hotfix로 패치를 하였을 경우에는 윈도우즈 업데이트나 ms 홈페이지에서 다운로드 등등의 인증은

성공하지만 지금 나의 경우와 같이 시스템 내에서 프로그램 설치에서 문제가 발생하였다

이때 Licence를 레지스트리 파일로 등록 해주면 간단히 해결 되었다..

아래는 레지스트 파일을 첨부 하였다.

Download : Add_Licence_To_Your_Windows.rar

hotfix 는 http://www.9down.com/ 에서 받을 수 있다.


- 출처 : http://qaos.com/viewtopic.php?topic=8826&forum=3

Internet Explorer7 RC1

마이크로소프트가 개발하고 있는 웹 브라우저 인터넷 익스플로러7(IE7)의 기능 안정화 버전 격인 RC1 버전을 24일(현지시간) 공개했다.이번에 공개된 RC1은 기능 면에서도 정식 버전과 거의 같을 것이라고 MS IE팀 제품 담당 책임자인 마가렛 코브는 밝혔다. 그는 RC1이란 버전 이름을 붙인 것은 일반인이 사용해도 호환성이나 애플리케이션 기능 등에 큰 문제가 없을 것이란 확신이 있었기 때문이라고 말했다. 마지막 베타 버전이었던 지난 6월 26일 공개한 베타3를 사용자들의 요구로 RC1 버전을 설치하면서 자동으로 지난 베타 버전을 삭제하는 기능이 포함됐으며 제어판의 프로그램 추가/제거에서 언제든 IE7 프로그램을 삭제할 수 있다고 MS는 설명했다.
prev 1 ··· 33 34 35 36 37 38 39 ··· 42 next