Windows 환경에서 Vimwiki + Jekyll + github.io 위키 구축하기
wiki github.io vimwiki jekyll
먼저
- 우선, 종립님의 [[https://johngrib.github.io/wiki/my-wiki/]]{Vimwiki + Jekyll + Github.io로 나만의 위키를 만들자}를 읽었다고 가정한다.
- 종립님의 글에서 매우 자세히 구축 방법을 설명하고 있지만, 리눅스 환경에서의 구축 방법이므로 Windows 사용자가 따라하기엔 알아들을 수 없는 내용 투성이였다.
- 이런저런 삽질 끝에 어느정도 안정적(?)으로 사용할 수 있게 되었기에 이 글에서는 그 내용을 정리한다.
알아야 할 것들
github.io?
- Github Page를 의미한다.
- 본인의 Github과 연결되어 {Id}.github.io 형태의 도메인이 제공된다.
- 이것만으로도 매력적이다.
- Jekyll을 지원한다.
Vimwiki?
- 리눅스 계열 콘솔 환경에서 사용하는 텍스트 에디터 Vim(오래전에 vi 명령으로 사용했던 것과 같은 것인지 모르겠다)의 플러그인이다.
- 위키를 돌아다니듯 파일을 넘어다니거나, 링크와 링크할 파일을 엔터 한번으로 생성하는 것이 가능하다.
Jekyll?
- Jekyll에 대해서는 자세히 모른다.
- 종립님의 블로그 파일들을 열어보면 html 파일들이 일반 html이 아닌, React 스크립트나 jsp 처럼, 다른 언어가 섞여있는 것을 볼 수 있었다.
- 이 파일들은 Jekyll을 통해 빌드하면 최종의 정적 웹페이지가 된다.
- 따라서 간단한 스크립트 언어로, 쉽게(?) 웹페이지를 띄울수 있다고 생각하면 되겠다.
- (위에 적었지만) github.io도 Jekyll을 지원하고 있다.
시작해보자.
종립님의 블로그에 들어가보면, 이 세가지 조합으로 작동하는 블로그를 이미 완성되어 수년째 운영중이다. 따라서 사용 방법만 익히면 된다.
Github Page를 생성한다.
- 오래되어 잘 기억은 나지 않으나, 이름이 {본인 Id}.github.io 인 공개 리포지터리를 만드는 것으로 시작한다.
- 아마 Github Page를 검색하면 쉽게 따라해볼 수 있을 것이다.
종립님의 스켈레톤을 Fork하여 내 Github Page에 커밋한다.
- 스켈레톤이라는 명칭은 생소했다.
- 살을 발라내고 뼈대만 남은 기초 상태로 이해된다.
- 참고로 나는 스켈레톤으로 시도하다 잘 안되서, 종립님의 블로그를 다운받아 일단 커밋했다.
구조를 살펴본다.
- 대략, _wiki 와 _posts 하위에 작성한 md 파일이 위키에 자동으로 로드되는 것처럼 보였다.
- 대문 역할인 index.md 는 직접 작성해야 하는 것 같았다.
- 후에 알았지만, 이것들은 Jekyll 홈페이지만 한번 살펴보면 알 수 있는 내용들이다.
내용을 조금 수정하여 커밋해본다.
- _wiki/index.md 파일에 [ [ test ] ] 와 같은 새로운 링크를 추가하고
- 참고로 Vimwiki 환경에서 test 만 입력한 후 NORMAL 모드에서 엔터를 누르면 링크로 변경된다.
- 아직 Vim이 없으므로 아래에서 다룬다.
- _wiki/ 폴더의 아무 md 파일을 test.md로 복사해보았다.
- test.md파일의 상단 헤더를 적절히 수정하고, 내용은 한 줄만 남기고 삭제했다.
- 커밋해보고, 1분내로 내 Github Page에 들어가보면 수정한 내용이 적용된 것을 볼 수 있었다.
알게된 것을 정리한다.
- md 포맷으로 문서를 작성하여 커밋하면, 자동으로 페이지가 생성된다.
- 따라서 Vimwiki 편집환경이 완성되면, 문서를 쓰고 커밋만 하면 된다.
- 또는 github에서 직접 파일을 수정하고 커밋해도 상관없긴 하다.
매번 커밋해야 하나?
- 그렇지 않다.
- 루트 폴더에서 다음 명령으로 로컬에서도 빌드하고 웹페이지를 띄워볼 수 있다.
bundle exec jekyll server --incremental --trace
- 추가: 이를 위해 Ruby와 Jekyll을 먼저 설치해야 한다.
- Ruby 다운로드 사이트에서 Ruby + Devkit 2.7.8 버전을 설치했다.
- Ruby를 모두 설치한 후에는 Jekyll을 설치했다.
gem install jekyll bundler
bundle install
- 추가: 이를 위해 Ruby와 Jekyll을 먼저 설치해야 한다.
- 한번 띄워놓은 상태에서는 실시간으로 수정한 파일도 바로바로 반영되므로 좀 복잡한 문서를 작성할때는 이쪽이 용이하다.
- github에 커밋할 경우 발생하는 빌드까지 약 2~3분을 기다려야 한다.
편집환경을 구축하자.
Vim이 필요하다.
- Vim은 리눅스 콘솔환경 에디터이다.
- 찾아보니 Windows 환경에서 동작하는 버전도 있다.
- 나는 gVim이라는 GUI 버전을 설치하기로 했다.
gVim 만져보기
- gVim을 설치하고 실행해보면, Windows 사용자에게는 매우 낯선 에디터임을 알수 있다.
- 나는 d:\vim 에 설치하고,
d:\vim\vim82\gVim.exe
로 실행했다. - 기본 설치경로가 C:\Program Files\Vim 으로 입력되어 있는데, 이곳에 설치하면 여러가지로 성가셔진다.
- 나는 d:\vim 에 설치하고,
- 단축키나 UI, UX가 모두 리눅스의 것을 따르고 있다.
- 창 크기나 창 위치도 저장되지 않을 뿐더러, CTRL+S 같은 익숙한 단축키도 먹히지 않는다.
- 이 부분은 1개월 정도 사용해보아도 적응되질 않는다.
vimrc?
- vim의 설정 파일이다.
- 종립님의 블로그나 구글링등을 해보면
~/.vimrc
를 열면 된다는데 뭘 말하는지 알 수 없었다. - gVim 환경에서는 gVim을 설치한 경로의 루트에
_vimrc
로 존재한다.- 나의 경우
d:/vim/_vimrc
파일이다.
- 나의 경우
- 우선 vimrc 파일은 이곳에 있음만 알아두자.
gVim + Vimwiki
- 이제 vim의 플러그인인 Vimwiki를 설치해야 한다.
- vim-plug 설치
- vim에 플러그인은 설치하기 위해, 플러그인 매니저를 먼저 설치해야 한다. npm이나 apt-get 같은 것을 떠올리면 된다.
- [[vim-plug]]{https://github.com/junegunn/vim-plug}에 가보면, 친절한 설치 가이드가 있으나, gVim 따위는 있을리가 없다.
- 특정 폴더에 가서 git으로 pull 하라느니, 이런 저런 방법이 많은데 알아들을 수 없으므로 무시한다.
- vim-plug 페이지의
plug.vim
파일만 다운로드한 후, gVim 설치 폴더의autoload
폴더에 집어넣는다.- 나의 경우
d:/vim/vim82/autoload
- 나의 경우
- gVim을 다시 실행했을때 오류메세지가 없으면 성공. 참고로 플러그인이 잘못 설치되면 별도의 오류창이 팝업된다.
-
vimrc를 열어서, 맨 아래에 다음 코드를 붙여넣고 gVim을 다시 실행한다.
call plug#begin() Plug 'VundleVim/Vundle.vim' Plug 'bling/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'vimwiki/vimwiki' call plug#end()
- :PlugInstall 을 입력하면 위 스크립트에 적어둔 플러그인들이 설치된다.
사실 vimwiki 외에 뭐하는 플러그인인지 모르겠다. - gVim을 다시 실행해보면, 메뉴에 Vimwiki가 보일것이다.
- 대략 첫번째 메뉴를 눌러보면, 위키 홈 폴더를 생성하겠다고 한다.
- 나는
d:/MyProjects/neoarc.github.io
로 만들었다. - 기본 경로로 만들면 c:/Users/{윈도우 계정명}/ 의 하위에 생성될 것이다. (나의 경우 이 경로를 좋아하지 않으므로 별도의 경로에 만들었다.)
- 나는
- 생성하고나면 index.md 파일이 열린다.
- 대략 첫번째 메뉴를 눌러보면, 위키 홈 폴더를 생성하겠다고 한다.
- vim에서 INSERT 모드로 아무런 텍스트(예: test)나 입력하고 NORMAL 모드에서 엔터키를 누르면, {해당 텍스트}.md 파일이 자동으로 생성되고 해당 파일이 열리는 것을 알 수 있다.
- 대강 작성하고 커밋해보자.
- index에 test 페이지가 추가된 것을 볼 수 있다. 하지만, test 링크에 들어가면 없는 페이지(404)가 출력된다.
gVim 설정 수정하기
삽질 끝에 알아낸 여러가지 문제는 대부분 gVim 기본 설정에서 비롯된다.
- gVim은 시스템 언어(한국어 Windows의 경우 euc-kr)모드로 파일을 열고 쓴다.
- Jekyll은 빌드시 시스템 언어값을 따른다.
- 아마 Ruby 파일 파서의 동작 같다.
- euc-kr로 작성된 파일을 Github Page에 커밋하면 404 오류가 발생한다.
- 다음 내용을 vimrc 파일에 추가하여 해결했다.
language message ko_kr.utf-8 source $VIMRUNTIME/delmenu.vim set langmenu=en_us.utf-8 source $VIMRUNTIME/menu.vim set encoding=utf-8
- 이렇게 하고나면
- gVim의 기본 언어가 영어로 변경되고
- 파일 인코딩이 기본 utf-8로 지정된다.
- 이렇게 하고나면
대강 쓸수는 있게 되었다.
- 여기까지 읽은 분이 혹시 있다면 이쯤에서 대강 감을 잡았으리라 생각된다.
- 아직 모든 기능이 완벽하게 동작하지는 않으므로 좀 더 손봐줘야 하지만, 급한 일은 아니다.
시간 나는 대로 적어보자.
아직 남은 할 일들
- 다음 링크의 글에 별도로 정리한다: [[my_wiki_todolist]]{아직 남은 할 일들}