MarkShareX 使用教程三:MarkShareX 新版本系统介绍(v0.4.2)
MarkShareX:我做了一套可以 AI 托管的 Markdown 博客与知识库
写博客这件事,看起来只是“找个地方发文章”,真正长期做下来,却会遇到不少麻烦:文章散落在不同平台,图片链接可能失效,内容迁移费时费力,后台功能太少不够用,功能太多又显得笨重。
MarkShareX 就是为了解决这些问题而做的。
它是一套开源、自托管的 Markdown 内容平台,适合个人创作者、技术博主,也适合人数不多的内容团队。你可以把它部署在自己的服务器上,用浏览器写文章、管理图片、发布资讯、查看阅读数据,还可以接入 AI,帮助整理资料和生成初稿。
为什么做 MarkShareX
市面上的内容工具很多,但我一直想要一套更贴近个人创作者的系统:
- 写作时保留 Markdown 的简单和自由;
- 发布后有完整的网站,而不是一堆零散文件;
- 文章、图片和用户数据保存在自己的服务器上;
- 有搜索、评论、点赞、统计和管理后台;
- 不依赖一大串外部服务,一台普通服务器就能运行;
- AI 可以参与资料收集和初稿整理,但最终发布权仍在人手里。
MarkShareX 的开发过程本身,也一直在实践 AI Vibe Coding。简单来说,就是把真实需求和 AI 反复讨论,让 AI 参与方案梳理、界面实现、代码编写、测试补充、问题排查和文档维护,再由我决定产品应该怎么做,并对每次修改进行实际验证。它不是靠一句提示词“生成整个系统”,而是人负责方向和验收,AI 加快实现和迭代。
这种协作方式也影响了 MarkShareX 对 AI 的设计:AI 应该接手重复、耗时的工作,但内容标准、权限边界和最终发布决定仍由人掌握。
MarkShareX 不是传统静态博客的简单升级,也不想变成一套庞杂的企业内容系统。它更像一个属于自己的线上创作工作台:能写、能管、能发布,也方便以后搬迁和备份。
它能做什么
在线写作和内容管理
MarkShareX 内置 Markdown 编辑器,可以直接在浏览器里写文章。文章支持草稿和发布状态,也可以设置分类、标签、封面、作者、固定链接和文章类型。

写到一半可以先保存草稿,整理完成后再发布。文章发布以后,会自动进入知识库、分类页、标签页和站内搜索,不需要再手工维护多个页面。

如果你以前已经积累了很多 Markdown 文件,也可以通过 ZIP 批量导入。需要迁移时,还能把内容重新导出,减少被某个平台锁住的顾虑。

管好图片和附件
写作时间一长,图片管理往往比文章管理更麻烦。文件放在哪里、有没有重复上传、哪些图片已经不再使用,都会慢慢变成问题。
MarkShareX 提供了独立资源库,可以上传和批量管理图片、文档等文件。系统会识别重复文件,也能检查没有被文章引用的资源,方便定期清理。

对于网络图片,MarkShareX 还提供了网络资源管理功能。文章可以引用资源记录,而不是把外部地址散落在正文里。将来图片地址发生变化,只需要更新一处,引用它的内容就能继续使用。

让读者更容易找到内容
一个内容站不只是把文章显示出来,还要让读者能够快速找到需要的内容。
MarkShareX 支持按分类、标签、作者、文章类型和文章状态浏览,也有适合中文内容的站内全文搜索。读者可以通过关键词查找文章,不必在归档列表里一页页翻。
公开页面会生成适合搜索引擎读取的网页信息,包括独立标题、摘要、固定链接和站点地图。即使前台使用了现代网页交互方式,搜索引擎仍然可以直接读取主要内容。

评论、点赞、留言和阅读统计
内容发布以后,MarkShareX 也提供了常见的互动功能。读者可以点赞、评论文章,也可以在留言板留下信息。评论支持回复和审核,站长可以根据自己的需要决定是否先审后发。
后台会汇总文章阅读、点赞和评论数据,并提供阅读趋势、热门文章和详细阅读记录。对于个人站点来说,这些信息已经足够判断哪些内容更受欢迎,不必为了基础统计再安装一套复杂系统。

多用户协作和权限管理
MarkShareX 不只支持一个管理员。系统内置管理员、子管理员、作者和访客等角色,可以区分不同成员能看到和操作的内容。
作者可以创建和维护自己的文章;管理员可以处理全站内容、用户、评论和设置;普通访客可以浏览、互动,也可以提交作者申请。这样既能用于个人博客,也能逐步扩展成一个小型团队的内容站。

