GitHub 블로그 테마 이주 #2 - 기존 데이터 복사

M2. 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은 영구주소에 최우선 하나의 카테고리만 지정할 수 없습니다. 예를 들어 카테고리로 KOSPIKOSPI200을 지정한 글은 /kospi/kospi200/ 아래에 위치하게 됩니다.

카테고리가 많아지면, 계층 구조가 상당히 복잡해집니다. 처음에는 카테고리가 태그인 줄 알고 사용했는데, 태그는 따로 있고, 카테고리는 계층 구조를 표현하는 방식이었습니다. 대분류, 중분류, 소분류 이렇게 계층적으로 구분할 때 사용하는 것입니다.

대표 카테고리만 가지고 주소를 만들고 싶은 경우라면, 대표 카테고리만 지정하거나, 종류별로 collections을 따로 만들고, collections 이름으로 영구주소를 지정하는 방법을 사용할 수 있습니다.

제 경우 URL로 편하게 접근할 수 있도록, /{code}/ 형식의 영구주소를 사용합니다. 이를 위해 아래와 같이 설정을 변경하였습니다.

permalink: /:title/

코드명으로 통일한 경로 주소

주식코드명으로 접근이 잘 됩니다.

메인 페이지 복사

사이트 주소만으로 들어오면, 글 목록이 나오게 기본 설정되어 있습니다. 본래 메인 페이지가 있기에 이를 복사했습니다. 이전 파일은 혹시 모르니 .ORIG 확장자를 붙여 옮겨 놓습니다.

참고
기존 파일을 수정할 필요가 있는 경우 이를 복사해 두는 것이 좋습니다. 간혹 실수를 할 수도 있고, 며칠 뒤에 살펴보면 그 동안 무엇을 고쳤는지 기억이 잘 나지 않을 수 있기 때문입니다. 이전 파일이 있으면 diffgvimdiff 같은 명령으로 무엇을 고쳤는지 쉽게 파악할 수 있습니다.

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 .

복사된 메인 페이지

메인 페이지가 잘 나오고 있습니다.

댓글

이 블로그의 인기 게시물

국내 주가 데이터 특성 비교 (FinanceDataReader, PyKrx, macap)

주가는 기업 이익(EPS)에 어느 정도 선행하는가? (개별 기업의 사례)

레버리지, 인버스 주요 종목 수익률과 비용