因為gitbook作者認為一本書的章節目錄不應該過於複雜
所以原本預設只有兩層目錄
在去年一堆相關討論串結束後雖然已讓目錄可以超過兩層
但是gitbook (github源)卻無法建立相對應的目錄及檔案
在爬了許多code後 (/usr/lib/node_modules/gitbook)決定還是自己寫一個parse code來處理
這邊在讀完SUMMARY.md後會自動偵測檔案目錄是否不存在
不存在就直接創建
預設只抓三層檔案目錄的結構
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# !/usr/bin/python # -*- coding: utf-8 -*- import re import os for line in open("SUMMARY.md"): try: src1 = re.search('((.+?))', line) src = src1.group(1) except: print line else: cnt = src.count('/') if cnt == 3: str = re.search('(.+?)/(.+?)/(.+?)/(.*)', src) path = str.group(1) + "/" + str.group(2) + "/" + str.group(3) file = str.group(1) + "/" + str.group(2) + "/" + str.group(3) + "/" + str.group(4) if not os.path.isdir(path): print "create folder: " + path os.mkdir(path) if not os.path.isfile(file): print "create file: " + file open(file, "a").close() print str.group(1) + ".." + str.group(2) + ".." + str.group(3) + ".." + str.group(4) elif cnt == 2: str = re.search('(.+?)/(.+?)/(.*)', src) path = str.group(1) + "/" + str.group(2) file = str.group(1) + "/" + str.group(2) + "/" + str.group(3) if not os.path.isdir(path): print "create folder: " + path os.mkdir(path) if not os.path.isfile(file): print "create file: " + file open(file, "a").close() print str.group(1) + ".." + str.group(2) + ".." + str.group(3) |