개요
StackEdit는 Markdown문서 편집을 위한 웹서비스입니다. 자신의 구글 드라이브를 디스크로 이용하여 온라인에서 Markdown을 편집할 수 있습니다.
개인적으로 오랜기간 동안 블로그에 작성할 글들을 이 도구를 사용하여 편리하게 작성했습니다.
하지만 현재 약 15개월째 신규 업데이트가 되고 있지 않아 오픈소스의 최대의 약점인 갑작스러운 지원 중단으로 그동안 작성하였던 글들이 사라지는 것은 아닐까 하는 마음에 급히 백업을 위한 스크립트를 만들어 보았습니다.
처음부터 StackEdit에서 지원하는 Git도 구글드라이브와 함께 저장공간으로 병행 사용했다면 굳이 스크립트까지 만들어 요란 법석하게 할 필요가 없었겠고, 글의 분량이 적었다면 일일이 손으로 저장할 수도 있었겠지만 오랜 시간 사용한 도구이다 보니 꽤나 많은 자료가 쌓여 있어 스크립트를 만들게 되었습니다.
사용법
StackEdit 측면의 메뉴 [Workspace backups] → [Export workspace backup] 을 이용하여 현재까지 작성한 글을 모두 하나의 json
형식으로 변환합니다.
아래 python 스크립트를 실행하면, json
의 내용에 따라 폴더 및 markdown 파일(.md
)을 생성합니다.
코드
import os
import json
import codecs
def showPath(data, id):
filename = ""
if data[id]["parentId"] is not None:
# print("p:"+str(data[id]["parentId"]))
filename = showPath(data, data[id]["parentId"])
return filename + (data[id]["name"] + "/")
with codecs.open('StackEdit workspace.json', 'r', 'utf-8-sig') as json_file:
data = json.load(json_file)
for (k, v) in data.items():
path = './'
if v["type"] == "file":
parent = v["parentId"]
if parent is None:
path = './'
elif parent == 'trash':
path = './.stackedit-trash/'
else:
path = './' + showPath(data, v["parentId"])
os.makedirs(path, exist_ok=True)
filename = v["name"] + ".md"
f = open(path+filename, "w+")
print(filename)
contId = v["id"] + "/content"
# print(data[contId]["text"])
f.write(data[contId]["text"])
f.close()
'개발도구 > 기타' 카테고리의 다른 글
[Unity] Android 빌드 및 실행 오류 (1) | 2020.10.26 |
---|---|
[Vim] Normal모드에서 영문 키보드로 자동 전환하기 (Windows) (3) | 2020.10.13 |
Oracle Cloud Free Tier 가입 오류 및 해결 과정 (0) | 2020.05.11 |
Heroku Stack 지원만료 안내 및 조치 (0) | 2019.11.19 |
Permission Error for NPM install -g (0) | 2019.08.25 |