# SRS

이 문서 빌더를 이용하기 위해서 [mdbook](https://github.com/rust-lang/mdBook)을 설치해야 합니다.
이 [링크](https://rust-lang.github.io/mdBook/guide/installation.html)에서 설치하면 됩니다.

그리고 [deno](https://deno.land/)도 설치를 해야합니다. 이 [링크](https://deno.land/#installation)
를 따라서 설치해주세요.

python이 설치되어있어야 cli.py를 사용할 수 있습니다.

문서를 pdf 포맷으로 만드려면 java가 설치되어있어야 합니다. 운영체제가 Windows라면 설치 후 환경변수를 
설정해주세요. 

```bash
mdbook serve
```
를 통해서 [문서](http://localhost:3000)을 웹브라우저로 볼 수 있습니다.

## cli.py

처음 실행시 issue를 가지고 오는 작업이 필요합니다. 
```bash
./cli.py build --update_issues
```
를 실행해 주세요.

cli.py 는 여러 subcommand를 가집니다.
아래애서 v옵션과 h옵션은 항상 verbose 모드와 help를 의미합니다.

### build
```
usage: cli.py build [-h] [-v] [--update_issues]
```
작성된 문서를 html로 변환합니다. `update_issues` 옵션을 주어서 먼저
issue를 업데이트할 수 있습니다. issue들의 정보는 `cache/issues.json`에 생성
됩니다.

### issueUpdate
```
usage: cli.py issueUpdate [-h] [-v] [--outDir OUTDIR]
```
Issue를 업데이트 합니다. 정확히는 지정된 `OUTDIR`에 `issues.json`이란
파일을 만듭니다. OUTDIR의 기본값은 `cache/` 입니다.

### serve
```
usage: cli.py serve [-h] [-v] [-p PORT]
```
문서를 html로 변환하고 웹서버를 엽니다. 변화가 생기면 다시 빌드합니다.

### buildPdf
```
usage: cli.py buildPdf [-h] [-v] [--outDir OUTDIR] [--browser-path BROWSER_PATH]
```
변환된 html을 pdf로 바꾸고 OUTDIR에 저장합니다. 그러므로 문서를 먼저 `build`하고 시도해야 합니다.
browser-path 옵션으로 html을 pdf로 바꾸는 것에 사용될 browser를 지정할 수 있습니다.
