블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Perl 2008.11.26 12:01

[ Perl ] Pod::HTML, POD 문서를 HTML 로 ...


 지난 2월부터 번역해온 perldoc 은 요즘 답보상태입니다. 언제부턴가 출퇴근 30분씩  perldoc 을 번역하던 것이 일본 IT 연재컬럼들로 바뀌어버렸으니까요. 일단 다른 것들도 골고루 배워가고 싶다는 개인적인 욕망에서 였을까요?

 아무튼 근래에 들어서 다시 perldoc 에 눈이 가기 시작했습니다. 이런 건 되려나? 하는 것들은 대개 perldoc 을 찾아보기 마련이고.. 애써 번역한 것들을 웹상에 공개해두지 않고 그냥 Repository 에 담아두는 것도 아쉽기도 해서 이것들을 제 섭에서 HTML 로 공개해버릴까 해서 좀 찾아봤습니다.

  제가 원하는 작업을 하는 것은 Pod::HTML 인데, 이미 perl 이 들어있는 환경에서는 기본적으로 설치되어 있습니다. 거기에 pod2html 이라는 커맨드라인 툴을 제공해주기도 합니다.

 # pod2html perlfunc.pod > perlfunc.html

  이렇게 하면 끝이죠. 근데 끝이라고 해야할까. 뭔가 상당히 아쉽습니다. 기본적으로 그냥 HTML 로 바뀔 분이라서, CSS 를 적용해서 깔끔하게 하고 싶다든가 하는 생각도 있죠. 마침 옵션도 지원합니다. --css 옵션으로 style 태그를 지정할 수 있더군요. 거기에 title 태그도 들어가 있지 않습니다. 맨 처음에 나온 =head1 의 값이 title 에 들어가게 되었죠.

  문제는 이것뿐만이 아니었습니다. 번역하면서 pod 문법이 간간히 틀린 부분도 있기 때문에 이를 교정해주어야 하는 데요. 여기에 사용할 수 있는 것이 podchecker 입니다. 역시 마찬가지로 기본으로 설치되어 있기 때문에 추가 설치는 필요 없습니다.
# podchecker perlfunc.pod
 
*** WARNING: line containing nothing but whitespace in paragraph at line 641 in file perlfunc.pod
*** WARNING: line containing nothing but whitespace in paragraph at line 1780 in file perlfunc.pod
*** WARNING: (section) in 'getpriority(2)' deprecated at line 4505 in file perlfunc.pod
*** WARNING: (section) in 'dup(2)' deprecated at line 6947 in file perlfunc.pod
*** WARNING: (section) in 'dup(2)' deprecated at line 6996 in file perlfunc.pod
*** ERROR: unterminated L<...> at line 7271 in file perlfunc.pod
*** ERROR: =end without =begin at line 7530 in file perlfunc.pod
*** ERROR: unterminated C<...> at line 7856 in file perlfunc.pod
*** ERROR: unterminated C<...> at line 8597 in file perlfunc.pod

  이렇게 pod 문법 경고와 해당 라인이 나오기 때문에 무엇이 잘못되었는지 살펴보면 금방 알 수 있겠죠?

  하지만 파일 하나하나를 podchecker 로 체크하고 pod2html 로 HTML 로 바꿔줘야 하는가?

  Pod::Html::HtmlTree 라는 모듈은 디렉토리를 지정해주면 해당 디렉토리의 pod 나 pm 모듈 안의 pod 문서를 번역해서 특정디렉토리에 html 로 일괄출력할 수도 있습니다. 하지만 Pod::Html::HtmlTree 는 podchecker 를 거치지 않기 때문에 사전에 완벽하게 pod 문법에 맞출 필요가 있을 것 같습니다.

  그냥 편하게 스크립트 몇 줄 써서 일괄 출력하는 방법이 좋겠다 싶기도 하네요.
 
  P.S: 사실 펄덕펄덕(http://doc.perl.kr) 이 한동안 죽었었는데... 이것을 보완하기 위해서 작업하려고 생각해뒀지만... 최근에 다시 살아나서 필요는 없지 않을까 하고 생각은 했지만. 그래도 역시 자신이 번역한 문서를 누가 더 봐주길 원한다고 할까요?
  그리고 펄덕펄덕이 쓰고 있는 Twiki 는 너무 무겁거든요. 뭐  Twiki 는 pod 도 자동번역해주는 편리함도 있지만. perlfunc 한번 읽으려면 좀 많이 기다려야 되더군요.
 
  뭐 아무튼 일단 위의 과정을 거쳐서 제 서버에도 perldoc 번역본을 올려놨습니다. --css 옵션에 사용할 css를 찾지 못하고 있다가 간단하게 aero 님으로부터 다음과 같은 css 를 받았습니다. aero++
  1. pre {
  2.   padding: .3em .3em .3em .3em;
  3.   border: .05em solid #000000;
  4.   background: #FFFFCC;
  5.   margin-left: 1em;
  6.   margin-right: 1em;
  7. }
  8.  

  단순히 예제 코드부분을 박스로 감싸주는 것 밖에 없지만요. 누군가 깔끔한 css 하나 써주실 분 안계시려나요? :-)
 어쨌든 번역된 perldoc 은 여기에서 볼 수 있습니다.

신고
TOTAL 484,123 TODAY 41

티스토리 툴바