#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import re import sys import shutil from common import loadData from common import rootPath from common import saveFile from common import releaseInfo from common import createFolder def initFolder() -> None: createFolder(releaseInfo['gitbookDir']) createFolder(os.path.join(releaseInfo['gitbookDir'], './assets/')) createFolder(os.path.join(releaseInfo['gitbookDir'], './content/')) def loadChapter(caption: str, content: list) -> str: chapterNum = re.search(r'^第(\d+)章', caption)[1] chapterNum = '0' * (3 - len(chapterNum)) + chapterNum # add `0` prefix fileName = 'chapter-%s.md' % chapterNum saveFile( os.path.join(releaseInfo['gitbookDir'], './content/', fileName), '# %s\n\n%s\n' % (caption, '\n\n'.join(content)) ) return fileName def loadChapters(chapters: dict) -> dict: catalog = {} for (title, chapter) in chapters.items(): catalog[title] = loadChapter(title, chapter) return catalog def loadCover(metadata: dict) -> None: cover = '---\ndescription: 作者:%s\n---\n\n# %s\n\n' % (metadata['author'], metadata['name']) cover += '

栩栩若生

\n\n' cover += '\n>\n'.join(['> %s' % x for x in metadata['desc']]) + '\n\n' cover += '{% embed url="https://github.com/dnomd343/xxrs-crawler.git" %}\n项目地址\n{% endembed %}\n' saveFile(os.path.join(releaseInfo['gitbookDir'], 'README.md'), cover + '\n') def loadSummary(catalog: dict) -> None: summary = '# XXRS\n\n' summary += '* [序言](README.md)\n\n' summary += '## 内容 \n\n' for (title, mdFile) in catalog.items(): summary += '* [%s](content/%s)\n' % (title, mdFile) saveFile(os.path.join(releaseInfo['gitbookDir'], 'SUMMARY.md'), summary) def loadGitbook(jsonName: str) -> None: data = loadData(jsonName) loadCover(data['metadata']) catalog = loadChapters(data['content']) loadSummary(catalog) shutil.copy( os.path.join(rootPath, './assets/cover.jpg'), os.path.join(releaseInfo['gitbookDir'], './assets/cover.jpg') ) if __name__ == '__main__': initFolder() loadGitbook(sys.argv[1])