news 2026/4/3 3:03:12

markdown-processor:一款使用 Python 编写的强大的 Markdown 处理工具,提供 Markdown 文本格式化和图片管理功能。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
markdown-processor:一款使用 Python 编写的强大的 Markdown 处理工具,提供 Markdown 文本格式化和图片管理功能。

1. Markdown Processor (Markdown 文件处理器)

一款使用 Python 编写的强大的 Markdown 处理工具,提供 Markdown 文本格式化和图片管理功能。

项目网址:markdown-processor

如果觉得不错记得给项目标个星哦!

2. 运行环境

  • python3.11
  • Pillow==11.0.0
  • Requests==2.32.3

3. 功能特性

3.1. 文本处理功能

  1. 列表转表格:将列表格式转换为 Markdown 表格
  2. 预处理 Markdown 内容:综合文本格式化处理
  3. 中英文之间添加空格:自动在中英文之间添加空格
  4. 标题级别调整:增加或减少所有标题级别
  5. 章节编号更新:自动更新 Markdown 文件的章节编号
  6. 换行符规则处理:按照规则在每行末尾添加换行符

3.2. 图库处理功能

  1. 图片名称管理:添加或删除图片名称
  2. 图片路径修改:修改图片路径(路径拼接)
  3. 图片提取与聚合:在本地图片库和 Markdown 文件目录之间移动图片
  4. 图片重命名:将图片名称转换为 UUID 格式(支持本地和阿里云 OSS)
  5. 网络图片下载:下载网络图片到本地并重命名为 UUID 格式
  6. 冗余图片清理:删除本地或阿里云 OSS 中未使用的图片

4. 安装指南

4.1. 安装 Python 依赖

pipinstall-r requirements.txt

依赖包:

  • Pillow==11.0.0
  • Requests==2.32.3

4.2. 阿里云 OSS 配置(可选,用于 p07 和 p10 功能)

