这篇文章上次修改于 4 个月前,可能其部分内容已经发生变化,如有疑问可询问作者。
最近想从hexo转移到typecho,但是typecho是没有一键导入md文章,手动导入又很烦,怎么办呢。于是我就想用 Python 来写一个自动解析md导入typecho的脚本。
于是就开始编码了,首先是用正则表达式提取,hexo的md头部是YAML格式的,只要解析 title date tags categories 就行了,这里就是tags和category难解析,他们可能不止一个标签。但也可能没有标签。
对于上面的解析,我采用两个判断,以及捕获异常的方式解析,tags和category的方式有一些不同。实现如下:
这里的踩坑点主要是正则中的 \s 他不仅匹配一个空格,也可以是换行符等等,所以我采用了 [ ]* 匹配多个空格。如果匹配不到呢,则时会抛出异常 AttributeError 然后捕获异常,让 tags(category) = ‘’就行了。
然后是插表方面,连接之后,批量解析文件,将字段插入表中,这里需要插入三个表,分别是 typecho_metas typecho_contents typecho_relationships
typecho_contents 中插入文章内容,从 typecho_metas 中插入分类和标签,从 typecho_relationships 中建立文章和分类和标签的关系。
这里需要为 typecho_metas 表中的 name tpye 建立联合主键,避免重复插入。在重复插入时进行更新操作,使得 count = count + 1
全部源码见:
欢迎交流

亲亲留个评论再走呗

正在加载评论区...