GitHub 블로그 테마 이주 #2 - 기존 데이터 복사
GitHub 블로그 테마 이주 #2 - 기존 데이터 복사
현재 운영하는 사이트의 글을 포함한 데이터를 테스트 사이트의 리포지토리로 복사해서 제대로 동작하는지 확인해 봅니다.
관련글
테스트 서버 구성
기존 데이터 복사
사이트 설정
커스터마이징 (Part 1)
커스터마이징 (Part 2)
운영 사이트에 반영
테스트 사이트의 수정 사항 일괄 반영
기존 데이터 추가
운영하는 사이트의 글이나 그림과 같은 파일을 테스트 포지토리로 복사합니다. Jekyll로 구성하는 사이트는 디렉토리 구조가 대개 비슷합니다.
_posts
는 블로그 글이 담겨져 있는 디렉토리입니다. 복수의 collections를 만들기 위해 추가의 디렉토리를 만들지 않았다면, 글은 이 디렉토리에 넣게 됩니다.
나머지는 주로 제가 운영하는 사이트에서 사용하는 이미지 파일을 넣어 둔 디렉토리입니다.
assets/stackedit_styles.*
은 제가 사용하는 StackEdit용 css
파일을 넣어 둔 것입니다.
_includes
의 하위 두 디렉토리는 다른 문서에서 공용으로 사용할 문서 조각을 넣어 둔 것입니다. include_relative
명령으로 가져오는 MD
문서 조각이 들어 있습니다.
cp -R ../QuantKang.github.io/_posts .
cp -R ../QuantKang.github.io/fn .
cp -R ../QuantKang.github.io/lev .
cp -R ../QuantKang.github.io/stats .
cp -R ../QuantKang.github.io/stock .
cp -R ../QuantKang.github.io/assets/images assets/
cp assets/stackedit_styles.* assets/
cp -R ../QuantKang.github.io/_includes/commons _includes/
cp -R ../QuantKang.github.io/_includes/lev _includes/
푸시한 후에 대략 2분 이내에 업데이트가 반영되었습니다. 어떤 차이가 있는지 잘 모르겠지만, Alemic은 약 400건의 글에 대해 5분 정도 시간이 소요되었습니다.
_posts
아래로 복사한 글 목록이 보입니다.
각 글의 내용도 제대로 나오고 있습니다.
영구 주소 변경
가만히 살펴보니 글의 주소가 바뀌었습니다. 기존에는 /종목코드/
로 설정해 두었는데, 지금은 /카테고리들/종목코드/
가 되었습니다. 이로 인해 기존 링크가 일부 깨졌습니다.
_posts
아래에 두는 파일 형식은 MD
파일인 경우, YYYY-MM-DD-{title}.md
입니다. 이 중에서 YYYY-MM-DD
는 글 작성일자로 인식되고 title
은 글의 이름으로 인식됩니다.
글은 _posts
디렉토리에 두어도 되고, 그 밑에 하위 디렉토리를 만들어도 무방합니다. 만일 같은 title
에 날짜가 다른 파일이 여럿 있으면, 최근 파일이 우선시 됩니다.
개별 MD
파일에는 첫 머리에 ---
을 이용하여, 카테고리와 태그를 설정할 수 있습니다. 아래 파일은 글 제목이 에코프로머티 (450080
이고, 4개의 카테고리가 설정된 글입니다.
head _posts/stock/2024-02-02-450080.md
---
title: 에코프로머티 (450080)
categories:
- KOSPI
- P:전기전자
- 고PER
- 고PBR
---
| **종가** | **전일대비** | **업종** | **PER** | **PBR** | **DIV** |
| -------: | -----------: | -------: | ------: | ------: | ------: |
개별 글에 접근하는 주소를 영구주소라고 합니다. 영구주소를 어떻게 만들것인지는 _config.yml
에 정의됩니다. 기본 설정은 아래와 같습니다.
permalink: /:categories/:title/
예를 들어 카테고리가 A
, 철수
두 가지인 _posts/stock/2024-02-02-Xyz.md
파일은 /a/철수/xyz/
라는 영구주소를 가지게 됩니다. 주소로 변환될 때 일부 기호는 생략되고, 영문자의 경우 소문자로 치환됩니다.
아쉽게도 Jekyll
은 영구주소에 최우선 하나의 카테고리만 지정할 수 없습니다. 예를 들어 카테고리로 KOSPI
와 KOSPI200
을 지정한 글은 /kospi/kospi200/
아래에 위치하게 됩니다.
카테고리가 많아지면, 계층 구조가 상당히 복잡해집니다. 처음에는 카테고리가 태그인 줄 알고 사용했는데, 태그는 따로 있고, 카테고리는 계층 구조를 표현하는 방식이었습니다. 대분류, 중분류, 소분류 이렇게 계층적으로 구분할 때 사용하는 것입니다.
대표 카테고리만 가지고 주소를 만들고 싶은 경우라면, 대표 카테고리만 지정하거나, 종류별로 collections
을 따로 만들고, collections
이름으로 영구주소를 지정하는 방법을 사용할 수 있습니다.
제 경우 URL로 편하게 접근할 수 있도록, /{code}/
형식의 영구주소를 사용합니다. 이를 위해 아래와 같이 설정을 변경하였습니다.
permalink: /:title/
주식코드명으로 접근이 잘 됩니다.
메인 페이지 복사
사이트 주소만으로 들어오면, 글 목록이 나오게 기본 설정되어 있습니다. 본래 메인 페이지가 있기에 이를 복사했습니다. 이전 파일은 혹시 모르니 .ORIG
확장자를 붙여 옮겨 놓습니다.
참고
기존 파일을 수정할 필요가 있는 경우 이를 복사해 두는 것이 좋습니다. 간혹 실수를 할 수도 있고, 며칠 뒤에 살펴보면 그 동안 무엇을 고쳤는지 기억이 잘 나지 않을 수 있기 때문입니다. 이전 파일이 있으면diff
나gvimdiff
같은 명령으로 무엇을 고쳤는지 쉽게 파악할 수 있습니다.
URL이 디렉토리 스타일인 경우 Jekyll은 (그리고 대부분의 웹서버는) 해당 디렉토리에 index.html
또는 index.md
가 있는지 확인합니다. 만일 조건에 맞는 파일이 있으면 이를 보여줍니다.
사이트 이름이 QuantKangAlpha.github.io
이니 https://quantkangalpha.github.io/
로 접근하는 경우 루트 디렉토리에 index.html
또는 index.md
가 있으면, 이를 이용하여 서비스하게 됩니다.
mv index.html index.html.ORIG
cp ../QuantKang.github.io/index.md .
메인 페이지가 잘 나오고 있습니다.
댓글
댓글 쓰기