4.2.1. 开通阿里云 OSS 云存储

  1. 注册阿里云账号并实名认证
  2. 进入 OSS 控制台(https://oss.console.aliyun.com/)
  3. 创建 Bucket(存储空间)
  4. 获取 AccessKey ID 和 AccessKey Secret

4.2.2. 安装和配置 ossutil64 工具

  1. 下载 ossutil64 工具:https://help.aliyun.com/zh/oss/developer-reference/install-ossutil
  2. 配置 ossutil64:
ossutil64 config

按照提示输入:

  • Endpoint: 根据 Bucket 所在地域选择(如 oss-cn-hangzhou.aliyuncs.com)
  • AccessKey ID: 您的 AccessKey ID
  • AccessKey Secret: 您的 AccessKey Secret

4.2.3. 修改代码中的 OSS 配置

markdown_processor.py文件中,找到以下常量定义:

# OSS图片目录路径OSS_IMAGES_URL="oss://zdy-notebooks/images"

将其修改为您自己的 OSS 路径:

# 修改为您的OSS路径格式:oss://<bucket-name>/<directory>OSS_IMAGES_URL="oss://your-bucket-name/your-directory"

5. 使用方法

5.1. 交互式版本

运行交互式版本,按照菜单提示操作:

python main.py

5.1.1. 运行模式说明

  • 文本处理(t01-t07):
    • t01:列表转表格。
    • t02:预处理 markdown 内容。
    • t03:中英文之间添加一个空格。
    • t04:所有标题增加一级(标题左移)。
    • t05:所有标题减少一级(标题右移)。
    • t06:更新 markdown 文件的章节编号。
    • t07:按照一定规则在 markdown 文件的每行末尾增加换行符。
  • 图库处理(p01-p10):
    • p01:为 markdown 文件中的图片添加名字。e.g. ![*](xx_dir/xx.png] -> ![xx.png](xx_dir/xx.png]。
    • p02:删除 markdown 文件中的图片名字。e.g. ![xx.png](xx_dir/xx.png] -> ![](xx_dir/xx.png]。
    • p03:修改图片路径。例如:输入路径是xx/abc/,图片名字是pic.png,则拼接后的路径为xx/abc/pic.png,用拼接后的图片路径替换现有路径。
    • p04:从本地 markdown 图片库中查找 markdown 文件中的图片,移动到与 markdown 文件同名、同路径的目录下,并相应修改 markdown 文件中的图片路径。
    • p05:把位于 markdown 文件同名、同路径目录下的图片转移到本地 markdown 图片库,并相应修改 markdown 文件中的图片路径。
    • p06:根据本地图片库,把 markdown 文件中的图片名字换成 UUID 格式。
    • p07: 根据 OSS 图片库,把 markdown 文件中的图片名字换成 UUID 格式。
    • p08:下载 markdown 文件中的网络图片到本地,同时为了防止重名,顺便把名字重命名为 UUID 格式。
    • p09:从本地 markdown 图片库中删除多余的图片。
    • p10: 从阿里云 OSS 存储中删除多余的图片。

5.2. 命令行版本

# 查看帮助python main-cmdline.py -h# 具体功能使用示例python main-cmdline.py add_space -f example.md python main-cmdline.py modify_image_path -p ./docs -b ./images python main-cmdline.py download_web_image -f example.md -s ./downloaded_images

5.2.1. 命令行功能列表

  • add_lf: 按照一定规则在 markdown 文件的每行末尾增加换行符
  • update_chapter_number: 更新 markdown 文件的章节编号
  • preprocess_content: 预处理 markdown 内容
  • add_space: 中英文之间添加一个空格(不包括块代码)
  • modify_image_path: 修改图片路径
  • change_image_name_to_uuid: 根据本地图片库,把 markdown 文件中的图片名字换成 UUID 格式
  • increase_title_level: 所有标题增加一级(标题左移)
  • decrease_title_level: 所有标题减少一级(标题右移)
  • list_to_table: 列表转表格
  • download_web_image: 下载 markdown 文件中的网络图片到本地

6. 项目结构

markdown_processor/ ├── main.py # 交互式版本主程序 ├── main-cmdline.py # 命令行版本主程序 ├── markdown_processor.py # 核心处理模块 ├── rules.py # 文本处理规则定义 ├── requirements.txt # Python依赖包 ├── build.sh # Linux构建脚本 ├── build.bat # Windows构建脚本 ├── icon.ico # 应用程序图标 ├── markdown_processor_cmdline_bash_completion.sh # Bash自动补全脚本 └── upload-notebook-image.sh # 上传笔记本图片脚本

7. 构建和打包

7.1. Linux

chmod+x build.sh ./build.sh

7.2. Windows

build.bat

构建完成后,会在dist目录下生成两个可执行文件:

  • markdown-processor(交互式版本)
  • markdown-processor-cmdline(命令行版本)

8. 规则系统说明

项目包含一个强大的规则系统(定义在rules.py中),用于文本格式化:

8.1. 主要规则类别

  1. REGEX_RULES: 基础正则表达式规则
    • 中英文标点转换
    • 空格处理
    • 列表格式标准化
    • 特殊字符处理
  2. TO_TITLE_RULES: 标题大小写规则
    • 将特定单词转换为首字母大写(如 Windows, Linux, Python 等)
  3. TO_UPPER_RULES: 大写规则
    • 将特定单词转换为全大写(如 IP, VFS, F2FS 等)
  4. TO_LOWER_RULES: 小写规则
    • 将特定单词转换为全小写(如 Shell 等)
  5. SPACE_RULES: 空格规则
    • 中英文之间添加空格
    • 路径和参数周围添加空格
    • 特殊标点处理
  6. GLOBAL_SPACE_RULES: 全局空格规则
    • 行代码前后添加空格

9. 注意事项和限制

9.1. 平台兼容性

  • 大部分功能支持 Windows、Linux 和 MacOS
  • 阿里云 OSS 相关功能(p07, p10)仅支持 Linux 平台
  • 需要安装并配置ossutil64工具才能使用 OSS 功能

9.2. 文件处理

  • 支持处理单个文件或整个目录
  • 仅处理.md扩展名的文件
  • 图片处理功能需要确保图片文件存在

9.3. 编码要求

  • 所有 Markdown 文件必须使用 UTF-8 编码
  • 使用 LF(\n)作为换行符

9.4. 标题级别

  • 章节编号功能最多支持 5 级标题
  • 标题级别调整功能也最多支持 5 级标题

10. 使用示例

10.1. 示例 1:预处理 Markdown 文件

# 交互式版本python main.py# 输入运行模式: t02# 输入文件路径: ./docs/example.md# 命令行版本python main-cmdline.py preprocess_content -f ./docs/example.md

10.2. 示例 2:下载网络图片

# 交互式版本python main.py# 输入运行模式: p08# 输入文件路径: ./docs/example.md# 输入保存路径: ./images# 命令行版本python main-cmdline.py download_web_image -f ./docs/example.md -s ./images

10.3. 示例 3:清理冗余图片

# 交互式版本python main.py# 输入运行模式: p09# 输入目录路径: ./docs# 输入本地图片库路径: ./images

11. 功能详细说明

11.1. download_web_image 功能过滤说明

download_web_image功能(交互式版本 p08,命令行版本download_web_image)在下载网络图片时会自动过滤以下类型的链接:

if(img_url.startswith("https://zdy-notebooks")orimg_url.startswith("/")orimg_url.startswith("./")orimg_url.startswith("../")orimg_url.startswith("D:")orimg_url.startswith("91 图片文件")):# 跳过这些链接,不进行下载

过滤原因

  1. https://zdy-notebooks:阿里云 OSS 图片链接,已经是云端存储,无需重复下载
  2. /./../:本地文件路径,不是网络图片
  3. D::Windows 盘符路径,本地文件
  4. 91 图片文件:特定的本地图片目录路径

按需修改或删除过滤

如果需要修改过滤规则,请在markdown_processor.py文件的_download_web_image方法中修改上述条件判断逻辑:

  • 删除过滤:删除整个if条件判断,使所有链接都尝试下载
  • 修改过滤:根据需要添加或删除特定的startswith条件
  • 添加新过滤:在条件中添加新的or img_url.startswith("your-pattern")

注意:修改过滤规则后,请确保理解可能带来的影响,如重复下载本地图片或云存储图片。

11.2. upload-notebook-image.sh 脚本使用原理

upload-notebook-image.sh脚本是一个自动化工作流工具,用于管理使用 Git 管理的笔记本项目中的图片。其工作原理如下:

11.2.1. 使用场景

  • 整个笔记本项目使用 Git 管理
  • 写文章时先将图片保存在工程的类似91 图片文件目录下
  • 文章写完后,使用此脚本批量上传本地图片到阿里云 OSS,并替换工程中对应笔记的图片链接

11.2.2. 工作流程

  1. 压缩 PNG 图片:使用pngquant压缩所有 PNG 图片以减小文件大小
  2. 文档处理
    • 使用git diff找出相对于origin/main分支有修改的文件
    • 对每个修改的文件执行:
      • markdown-processor-cmdline change_image_name_to_uuid:将图片名称转换为 UUID 格式
      • markdown-processor-cmdline modify_image_path:将图片路径替换为阿里云 OSS 路径
  3. 上传图片:使用ossutil64将本地图片目录中的所有图片上传到阿里云 OSS
  4. 清理本地图片:上传完成后删除本地图片目录中的所有图片

11.2.3. 使用方法

./upload-notebook-image.sh --notebook_dir=NOTEBOOK_DIR --image_dir=IMAGE_DIR

参数说明

  • --notebook_dir:笔记本项目根目录路径
  • --image_dir:本地图片目录路径(如91 图片文件

11.2.4. 前置要求

  1. 安装pngquant图片压缩工具
  2. 安装并配置ossutil64阿里云 OSS 工具
  3. 安装markdown-processor-cmdline命令行工具(通过项目构建获得)

12. 故障排除

12.1. 常见问题

  1. 导入错误: 确保已安装所有依赖包
  2. 文件不存在错误: 检查文件路径是否正确
  3. 权限错误: 确保有文件读写权限
  4. OSS 工具错误: 确保 ossutil64 已正确安装和配置

提示: 使用前请备份重要文件,本工具会直接修改原文件内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 22:42:56

FaceFusion在殡葬服务纪念视频中的逝者影像修复与致敬

FaceFusion在殡葬服务纪念视频中的逝者影像修复与致敬 在数字技术不断重塑人类情感表达方式的今天&#xff0c;一个曾经难以想象的场景正悄然成为现实&#xff1a;一位已故亲人的面容&#xff0c;从泛黄的老照片中“走出”&#xff0c;出现在一段家庭聚会的动态影像里&#xff…

作者头像 李华
网站建设 2026/3/27 19:34:23

Open-AutoGLM安装报错频发?,掌握这5类错误代码秒级诊断

第一章&#xff1a;Open-AutoGLM 安装失败常见原因在部署 Open-AutoGLM 时&#xff0c;用户常因环境配置不当或依赖缺失导致安装失败。以下列出常见问题及其解决方案&#xff0c;帮助开发者快速定位并修复问题。Python 版本不兼容 Open-AutoGLM 要求 Python 版本不低于 3.9。若…

作者头像 李华
网站建设 2026/3/25 0:26:02

vue3+nodejs开发的非物质文化遗产非遗传统手工艺购物系统15309462

文章目录具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 同行可拿货,招校园代理 vue3nodejs开发的非物质文化遗产非遗传统手工艺购物系统1…

作者头像 李华
网站建设 2026/3/26 8:40:37

从0到1掌握Open-AutoGLM:视觉识别与控件定位的5大关键决策点

第一章&#xff1a;从0到1理解Open-AutoGLM的核心能力Open-AutoGLM 是一个面向自动化自然语言处理任务的开源框架&#xff0c;专为简化大语言模型&#xff08;LLM&#xff09;在实际业务场景中的集成与调优而设计。其核心能力体现在任务自适应、提示工程自动化以及多模型协同调…

作者头像 李华
网站建设 2026/3/31 18:21:19

Hyperf 3.1协程服务器深度解析:从架构设计到生产实践

Hyperf 3.1协程服务器深度解析&#xff1a;从架构设计到生产实践 【免费下载链接】hyperf &#x1f680; A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease. 项目地址: https://gitcode.com/gh_mirrors/hy…

作者头像 李华
网站建设 2026/3/13 18:02:18

【Open-AutoGLM操作校准指南】:掌握5大偏差修正技巧,提升模型精度90%

第一章&#xff1a;Open-AutoGLM操作偏差校准概述在大规模语言模型的应用中&#xff0c;Open-AutoGLM因其自适应生成能力受到广泛关注。然而&#xff0c;在实际部署过程中&#xff0c;模型输出常因训练数据分布偏移、推理策略差异等因素产生系统性偏差。操作偏差校准旨在识别并…

作者头像 李华