Hexo에서 다국어(multilingual) 블로그로 커스텀하기
Hexo 블로그에서 여러 언어를 지원하는 구조로 커스텀 하는 방법을 공유합니다.
현재 상황
현재 기술 블로그 상황은 아래와 같다.
- Hexo와 Fluid 테마를 사용 중이다.
- Fluid 테마는 기본적으로 다국어를 지원하지 않는다.
- 다국어 지원을 위해 커스텀 개발이 필요했다.
커스텀 조건
내가 원했던 커스텀 조건은 아래와 같다.
- 기본 루트 url은 한국어로 두고, 영어만
/en/
경로로 리다이렉트 되도록 진행한다. - 각 포스트는 독립적으로 작성되며, 언어별 카테고리나 태그도 언어 포스트에 맞게 구성되어야 한다.
- Navbar에 언어 선택 드롭다운을 추가해 언어를 전환할 수 있어야 한다.
커스텀 설정
커스텀 방법은 간단했다. 동일한 테마를 사용하는 2개의 hexo 블로그를 만들어서 navbar만 살짝 변경해주는 것이다. 위 조건을 만족하기 위해 블로그 배포 폴더와 소스코드 폴더를 아래와 같이 구성했다.
1 |
|
en-blog
: 영어 블로그 소스 코드 폴더ko-blog
: 한국어 블로그 소스 코드 폴더deploy
: 배포할 최종 파일만 모아두는 폴더
처음 시작하는 경우, 아래의 명령어를 사용해 각각의 블로그 소스 코드를 생성할 수 있다.
1 |
|
그 후에 각각의 블로그 폳더로 들어가서 원하는 테마를 다운받은 후 기본값을 셋팅해야 한다. 각각 독립적인 hexo 블로그이기 떄문에 셋팅도 각각 해주어야 한다.
1 |
|
나의 경우 한국어 버전을 root url로 사용할 예정이었기 떄문에 hexo _config.yml
을 다음과 같이 설정하였다.
1 |
|
이렇게 설정하면 permalink
에 언어가 포함되기 때문에 포스트 작성 시 아래와 같이 lang
을 꼭 작성해주어야 한다. 따라서 포스트 기본 레이아웃에 lang
을 추가한다.
1 |
|
다음으로는 각 테마의 소스코드에 들어가서 navbar
에 언어를 변경할 수 있는 드랍다운을 추가한다. 여기서 사용중인 테마 fluid
는 layout/_partials/header/navigation.ejs
에서 추가할 수 있다.
1 |
|
그 다음 선택된 언어 navbar
에 나타나도록 하기 위해서 아래 스크립트도 추가해주었다.
1 |
|
마지막으로 head.ejs
에 링크값을 추가한다.
1 |
|
이렇게 하면 설정은 완료된다.
블로그 배포
현재 해당 블로그는 Github Page를 사용하여 배포되고 있다. 각각의 폴더에 들어가서 배포 파일을 만들어주자.
1 |
|
위 명령어를 입력하면 아마 아래 폴더에 정적으로 컴파일된 배포 파일이 들어 있을 것이다.
- 한국어 버전 배포파일: ko-blog/public/
- 영어 버전 배포파일: eo-blog/public/
폴더에 들어있는 파일을 모두 deploy
폴더로 옮겨준다. 여기서 중요한 핵심은 루트 url을 사용할 한국어 버전은 deploy
에 바로 옮겨주고 /en/을 사용할 영어 버전은 deploy/en/
폴더에 옮겨주어야 한다.
1 |
|
모두 옮겼다면 해당 deploy
폴더 파일만 깃허브에 배포한다.
1 |
|
그러면 다국어를 지원하는 hexo 블로그를 만들 수 있다.