esdoc은 JavaScript용 문서 제네레이터, 특히 es6에 특화된 documentation generator입니다. 비슷하게 JavaScript의 주석을 문서로 만들어주는 것으로, JSdoc 도 있습니다. 현재 진행하고 있는 프로젝트는 es6로 개발하고 있으므로, esdoc을 설치 및 사용하여 자바스크립트 파일을 주석으로 문서화해보려고 합니다. (JSDOC 설치 관련해서는 다음의 포스팅을 참고해주세요.)
적용하려는 프로젝트는 다음과 같이 구성되어 있습니다.
설치는 간단합니다. 공식 문서에도 잘 나와 있습니다. 아래는 간단히 번역한 것입니다.
# project directory 로 이동하세요
cd your-project/
# ESDOC 과 표준 플러그인을 설치하세요.
npm install esdoc esdoc-standard-plugin
# 다음과 같이 configuration 파일을 작성하세요.
echo '{
"source": "./src",
"destination": "./docs",
"plugins": [{"name": "esdoc-standard-plugin"}]
}' > .esdoc.json
# run ESDoc
./node_modules/.bin/esdoc
# 문서를 확인해 보세요.
open ./docs/index.html
다음과 같이 적용된 모습이 나오면 됩니다.
esdoc은 아직까지는 jsdoc 처럼 테마가 많지 않은 것 같습니다. 저는 esdoc-custom-theme 의 Light mode를 적용하려 합니다.
# project directory 로 이동하세요
cd your-project/
# ESDOC 과 표준 플러그인을 설치하세요. (esdoc)은 Step1을 하지 않았을 때 입력하세요.
npm install (esdoc) esdoc-publish-html-plugin esdoc-custom-theme -D --save
# 다음과 같이 configuration 파일을 작성하세요.
# Step1와 비교해보면, plugins 가 바뀌었습니다.
echo '{
"source": "./src",
"destination": "./docs",
"plugins": [
{
"name": "esdoc-publish-html-plugin",
"option": {
"template": "./node_modules/esdoc-custom-theme/template"
}
}
]
}' > .esdoc.json
# run ESDoc
./node_modules/.bin/esdoc
# 문서를 확인해 보세요.
open ./docs/index.html
다음과 같이 비슷한 형태로 나온다면, 테마가 정상적으로 적용된 겁니다.
이제 저희 프로젝트에 맞게 다음을 진행해보려고 합니다.
커스터마이징을 위해서 먼저 다음의 플러그인을 설치합니다.
# project directory 로 이동하세요
cd your-project/
# 커스터마이징을 위한 추가 플러그인을 설치합니다
npm install esdoc-brand-plugin esdoc-inject-style-plugin esdoc-standard-plugin -D --save
아래를 따라하면,
# project directory 로 이동하세요
cd your-project/
# vi 편집기로 Step1,Step2에서 수정했던 .esdoc.json 파일을 열어, plugin 쪽을 다시 한 번 수정합니다.
{
"plugins": [
{
"name": "esdoc-brand-plugin",
"option": {
"title": "esdoc-custom-theme",
"description": "A customizable theme for esdoc",
"repository": "https://github.com/sinnerschrader/esdoc-custom-theme",
"site": "sinnerschrader.github.io/esdoc-custom-theme",
"author": "https://github.com/pixelass"
}
},
{
"name": "esdoc-inject-style-plugin",
"option": {
"enable": true,
"styles": [
"./custom-styles.css"
]
}
},
{
"name": "esdoc-publish-html-plugin",
"option": {
"template": "./node_modules/esdoc-custom-theme/template"
}
},
{
"name": "esdoc-standard-plugin",
"option": {
"coverage": {
"enable": true
},
"accessor": {
"access": ["public"],
"autoPrivate": true
},
"manual": {
"index": "./manual/index.md",
"globalIndex": true,
"asset": "./manual/assets",
"files": [
"./manual/installation.md"
"./manual/usage.md"
]
}
}
}
]
}
위의 configuration 파일에서 esdoc 문서의 테마 커스텀을 위해,
"name": "esdoc-inject-style-plugin",
"option": {
"enable": true,
"styles": [
"./custom-styles.css"
]
}
와 같이 수정했기 때문에, 현재는 존재하지 않는 custom-styels.css 파일을 만들어줘야 합니다.
# project directory 로 이동하세요
cd your-project/
# vi 편집기로 custom-styles.css 파일을 생성합니다.
vi custom-styles.css
# 해당 파일에 다음을 기입합니다.
:root.light {
--main-background: #fff;
--main-color: #000;
--main-border-color: #c9d0d5;
--main-link-color: #3300d1;
--main-focus-color: #7588fb;
--main-header-background: #3300d1;
--main-header-color: #fff;
--main-header-border-color: #010049;
--main-header-link-hover-shade: rgba(255, 255, 255, 0.1);
--main-header-link-active-shade: rgba(255, 255, 255, 0.2);
--main-header-shadow: 0 0.175rem 0.25rem rgba(0, 0, 0, 0.35), 0 0.25rem 0.5rem rgba(0, 0, 0, 0.65);
--left-sidebar-background: #f2f5f9;
--left-sidebar-background-active: #acb4b7;
--left-sidebar-color-active: #000;
--left-sidebar-color: #000;
--left-sidebar-border-color: #c9d0d5;
--left-sidebar-indent-background: none;
--left-sidebar-shadow: none;
--right-sidebar-background: #212429;
--right-sidebar-background-active: #16181f;
--right-sidebar-color-active: #fff;
--right-sidebar-color: #fff;
--right-sidebar-border-color: #2d3038;
--right-sidebar-indent-background: none;
--right-sidebar-shadow: -0.125rem 0 0.25rem rgba(0, 0, 0, 0.25), -0.175rem 0 0.35rem rgba(0, 0, 0, 0.45);
--card-link-hover-shade: rgba(0, 0, 0, 0.1);
--search-separator-background: #3300d1;
--search-separator-color: #fff;
--search-result-background: #f2f5f9;
--search-result-color: #000;
--search-result-border-color: #c9d0d5;
--search-result-selected-background: #c9d0d5;
--search-result-selected-color: #000;
--search-result-shadow: 0 0.25rem 0.25rem rgba(0, 0, 0, 0.35), 0 0.5rem 0.5rem rgba(0, 0, 0, 0.65);
--search-result-hover-shade: rgba(0, 0, 0, 0.1);
--search-result-focus-color: #7588fb;
--main-code-background: #c9d0d5;
--main-code-color: #0d6663;
--main-code-border-color: #c9d0d5;
--pretty-code-error-background: #7f012a;
--pretty-code-error-color: #fff;
--kind-background: #16181f;
--kind-color: #696e76;
--kind-function-background: hsl(0, 80%, 70%);
--kind-function-color: hsl(0, 90%, 20%);
--kind-class-background: hsl(30, 80%, 70%);
--kind-class-color: hsl(30, 90%, 20%);
--kind-variable-background: hsl(60, 80%, 70%);
--kind-variable-color: hsl(60, 90%, 20%);
--table-color: #000;
--table-background: #f2f5f9;
--table-border-color: #c9d0d5;
--td-color: #000;
--td-background: #f2f5f9;
--td-border-color: #c9d0d5;
--thead-color: #000;
--thead-background: #acb4b7;
--thead-border-color: #c9d0d5;
--light-switch-color: #fff;
--light-switch-background: #212429;
}
위의 configuration 파일에서 esdoc 문서에 코드 외의 추가 마크다운 문서를 작성하기 위해서,
{
"name": "esdoc-standard-plugin",
"option": {
"coverage": {
"enable": true
},
"accessor": {
"access": ["public"],
"autoPrivate": true
},
"manual": {
"index": "./manual/index.md",
"globalIndex": true,
"asset": "./manual/assets",
"files": [
"./manual/installation.md"
"./manual/usage.md"
]
}
}
와 같이 수정했기 때문에, 현재는 존재하지 않는 custom-styels.css 파일을 만들어줘야 합니다.
# project directory 로 이동하세요
cd your-project/
# manual 폴더와 manual/assets 폴더를 만듭니다
mkdir manual
mkdir manual/assets
# manual 폴더로 이동합니다
cd manual
# 위에서 기입한 마크다운 문서를 만듭니다.
touch index.md installation.md usage.md
커스터마이징이 제대로 되었을까요? 확인해 봅시다.
# project directory 로 이동하세요
cd your-project/
# run ESDoc
./node_modules/.bin/esdoc
# 문서를 확인해 보세요.
open ./docs/index.html
저는 다음과 같이 완성했습니다.