Markdown Document Sorter

一个强大的 VSCode 扩展,通过直观的拖拽界面来排序 Markdown 文档,自动修改 frontmatter 中的 order 字段。适用于所有基于 Markdown 的文档系统。
✨ 主要功能
- 🎯 直观的拖拽排序 - 通过 Webview 界面轻松拖拽文件进行排序
- 🔄 自动更新 frontmatter - 自动修改 Markdown 文件中的
order 字段
- 📁 文件夹支持 - 支持文件夹排序(通过
index.md 文件)
- 🌍 多语言支持 - 支持中文和英文界面
- ⚡ 实时预览 - 排序结果实时显示
- 🎨 现代化界面 - 简洁美观的用户界面
🚀 快速开始
- 打开命令面板 (
Ctrl+Shift+P )
- 输入 "Markdown 文档排序"
- 选择要排序的文档目录
- 在 Webview 中拖拽文件进行排序
- 点击 "保存变更" 按钮保存排序结果
🎯 适用场景
文档系统
- VitePress - 静态站点生成器
- Docusaurus - React 静态网站生成器
- GitBook - 文档平台
- VuePress - Vue 驱动的静态站点生成器
- 其他基于 Markdown 的文档系统
使用场景
- 📚 技术文档排序
- 📖 教程章节排序
- 📝 博客文章排序
- 📋 知识库整理
- 📄 项目文档排序
📋 支持的功能
文档排序
- ✅ 支持单个 Markdown 文件排序
- ✅ 支持文件夹排序(通过
index.md )
- ✅ 自动更新 frontmatter
order 字段
- ✅ 批量处理多个文件夹
界面特性
- ✅ 拖拽排序(使用 Sortable.js)
- ✅ 实时预览排序结果
- ✅ 多语言界面(中文/英文)
- ✅ 语言切换功能
- ✅ 智能目录切换功能
- ✅ 文件刷新功能
- ✅ 根目录默认扫描
- ✅ Unix 风格路径支持
🔧 技术实现
核心技术
- VSCode Extension API - 扩展开发框架
- Webview API - 自定义界面
- Sortable.js - 拖拽排序库
- gray-matter - Frontmatter 解析
- TypeScript - 类型安全
架构特点
- 🏗️ 模块化设计 - 清晰的代码结构
- 🌐 国际化支持 - 完整的多语言实现
- 🔒 沙箱安全 - 符合 VSCode 安全规范
- ⚡ 高性能 - 优化的文件处理逻辑
- 📁 智能路径处理 - 支持多种路径格式
路径处理机制
扩展支持灵活的目录切换和路径处理:
支持的路径格式
/ - 项目根目录
/docs - 项目根目录下的 docs 子目录
/src/pages - 项目根目录下的 src/pages 子目录
/content/articles - 项目根目录下的 content/articles 子目录
docs - 传统相对路径(向后兼容)
C:\path\to\docs - Windows 绝对路径
跨平台兼容性
- 自动处理 Windows 和 Unix 系统的路径分隔符差异
- 支持
\ 和 / 两种路径分隔符
- 确保在不同操作系统上都能正确工作
📸 使用示例
基本使用流程
打开排序界面
Ctrl+Shift+P → "Markdown 文档排序"
选择文档目录
- 输入文档目录路径(如:
docs 或 /path/to/docs )
- 支持相对路径和绝对路径
拖拽排序
- 在 Webview 界面中直接拖拽文件
- 实时预览排序结果
- 支持文件夹和单个文件
保存变更
- 点击 "保存变更" 按钮
- 自动更新所有文件的 frontmatter
order 字段
支持的 Frontmatter 格式
---
title: "文档标题"
order: 1 # 这个字段会被自动更新
description: "文档描述"
---
🛠️ 系统要求
- VSCode 版本: >= 1.70.0
- Node.js: 不需要(扩展已预编译)
- 操作系统: Windows, macOS, Linux
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
🙏 致谢
⭐ 如果这个扩展对你有帮助,请给它一个星标!
📞 联系方式
| |