2026-01-14 21:27:38 +08:00
2026-01-14 21:27:38 +08:00
2026-01-14 21:27:38 +08:00
2026-01-14 21:27:38 +08:00
2026-01-14 21:27:38 +08:00
2026-01-14 21:27:38 +08:00

Markdown文件自动处理与定时推送系统

功能说明

本系统用于自动处理Markdown文件将24小时内更新的文件复制到指定目录并提交Git变更然后定时推送到远程仓库。

主要功能

  1. 遍历目录遍历指定目录下的所有Markdown文件包含子文件夹
  2. 解析frontmatter解析每个文件的YAML frontmatter属性
  3. 检查更新时间优先使用frontmatter中的updated字段,否则使用文件修改时间
  4. 筛选24小时内更新的文件只处理最近24小时内更新的文件
  5. 同名文件处理支持三种策略overwrite(覆盖), skip(跳过), rename(重命名)
  6. Git提交:自动提交变更,提交信息格式:feat: 📝 {title}
  7. 定时推送每天早上六点、中午12点、晚上零点推送到远程仓库

文件说明

  • parse_frontmatter.py主脚本用于处理Markdown文件
  • push_to_remote.py:推送脚本,用于将本地提交推送到远程仓库
  • push_to_remote.batWindows批处理文件用于运行推送脚本
  • push_to_remote.shLinux shell脚本用于运行推送脚本
  • example.md示例Markdown文件

配置说明

1. 添加远程仓库

在目标目录下执行以下命令添加远程仓库使用SSH协议

git remote add origin git@github.com:username/repo.git

2. SSH密钥配置

确保SSH密钥已正确配置密钥文件应位于~/.ssh/目录下:

  • 检查SSH密钥是否存在

    ls -la ~/.ssh/
    
  • 如果没有SSH密钥生成新密钥

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  • 将公钥添加到GitHub/GitLab等平台

3. 定时任务配置

Windows系统使用任务计划程序

  1. 打开"任务计划程序"(搜索"Task Scheduler"
  2. 点击"创建基本任务"
  3. 输入任务名称和描述
  4. 选择"每天"触发器
  5. 设置起始时间为"00:00:00",重复任务间隔为"12"小时,持续时间为"1天"
  6. 选择"启动程序"操作
  7. 浏览并选择push_to_remote.bat文件
  8. 勾选"当单击完成时,打开此任务属性的对话框"
  9. 切换到"触发器"选项卡,点击"新建"
  10. 设置另一个触发器为"每天",起始时间为"12:00:00"
  11. 点击"确定"完成配置

Linux系统使用cron

  1. 打开cron配置文件

    crontab -e
    
  2. 添加以下行,设置每天零点、六点、十二点执行推送脚本:

    0 0 * * * /path/to/push_to_remote.sh
    0 6 * * * /path/to/push_to_remote.sh
    0 12 * * * /path/to/push_to_remote.sh
    
  3. 保存并退出对于vim编辑器Esc,然后输入:wq

4. 脚本参数配置

可以根据需要修改脚本中的默认参数:

  • parse_frontmatter.py

    • source_dir:源目录路径
    • destination_dir:目标目录路径
    • overwrite_strategy:同名文件处理策略
  • push_to_remote.py

    • repo_pathGit仓库路径
    • remote_name:远程仓库名称
    • branch:分支名称

使用说明

  1. 运行主脚本

    python parse_frontmatter.py
    
  2. 手动运行推送脚本

    • Windows
      push_to_remote.bat
      
    • Linux
      chmod +x push_to_remote.sh
      ./push_to_remote.sh
      

注意事项

  1. 确保Python环境已正确安装并且已安装所需依赖

    pip install pyyaml gitpython
    
  2. 确保目标目录已初始化Git仓库或者主脚本会自动初始化

  3. 确保已正确配置SSH密钥并且有权限访问远程仓库

  4. 定时任务运行时,确保系统处于开机状态

日志说明

脚本会输出详细的日志信息,包括:

  • 处理的文件数量
  • 成功复制的文件数量
  • 提交的Git变更
  • 推送到远程仓库的结果

可以根据需要将日志重定向到文件,以便查看历史记录:

python parse_frontmatter.py > log.txt 2>&1
Description
markdown转到Hexo并提交到git仓库
Readme 31 KiB
Languages
Python 97.4%
Dockerfile 2.6%