· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Kldp Examples

LinuxDoc 예제 DocBookSgml 예제 DocBook 예제 (xml일 경우는 범용이고, 지정할 필요 없습니다) 예제들을 보면, 거의 위키문서와 1대1이 대응될 만한 간단한 문서들 뿐이네요 ^^;; 그 긴 페이지에 링크는 거의 안보이는 -_- --WkPark

설치: MoniWikiPds:moniwiki-1.0rc17-20030727.tgz
  • 받아서, wiki.php wikilib.php, plugins/processor/linuxdoc,jade.php를 복사해줍니다.

  • docbook-xml을 설치해야 DocBook Xml이 작동됩니다.

세팅 어제 #gnome에서 말씀드린 문법과 살짝 다릅니다 (특정 페이지의 포맷도 지정할 수 있게 했습니다. "plain/jade" 라는 식으로 지정합니다. 그 페이지 자체는 plain이요, 하위는 jade로 지정)
$pagetype=array("KldpDsl"=>"plain","ManPage"=>"/man",
 "DocBookSgml"=>"/jade","LinuxDoc"=>"/linuxdoc");

"DocbookSgml"=>"plain/jade" : 이 페이지 자체는 plain이요, 그 페이지 하위는 jade로 해석된다.

"LinuxDocSgml"=>"/linuxdoc" : 이 페이지 자체는 일반 위키 문서요, 하위는 linuxdoc이다.

/!\ 급하게 만들어서 문제가 발생할 수도 있습니다 ^^;; --WkPark

DocbookSgml에서 테스트 중인데 잘 안되네요. DocBook sgml 소스파일을 DocbookSgml이라는 이름으로 .../data/text/DocbookSgml로 저장해 두었고 파일의 소유자, 그룹은 www-data로 맞추어 두었습니다. config.php에는 다음과 같은 라인을 추가해 두었고요.

$pagetype=array("DocbookSgml"=>"/jade","ldsgml"=>"/linuxdoc","KldpDsl"=>"plain","ManPage"=>"/man");

그리고 해당 페이지 이름이 DocbookSgml이니 jade.php가 동작하기를 기대했는데 DocbookSgml의 내용 자체를 위키텍스트로 해석해서 내보내 버리더군요. 그래서 위 아래에 jade 매크로를 추가하고 테스트해 봤더니 jade.php가 동작은 하는 것 같은데 html출력이 나오지 않고 그냥 소스 자체를 그대로 내보냅니다. 7월 27일자 스냅샷에서 말씀하신 파일들은 모두 교체해서 넣었는데 별도로 설정해 주어야 하는 부분이 또 있는건 아닌가 하는 생각이 드네요.

"DocbookSgml"=>"/jade"라고 하면, DocbookSgml자체는 그냥 일반 위키 문서이고, 그 하위 문서가 *.sgml docbook문서가 됩니다.

그리고 jade.php를 봤는데 jade 옵션에 docbook.dsl을 지정하는 부분이 없는것 같더군요. 그래서 혹시나 하고 -d 옵션을 추가해서 jade.php를 다음과 같이 고쳐 봤지만 여전히 결과는 마찬가지네요. 콘솔에서 실행할 때는 이 -d 옵션을 추가해 주어야 html이 출력되더군요.

-d 옵션 없이 쓸 수도 있는데, Sgml파일의 상단에 다음 정보를 넣어주어야 합니다.
<?stylesheet href="KldpDsl" type="text/dsssl"?>
이렇게 하면, jade.php에서 이 부분을 <?stylesheet href="data/text/KldpDsl#html" type="text/dsssl"?>로 변경하고 -d 옵션 없이, 어떤 위키 쪽을 dsl파일로 참조하게 되며, Dsl파일도 편집할 수 있게 됩니다. --WkPark

  $args= "-V '(define %use-id-as-filename% #f)' ".
         "-t sgml -i html ".
         "-d /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl ".
         "-V nochunks -o /dev/stdout";