AI 不只是聊天框
MarkShareX 内置了一套可配置的 AI 功能。你可以接入兼容 OpenAI 接口的模型服务,配置模型、创作要求、可用工具和任务,让 AI 帮忙搜索资料、读取网页、整理资讯或创建文章。
临时有想法时,可以直接在后台和 AI 对话,让它根据站内内容和网络资料协助整理。对于每天、每周都要重复的内容工作,也可以交给定时任务。例如每天在指定时间追踪某类资讯,自动搜索来源、排除重复内容、提取正文,再按预先设定的写作要求生成资讯或文章草稿。
这种方式也适合维护持续更新的栏目。AI 可以定期追踪同一主题,补充新的候选资料,维持资讯栏目和选题库的更新节奏。自动任务可以创建资讯或文章;如果内容准备公开,更稳妥的做法是先保存为草稿,再由人检查事实、表达和来源。
系统会保留每次自动任务的执行记录,包括 AI 使用了哪些工具、拿到了什么结果、生成了什么内容,以及失败发生在哪一步。这样既方便检查内容来源,也便于调整创作要求和后续任务。
开发 MarkShareX 时,我和 AI 的分工也是如此:AI 加快搜索、整理和重复执行,人负责判断与验收。现在这套分工进入了产品,AI 也就不再只是一个回答问题的聊天框,而是内容创作和日常维护流程中的助手。

系统是怎么组成的
从使用者角度看,MarkShareX 可以简单理解为四个部分:
- 前台网站,用来展示文章、资讯、分类、标签和互动内容;
- 管理后台,用来写作、管理资源、用户、数据和 AI 任务;
- 应用服务,负责页面、数据读写、权限、搜索和后台任务;
- 数据目录,保存数据库、上传文件和搜索索引。
浏览器
├─ 公开网站:阅读、搜索、评论、点赞
└─ 管理后台:写作、资源、用户、统计、AI
↓
MarkShareX 应用
页面 + 接口 + 搜索 + 任务
↓
SQLite 数据库 + 文件目录
系统后端使用 Rust,前端使用 Vue,内容数据默认保存在 SQLite 中,全文搜索由 Tantivy 提供。这些技术各司其职,但普通使用者不需要单独安装数据库服务器或搜索服务。
日常备份也比较直观:重点保存配置文件、数据库和上传目录。搜索索引损坏或丢失时,可以根据数据库内容重新建立。
如何开始使用
方法一:使用 Docker Compose
如果服务器已经安装 Docker,这是体验 MarkShareX 较方便的方式:
git clone https://github.com/XLevon/MarkShareX.git
cd MarkShareX
cp .env.example .env
编辑 .env,设置必要的安全密钥,然后启动:
docker compose up -d
服务默认使用 5023 端口。浏览器访问下面的地址:
http://你的服务器地址:5023
第一次打开时,按照安装向导创建管理员账号即可。

方法二:自行构建运行
如果更习惯直接运行程序,也可以先构建前端和后端,再复制配置文件启动:
cd frontend
npm install
npm run build
cd ..
cargo build --release
cp config.example.toml config.toml
./target/release/marksharex

正式对外提供服务时,可以在前面配置 Nginx 或 Caddy,绑定自己的域名并启用 HTTPS。
第一次进入系统后台做什么
进入后台后,建议按下面的顺序完成基础设置:
- 设置站点名称、简介、Logo 和友情链接;
- 建立分类和常用标签;
- 上传站点常用图片,或登记网络资源;
- 新建一篇草稿,检查编辑、预览和发布流程;
- 根据需要开启评论审核和留言板;
- 如果要使用 AI,再配置模型服务、创作要求和任务。建议先手动运行一次,确认生成结果符合预期,再开启定时执行。
AI 不是运行 MarkShareX 的必要条件。只把它当作普通 Markdown 博客和知识库使用,也没有问题。

它适合哪些人
MarkShareX 比较适合下面这些场景:
- 想把技术文章、学习笔记和项目记录放在自己服务器上的个人创作者;
- 已经习惯 Markdown,希望获得在线后台、搜索和互动功能的博主;
- 需要多人写作,但团队规模不大,不想维护复杂内容系统的团队;
- 希望统一管理文章图片、外链资源和历史内容的人;
- 想尝试 AI 自动采集与辅助写作,同时保留人工审核的人。
如果你的需求是超大规模媒体发布、复杂审批链或多租户商业建站,MarkShareX 目前并不是为这类场景设计的。它更关注个人和小团队能否用较低成本,把内容长期、稳定地掌握在自己手中。
写在最后
MarkShareX 起初来自一个很直接的需求:我想要一个真正方便分享知识的地方。它要支持 Markdown,要有舒服的管理后台,也要让我随时知道文章、图片和数据放在哪里。
后来,搜索、评论、统计和资源管理逐渐加入进来。AI 一开始参与项目开发,接着也进入了产品本身,承担资料搜索、内容整理和定时任务。MarkShareX 就这样从一个博客程序慢慢变成了一套更完整的内容工作台。不过它的方向没有变:部署尽量简单,数据归自己,功能为写作和阅读服务。
如果你也在找一套可以自己部署的 Markdown 博客或知识库,可以到 GitHub 查看源码、部署说明和后续更新:
欢迎试用,也欢迎提交 Issue、改进建议或代码贡献。