脚本功能和要求
1.配置项
# =====> 配置信息
dir_mdfiles = r"D:/博客/typecho_local/markdown原始文件" #需要手工创建相关目录用于编写原始文件,目录路径使用 '/'
dir_attachment = r"D:/博客/typecho_local/data/attachment" # nginx 中定义的存放附件的路径
dir_attachment_webserver = '/attachment' # ningx中配置的附件相对目录
table_prefix = 'typecho_' # 表前缀
authorId = 1
allowComment='0' # 默认是否允许对文章评论, 长度为1的字符型, 取值: '0','1'
file_extension_list = ['md','jpg','jpeg','png'] # 检查哪些后缀的文件的最后修改时间,'.md' 必须包含. .md 外的其他文件会作为附件复制到 dir_attachment
# <===== 配置信息
2.markdown文件头
在markdown文件头定义文件本身的字段,用于导入数据库
- 文件头以
---
作为单独的行开始和结束 - slug必须唯一,建议以日期开头以更好的保证唯一性,类似 jekyll的文件命名
- created字段格式: 2020-10-21 09:00
- categories,tags字段:以英文逗号分隔
- status: private,publish
示例:
title: typecho更新脚本实现思路
slug:20201113_md2te
categories:工具,编程
tags: typecho,python脚本
created:2020-11-13 17:00
status:publish
3.文件中使用的图片
在md文件当前目录存放图片, 方便按文件夹组织和移动md源文件,也方便在 md编辑器中预览 md文件
图片命名规则:20201021xxx.png, 会根据日期复制到对应的目录,并在导入数据库时替换掉图片的 URL
图片插入规则: 
, 单独一行插入, []
内为空
4.脚本运行
假设脚本名称为: (已使用gogs管理脚本的执行):md2te.py
,支持命令行参数 f 强制更新所有md文件,f必须为命令行第二个参数(第一个为python文件本身)
/path2python /data/md2te.py f
可以设置 crontab任务定时更新(已使用gogs管理脚本的执行):
# update typecho per xx minutes
*/20 * * * * username /path2/python /path2/md2te.py
文件同步
使用 syncthing 或其他同步工具。脚本可以放在同步文件夹中, 这样修改了脚本后可以马上同步使用gogs非常方便
脚本已经实现的部分功能
- 支持emoji表情和对应短代码
- 支持jieba分词自定义字典,支持自定义分词时需要替换掉的字符串
- 支持删除不存在markdown文件对应的post
- 自动更新分类,标签以及对应的数量;自动清理count为0的cat 和tag
- 支持自定义分类的层级和顺序
- 支持自动维护在markdown文件目录下的图片附件路径(图片以固定格式的日期开头)
- 支持post的分词维护