Python script for Jekyll blogging

Python Script for Jekyll blog posting Automation

GitHub에 무료로 지킬 블로그를 만들어서 쓰고 있습니다. 그런데 늘 글을 쓸때마다 터미널 명령어를 입력해야 하는 것이 귀찮으니, 그 과정을 파이썬으로 바꿀 수 있지 않을까 궁리중입니다. 이 글은 파이썬 스크립트를 짜기 위해 제가 원하는 것이 어떤 것인지 적어본 것입니다.

Write a post

원하는 편집기에서 평소와 동일하게 마크다운 문법에 따라 글을 작성한다. 이때는 내용에만 집중하고 원하는 글을 작성하여, 이후 작업에 대한 고민을 하지 않도록 한다. 워드프레스 관리자 화면에서 새글쓰기를 클릭하고 내용을 채우면서 후에 발행하기를 누를지 아니면 임시글로 저장할지 고민하지 않는 것과 같다.

Save a post

위에서 작성한 글을 .md 파일로 저장한다. 나는 주로 Dropbox에 있는 Notes 폴더에 작성한 모든 글을 모아둔다. 블로그에 올릴 글도 여기에 저장해두고 원하는 때에 블로그에 글 폴더로 옮기는데 이렇게 하면 백업본이 하나 더 생기는 것과 마찬가지다.

Publish a post

이 과정은 조금 더 세분해서 살펴볼 수 있다.

위에서 저장한 마크다운 파일을 지킬 블로그의 Posts 폴더로 복사

파일명은 항상 년-월-일-파일이름.md의 형식이어야 한다. Notes 폴더에 있던 파일을 복사하되, 옮기는(글을 발행하기 원하는) 날짜가 “년-월-일-“의 형식으로 파일 이름 앞에 저절로 붙었으면 좋겠다.

YAML 머리말 넣기(prepend)

지킬 블로그 포스트에는 꼭 제일 앞에 YAML 머리말이 있어야 한다. 아니면 지킬에서 블로그 글이라고 인식하지 않아서 발행되지 않는다. 하지만 처음에 글을 작성할 때부터 글의 제목과 태그를 정해두고 싶지 않고, Notes 폴더에 들어가는 글에는 YAML 머리말이 없는 것이 더 보기 깔끔하다. 그래서 파일을 옮길 때 파일 이름 변경과 함께 YAML 머리말이 들어가면 좋겠다. 내가 사용하는 머리말의 형식은 다음과 같다.

---
layout: post
date: %Y-%m-%d %H:%M:%S
title: %filltext:name=제목%
tags: %filltext:name=태그%
---

나는 카테고리를 사용하지 않고 글의 제목과 태그, 작성한 날짜만 들어가면 된다. 레이아웃은 지금 글을 발행하는 스크립트를 짜기 원하는 것이니 늘 post로 고정이고, 날짜는 파일을 옮기는 시간이 적절한 형식으로 자동으로 삽입되면 좋겠다. titletags는 글에 따라 항상 달라지는 것이니 파이썬 스크립트를 작동할 때 직접 입력하는 편이 낫겠다. 이정도까지 진행이 되면 로컬에서의 작업은 끝이다.

Commit to GitHub Repository

파이썬 스크립트 안에서 원하는 폴더에 변경된 내용을 GitHub의 특정 Repository에 commit 해야 한다. 이때 commit message는 위의 title 내용을 따와서 "title is published" 정도면 될 것 같다.

Push to GitHub Repository

이제 Push 하면 끝이다. 확인은 직접 블로그를 열어서 하는 방법도 있고, 아니면 스크립트의 마지막에 블로그를 열도록 해도 되겠다.


이 글은 2015-11-26에 작성되었습니다.