라이브러리 문서화에 WIKI 좋을까요?

shkim의 이미지

좀 방대한(?) 규모의 C++ 라이브러리 프레임워크 문서화를 시작해보려고 합니다.

WORD 로 치는 것은 좀 아닌 것 같고..

WIKI 로 정리를 해보면 어떨까 싶은데요,

제가 생각해 본 필요 기능은 다음과 같습니다.

- 전체 페이지의 Hierarchy 지원
위키는 모든 페이지가 수평 레벨인것 같은데 MSDN 처럼 현재 페이지의 상위로 가면
상위 개념에서 바라본 목록이 나올 수 있었으면 좋겠습니다.

- Offline export (제일 중요)
문서화 작업은 온라인으로 2인 이상이 할 수 있되,
최종 결과물은 인터넷이 안되는 환경에서도 볼 수 있도록 (검색은 되면 좋지만 없어도 되고요)
... CHM 파일 하나로 나오면 정말 좋겠네요.
(페이지에 export 할지 말지 지정할 수도 있으면 좋겠네요)

- sample 코드 첨부
간단한 것은 화면에 텍스트로 나와도 되겠지만 zip 으로 묶은 샘플 코드 등을
페이지에 첨부할 수 있었으면 좋겠습니다.

- 그림 첨부
그림은 파일 첨부와 다르게 페이지에 보였으면 좋겠고요.
(혹시 swf 첨부도 되면 좋겠는데..)

- code syntax highlight
C++ 신택스가 예쁘게 보여야 겠고, 부가적으로 java,c# 등도 되었으면 좋겠네요.

처음 두가지 말고는 대부분 위키가 지원하는 기능 같은데요..

이런거 정리하게 좋은 WIKI 있으면 추천 부탁드립니다. 아님 다른 툴도 환영..

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

보통 그런 것은 Doxygen으로 하지 않나요?

semmal의 이미지

디토님 말씀대로 doxygen이 더 맞는 듯 하네요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

shkim의 이미지

답변 감사합니다. 그런데 함수의 레퍼런스 보다는

큰 그림을 보여주는 부연 설명이 더 많을 것 같아서

WIKI 같은 것을 생각중입니다.

제가 잘못 알고 있는 것이 아니라면 doxygen 은 c 소스코드에 문서화를 해서

내용을 추출해 내는 것으로 알고 있는데 그런 목적은 아닙니다.

semmal의 이미지

graphviz를 사용하면 클래스 다이어그램도 볼 수 있고

설명을 붙이는 것에 따라 자유롭게 부연 설명을 붙일 수 있습니다.

CVS나 SVN등을 사용하면 주석을 공유하면서 관리도 가능하며, 각 함수에 대해서 더 자세한 설명을 붙일 수도 있을 겁니다.

도저히 doxygen으로 안되는 부분만 wiki에서 따로 관리하는 것이 좋지 않을까요?

wiki가 여러가지면에서 좋은 도구이기는 하지만 만능은 아니니까요
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

mirheekl의 이미지

일단 익스포트에서 많은 불편함이 예상되기에.. (pdf로 출력한다고 해도 많은 추가작업이 필요하겠지요..)
닥시즌을 추천할수밖에 없네요.
닥시즌도 소스관리툴과 연계하면 여럿이서 동시 작업 가능한거나 다름없기 때문에 큰 문제는 없을겁니다.

단, 말씀하신 기능 중 첫번째것은 분류를 잘 이용하면 위키에서 할 수 있는 일이긴 합니다. (전 미디어위키밖에 안써봤지만 암튼 여기서는 대충 비슷하게 가능합니다. 상위분류 하위분류 개념이 존재하니까요.)
오히려 코드 하일라이팅이 좀 귀찮을거 같은데요. 플러그인이 있을것으로 생각되긴 합니다만..
export 문제만 아니면 위키가 제일 적합해보이긴 합니다.
보안 문제때문에 익스포트를 해야한다면, 위키에 들어있는 자체 사용자관리 기능을 써보시는게 어떨까 싶기도 합니다.

--
This is for you new people. I have just one rule :
Everyone fights, no one quits. If you don't do your job, I'll shoot you myself. Do you get me?

--

monovision의 이미지

http://wikidocs.net/mybook/main

이걸 추천해드리고 싶긴 하나 안되는게 몇 개 있군요..
이미지 첨부도 안되고 무엇보다 타인이 운영하는 서버에 작업을 하는 것이라 소스코드 같은 것들은 조금 문제가 될 듯...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.