Yaong

Written by a cat

문제 해결

맥에서는 Lektor 클라이언트가 있어 설치가 매우 간편하다. 하지만 맥북은 밖에 돌아다닐 때만 쓰므로 윈도 환경에서 세팅을 해야했다. Bash on windows가 베타이고, Lektor가 마이너하다는 점 때문에 문제가 발생하면 해결하기가 너무 힘들었다. 블로그 만드는 데 주말 이틀 걸렸는데, 그 중 만 하루를 삽질하는데만 썼을 정도. 문제 상황을 기록하여 나중에 참고할 수 있도록 한다.

Lektor 세팅

설치가 안됨

설치 쉘 스크립트를 실행하면 아래 에러가 나올 때 해결책

Error: None of the items in $PATH are writable.

https://github.com/lektor/lektor/issues/213 을 보고 해결할 수 있었다.

  1. .bashrc를 연다.
    • sudo vi ~/.bashrc
  2. 아무 곳에 아래 한 줄 추가
    • export PATH="$HOME/.local/bin:$PATH"
  3. 저장하고 .bashrc 재실행
    • source ~/.bashrc
  4. ~/.local/bin 폴더를 만든다.
  5. 이제 설치가 잘 될 것이다.
    • sudo curl -sf https://www.getlektor.com/install.sh | sh

실행이 안됨

lektor server로 실행할 때 IOError가 발생

Bash on Windows의 문제였다. Insider Preview >= 14942 빌드에서 해결되었다고 한다. 해결된 지는 오래인데, 윈10 정식 업데이트에는 반영이 멀었는지 2017년 2월 28일까지 여전히 14393 빌드. Insider Preview 버전을 설치하고 나니 문제가 해결되었다.

https://github.com/Microsoft/BashOnWindows/issues/216

Lektor 사용법

페이지네이션

포스트들은 /post 폴더에 넣어두면서, 메인 페이지에 포스트 목록을 보여주고 싶었다. 루트에 포스트가 있으면 서브페이지와 구분이 되지 않기 때문. 이 간단한 것을 위해 어마어마한 시간을 소모하여 답을 찾았다.

포스트 목록을 보여주는 모델의 pagination을 아래와 같이 설정한다.

[pagination]
enabled = yes
per_page = 5
items = site.query('/post')

Syntax Highlighter

블로그에 코드가 들어가는 글을 얼마나 쓸 지는 모르겠다. 필요할 때 고민해도 되겠지만, 귀찮은 일은 한꺼번에 하고 싶어서 구문강조 기능을 미리 넣기로 했다.

Lektor로 만들어진 Lektor 홈페이지에 구문강조 기능이 있으니 공식 플러그인이 있을 거라 생각하기도 했다. 예상대로 Pygments를 활용한 공식 플러그인이 있었다. 그런데 문제는 어떤 스타일을 사용할 수 있는지 알려주는 곳이 없다는 것. Solarized Light를 한번 넣어 보았으나 실패했다. 그러나 이 실패에서 스타일 목록을 찾을 수 있었다.

  1. configs/markdown-highlighter.ini 에서 style을 abcd 같은 것으로 바꾼다.
  2. 구문강조를 하는 페이지를 하나 만들어 연다.
  3. 에러 로그 속 경로에 있는 폴더 이름들이 사용할 수 있는 스타일.
    • /home/{user}/.cache/lektor/packages/{blah}/pygments/styles/

Lektor project-info --output-path 로 나오는 경로와는 다르다.

MathJax 수식을 Pygments 문법 강조가 덮음

Pygments 문법강조가 MathJax 수식의 일부 글자에 적용되곤 하였다. 두 곳에서 같은 클래스 이름을 사용해서 그런 것이었고, MathJax 관련 css 클래스들을 오버라이드하는 방식으로 해결하였다.

.MathJax .mo,
.MathJax .mi {
    color: inherit;
}

남은 일들

  • 구글 검색 붙히기 : API 사용법을 배워야 하는데...
  • 기존 글 마이그레이션 : 이건 어느 세월에 할 지 막막하다.