如何将rust的mdbook 大纲转换成本站大纲

如何将rust的mdbook 大纲转换成本站大纲

hejiashenghejiasheng
1 次阅读
mdbookrust
文章目录

网上有很多mdbook写的 大纲。如果需要将这部分文档搬移到本站,就需要一个转换脚本:

代码如下:

python
import re, jsonimport sysfilename = sys.argv[1]md = open(filename).read()lines = [ln.rstrip() for ln in md.splitlines() if ln.strip() != ""]# 匹配规则link_re = re.compile(r'^\[([^\]]+)\]\(([^)]+)\)$')li_re = re.compile(r'^(\s*)-\s+\[([^\]]+)\]\(([^)]+)\)')nodes = []curr_folder = Nonenext_id = 1for ln in lines:    # 独立链接(README -> 前言)    m = link_re.match(ln.strip())    if m:        title, href = m.groups()        if href.lower().endswith("readme.md"):            nodes.append({"id": next_id, "title": "前言", "type": "chapter"})            next_id += 1        continue    # 列表项    m = li_re.match(ln)    if not m:        continue    indent, title, href = m.groups()    level = len(indent)    if level == 0:        folder = {            "id": next_id,            "title": title,            "type": "folder",            "expanded": True,            "children": []        }        next_id += 1        nodes.append(folder)        curr_folder = folder    else:        if curr_folder is None:            curr_folder = {                "id": next_id,                "title": "章节",                "type": "folder",                "expanded": True,                "children": []            }            next_id += 1            nodes.append(curr_folder)        chapter = {"id": next_id, "title": title, "type": "chapter"}        next_id += 1        curr_folder["children"].append(chapter)print(json.dumps(nodes, ensure_ascii=False, indent=2))

将输出的结果粘贴到本站的 编辑大纲 框里保存即可。

评论区0

还没有评论,快来抢沙发吧~

登录 后可发表评论