Mytory Markdown 플러그인을 대체하여 Markdown 문서를 워드프레스로 쉽게 올릴 수 있는 방안을 다시 고민하다가 워드프레스 플러그인 중, WordPress GitHub Sync를 사용해보기로 했습니다.
WordPress GitHub Sync 플러그인은 플러그인의 이름처럼, WordPress와 GitHub를 동기화하는 기능을 수행합니다. Mytory 플러그인이 개별 글 별로 동기화를 하는 것과는 다르게, 전체 워드프레스 포스트와 페이지를 동기화합니다. 따라서 잘못 사용하면 전체 블로그가 뒤죽박죽될 수 있기 때문에 조심히 사용해야 할 것 같습니다.
설정 방법
- 플러그인을 설치하고 활성화합니다.
- 설정 > GitHub Sync 페이지에서 요구하는 정보를 입력합니다.
- 해당 GitHub 저장소 페이지를 열고
Settings > Webhooks
로 이동합니다. Add webhook
을 눌러 새로운 webhook을 만듭니다.
- Payload URL : 위쪽 워드프레스 설정 페이지에 있는 Webhook callback URL을 복사하여 붙여넣습니다.
- Content type :
application/json
을 선택합니다. - Secret : 워드프레스에서 생성한 webhook secret을 입력합니다.
- trigger :
push event
를 선택하면 될 것 같은데, 전 테스트를 위해서everything
이 선택된 상태입니다.
사용 방법
플러그인 설명에 따르면, 워드프레스에서 글을 하나 저장하는 시점에 자동으로 GitHub로 해당 글이 Export되고, GitHub에서 push webhook
(outbound API call) 명령이 발생하면 전체 변경 내역이 동기화된다고 돼 있습니다.
제가 정확한 사용 방법을 몰라서 그런지 몰라도, 워드프레스에서 글 수정한 것은 반영이 되는데, VSC에서 push
한 것은 워드프레스로 바로 반영이 안 되고, 설정에 가서 Import from GitHub
를 클릭해야만 반영이 되네요. webhook에 의한 push를 어떻게 발생시키는지 좀 더 알아봐야 겠습니다.
게시물 등록
마크다운 문서 위쪽에 아래와 같이 입력한 후에 GitHub에 등록하면 해당 정보대로 등록됩니다.
---
post_title: 제목
layout: post or page (글의 종류. post와 page를 지원하고 타입 추가 가능하다고 함.)
published: true or false (false로 올리면 임시글로 업로드됨)
---
동작 방식
현재까지 제가 파악한 동작 현황입니다.
- 전체 포스트와 페이지가 세 개 폴더로 구분되어 동기화됩니다.
_drafts
,_pages
,_posts
- 워드프레스에서 임시글이나 비공개글은 GitHub로 Export되지 않습니다.
- 워드프레스에서 글을 삭제한 후 동기화하면 GitHub에서도 삭제됩니다.
- GitHub에서 글을 삭제해도 워드프레스에서는 삭제되지 않는 것 같습니다(한번 테스트해봤었는데 기억이 가물가물하네요).
- 새로운 마크다운 문서를 워드프레스로 동기화하면,
_drafts
,_pages
,_posts
폴더 중 하나로 이동되어 새로운 제목의 문서가 생성됩니다(따라서 문서 제목을 짓는데 고심할 필요가 없습니다). - 마크다운 문서를 업로드할 때
published
를false
로 하면drafts
폴더로 동기화됩니다. - 기존에 작성된 워드프레스 문서를
Export to GitHub
할 때 전체 문서가 마크다운 문서로 변환됩니다. 이 때 마크다운 문서는 마크다운 문법으로 변환되고, HTML 문서는 HTML 문법으로 인식하여 변환됩니다. 간혹 마크다운 문서인데, HTML로 인식되어 변환된 경우도 있었습니다.
버그
- 현재 저는 Featured Image From URL라는 플러그인을 이용 중인데, Page를 Export하고 Import할 때 불필요한 dummy featured image가 생성됩니다. 이에 대해서 개발자 포럼에 이슈를 올리긴 했는데, 당장 수정되지 않는다면 페이지를 포스트로 변환하는 방법도 고려해봐야할 것 같습니다.
2017년 2월 1일 오후 9시 38분 내용 추가
계속 사용하다보니 페이지는 물론 포스트에서 외부 이미지에 불필요한 더미 이미지가 계속 생기는 문제가 발생합니다. 더 큰 문제는 수정한 글만 그런게 아니고, 나머지 글들도 계속 발생해서, 문제가 발생한 글을 일일이 찾아서 수정해야 하는 번거로움이 있네요. 혹 떼려다 혹 붙이겠습니다. 그냥 복사/붙여넣기 신공을 이용해야겠네요.
2017년 2월 2일 오후 10시 00분 내용 추가
해당 GitHub 이슈란에 올리니 개발자가 적극적으로 응대해줘서 다시 사용을 하고 있습니다. 임시방편이지만 아래와 같은 방법으로 현재 별다른 문제없이 사용 가능하네요.
wp-content
폴더 아래에mu-plugins
폴더 안에wpghs-custom-filters.php
파일을 만듭니다. 폴더가 없다면 새로 생성합니다.- 아래 코드를 입력하고 저장합니다.
<?php
add_filter('wpghs_pre_import_meta', function ($meta) {
unset($meta['fifu_image_url']);
return $meta;
});
?>
핑백:c2wzl5s