그냥 콘솔 상에서 위의 옵션을 모두 넣어 DocbookSgml 파일에 대해 다음과 같이 실행하면 기대했던 대로 표준출력으로 html변환 결과가 출력되는데 유독 위키 안에서는 제대로 동작하지 않네요.

jade -V '(define %use-id-as-filename% #f)' -t sgml -i html -d /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl -V nochunks -o /dev/stdout DocbookSgml

상황을 요약하자면,

  • DocbookSgml에 jade 매크로를 넣지 않아도 해당 페이지에 대해 jade.php가 수행되게 하는 방법
  • DocBook 소스를 그대로 보여주지 말고 html로 변환한 결과를 출력되게 하는 방법

    -- 권순선

    DocbookSgml 쪽은 해결이 되었습니다. jade.php에 http://docbook.kldp.org 에서 받아온 kldp.dsl을 박아 넣어 일괄적으로 처리하게 했습니다. 그래야 기존의 파일을 고칠 필요가 없지요. $args에 "-d /kldp/doc/plugin/processor/kldp.dsl#html " 를 추가하면 됩니다. MoniWiki 1.0릴리즈시에도 참고하세요. 감사합니다.... -- 권순선
    $default_dsssl같은 옵션을 넣어 두어야 하겠군요. dsl을 고쳐서 쓰는 경우, 출력을 미세하게 조절할 수 있기 때문에 docbook.php에서는 <stylesheet ...를 쓰도록 한 것입니다. stylesheet 옵션을 발견할 수 없을 때는 $default_dsssl 값을 이용하도록 해야겠군요. --WkPark

아참, 그리고 LinuxdocSgml도 테스트 중인데 docbook과 마찬가지로 config.php에 "LinuxdocSgml"=>"/linuxdoc" 이라고 넣어 주어도 자동으로 linuxdoc.php가 실행되지는 않았고요, 위아래에 linuxdoc 매크로를 추가하면(지금은 매크로를 추가해둔 상태입니다.) 보이기는 하는데 첫 페이지만 보입니다. --split=0 옵션이 들어간 것으로 아는데 콘솔상에서 테스트해 보면 분명 전체 페이지가 하나로 출력되는 반면 이곳에서는 그렇지 않네요. 좀더 살펴보고 추가할 내용이 있으면 추가하도록 하겠습니다. -- 권순선
위에 설명했습니다만, #gnome채널에서 제가 얘기한 것과 다릅니다. 그 페이지 자체의 포맷과 하위 포맷을 따로 따로 지정할 수 있게 했습니다.

LinuxdocSgml/Example linuxdoc 파서를 수정하셨나요 ? 에러가 뜨네요.

$args= "--split=0 --toc=2 "; 로 수정하니 잘 됩니다. 랭귀지 관련 옵션들이 문제였나 봅니다. --toc=2 옵션은 목차를 앞에 넣게 하는 옵션이고요. 그런데 한가지 문제가 있습니다. LinuxdocSgml/Example의 목차를 보시면 아시겠지만 목차에서 페이지 안의 링크가 제대로 되지 않습니다.
$cmd="cd /tmp;$sgml2html $args $tmpf".".sgml";
때문인데요. 실행할 때 $tmpf.sgml 이 아니라 원래 페이지 이름(LinuxdocSgml_2fExample.sgml)로 실행이 되면 목차에도 링크가 제대로 걸리게 될 것입니다. --toc=2 옵션을 아예 빼버리면 목차가 생성되지 않기 때문에 그런 문제를 피할 수 있어 일단은 그렇게 해 두었습니다. LinuxdocSgml/Example 는 --toc=2 인 경우의 예제로 남겨 두었고요. -- 권순선

레드헷의 sgml-tools는 --toc을 지원하지 않는군요. --WkPark
그렇군요. 그럴줄은 생각도 못했습니다. 일단은 당장 문서를 보는 것 자체는 문제가 없으니 이대로 유지해도 될것 같네요. -- 권순선



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0067 sec