「글을 긷자」 마크다운 문서 나누어 관리하고 한데 모아 보기
VitePress에는 마크다운 문서 내에 다른 마크다운 문서를 포함시킬 수 있는 방법이 제공됩니다. 심지어, 포함되는 문서는 다른 마크다운 문서를 포함할 수도 있습니다. 이는 집필 과정에 많은 이점을 가져다줄 수 있습니다. 여럿이 하나의 작품을 준비하는 경우라면, 작가별 담당 영역은 충분히 세분화될 수 있고 작업물을 합칠 때 충돌에 대한 걱정도 꽤 덜어낼 수 있습니다.
아래 구문은 HTML 웹 문서에서 특정 소스 영역을 주석 처리 할 때 사용됩니다.
``` html
<!-- 주석내용 -->
```
VitePress에서는 여기에 `@include:` 지시자를 더한 형태의 구문으로 마크다운 문서 내에 다른 마크다운 문서를 삽입할 수 있습니다.
아래 예시는 chapter1.md 문서에서 1화와 2화의 내용을 불러오는 코드입니다.
``` markdown
# Chapter 1
<!--@include: ./chapter1/episode1.md-->
<!--@include: ./chapter1/episode2.md-->
```
아래 예시는 chapter2.md 문서에서 3화와 4화의 내용을 불러오는 코드입니다. 마크다운 문서임을 나타내는 확장자 md 뒤로 중괄호의 사용이 확인되는데, 이는 불러 올 영역을 지정한 것입니다. 예시의 것은 3행부터 문서 끝까지를 뜻합니다.
``` markdown
# Chapter 2
<!--@include: ./chapter2/episode3.md{3,}-->
<!--@include: ./chapter2/episode4.md{3,}-->
```
집필 과정에 워드 프로세서를 사용하든 다른 종류의 에디터를 사용하든 간에, 한 개의 파일에 작품 내용 전체를 담아야 하는 상황도 분명 있을 겁니다. 하지만, 인쇄용 결과물의 분량이 몇백 페이지가 된다면 작성도 수정도 관리도 아주 어렵겠다 짐작됩니다. 이미지 하나 없이 텍스트만으로 이루어진 작품이라 해도, 장을 구분하고 절을 나누다 보면 그 구조가 매번 쉽게 파악되지 않을 수도 있을 겁니다. 만약, 누군가가 그렇게 오랫동안 익숙해져 바꾸기 쉽지 않은 환경에 있다면, 적어도 오늘 소개한 VitePress의 기능만 제대로 활용하면 이전과는 확연히 다른 집필 환경을 만들 수도 있겠다는 확신마저 듭니다.
하나의 주제로 작성된 글 안에서도 섹션을 두고 문단을 나누는 등의 처리를 하는 것처럼, 아주 긴 분량이나 큰 규모의 작품 제작 환경이라면 거기에 맞는 효율적인 접근법이 필요할 것입니다.
마라톤 선수처럼 매 순간 많은 에너지를 들여 긴 호흡으로 작품을 이끌어 가는 대신, 익숙한 코스를 조깅하듯 효율적으로 나뉜 짧은 구간들을 여유 있게 소화하는 방식의 적용을 위해 VitePress를 사용해 보는 것도 좋겠습니다.
아래의 예시는 body.html이라는 최종 문서로 확인될 문서인, 저장소 내 body.md 문서의 내용입니다. chapter1 폴더 내의 index.md 문서는 episode1.md 문서와 episode2.md 문서를 포함하고 있는데, 영역 지정 방법을 통해 3행부터의 내용을 불러오도록 처리되어 있습니다. episode1.md 문서의 1행은 `# Episode 1`로 시작하지만, body.md 문서에서는 해당 타이틀이 노출되지 않도록 하면서 1화의 내용이 body의 논리적인 구조에 맞도록 하기 위함입니다. body.html 최종 문서 외에도 chapter1/episode1.html 경로로도 1화의 내용 확인이 가능합니다.
``` markdown
# Body
## Chapter 1
<!--@include: ./chapter1/index.md-->
## Chapter 2
<!--@include: ./chapter2/index.md-->
```
Body 문서 보기
https://enchic.github.io/gitzza-plaza/body.html
브런치북 「글을 Git[긷]자」는 웹 서비스를 위한 UI/UX 개발자인 저자가, 다년간의 실무 경험을 바탕으로 Git과 GitHub 그리고 Visual Studio Code라는 무료 범용 텍스트 에디터를 이용한 글쓰기 방식을 제안하기 위해 기획되었습니다.
https://github.com/enchic/gitzza-plaza