脚本功能和要求

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

图片插入规则: ![](picFileName), 单独一行插入, []内为空

4.脚本运行

假设脚本名称为: md2te.py ,支持命令行参数 f 强制更新所有md文件,f必须为命令行第二个参数(第一个为python文件本身)(已使用gogs管理脚本的执行):

/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的分词维护

最后修改:2021 年 01 月 03 日 10 : 00 AM
如果觉得我的文章对你有用,请随意赞赏