ZXSORA · CMS-FIDELITY-20260925
搬得进,摆得正,取得回
五系统导入导出功能介绍
先摆问题,再论矛盾,动手解,最后让实践说话——每一步都配当场拍的截图。
5 源系统 · 28 篇零丢失 · 113 项检查 0 失败 · 25 附件原名 · 5 条回环全通

一、问题摆在这儿:想搬,又怕搬坏
把别的系统里的文章搬进 ZXSORA CMS,人人都心里打鼓。把这股鼓声摆上桌面,其实是三笔账:
- 怕丢
正文一个字、附件一个文件,少一样就是搬家搬丢了;
- 怕乱
图、音频、视频在文章里的先后位置,搬完漂了,文章就散了架;
- 怕改名
附件一旦被改名,老引用全断,回头对账都对不上。
三笔账指向同一个矛盾:「要用别家系统的内容」与「数据一个字节都不能走样」之间的矛盾。矛盾的主要方面在位置与文件名——丢字丢文件是显性的,位置漂移、文件改名是隐性的,隐性的才是要害。抓住这一条,办法就有了:不看说法,看做法,让每一步都经得起逐字逐节的比对。
二、怎么解:一份契约,四步流水
第一,同题同料。先立一份内容契约(manifest.json):五类样张——纯文字、图文、纯图、音频、视频——标题、正文、媒体全部定死,五个系统各写各的,但写的必须是同一篇。媒体五个、字节固定:
第二,原生导出。不在数据库里抠数据,每个系统走自己的导出路:WordPress 出 WXR,Hugo/Hexo 出文件包,Halo 出内置备份 zip,Strapi 出 CLI tar.gz。
第三,四通道导入。ZXSORA CMS 后台一次挂齐:WordPress、Halo、Strapi、MD 包四个导入按钮,外加 全部(MD)/WXR/Hugo/Hexo 四种导出。
第四,实践检验。导入完不算完,写比对器逐项打勾:文字逐字、顺序单调、媒体序列相等、落盘字节与原名一致——113 项,一项一项过。

ZXSORA CMS 后台文章页:四个导入按钮与四种导出格式一排齐(实拍)
三、第一步实况:在各自系统里写,走各自的导出
五类文章不是拼 XML 拼出来的,是在每个系统的原生界面里、原生结构里一条条写出来的:

WordPress 后台:5 篇保真样张成排,媒体库同批入库(实拍)

Hugo:page bundle 结构(index.md 与媒体同目录),列表五题齐全(实拍)

Hexo:_posts + source/uploads,列表五题齐全(实拍)

Halo 中文站:console API 建文发布,前台五篇全渲染(实拍)

Strapi 内容管理:Article 五篇全部 Published(实拍)
| WordPress |
wordpress.wxr |
40,465 B |
post×7 + attachment×5 |
| Hugo |
hugo-content/ |
5 bundle |
5 md + 5 原名媒体 |
| Hexo |
hexo-content/ |
10 文件 |
5 md + uploads 5 媒体 |
| Halo |
halo-backup.zip |
3,166,348 B |
58 条目,扩展全量 + 5 原名附件 |
| Strapi |
strapi-export.tar.gz |
1,606,100 B |
33 条目,10 实体行 + 14 资产 |
四、第二步实况:四通道导入,28 篇一篇不少
|
WordPress WXR |
7 篇
· 5 附件原名 · 0 跳过(只有标题的空草稿也救回) |
|
Hugo / Hexo 包 |
5+5 篇
· 音视频与 md 图链按原名还原 |
|
Halo 备份 zip |
6 篇
· 扩展逐行还原 · 5 附件原名 |
|
Strapi tar.gz |
5 篇
(发布版优先)· 附件按其哈希原名入库 |
导入侧修掉的五个保真缺口——每一处都是被比对抓出来才修的:
①只有标题的空草稿被跳过 → 标题也保全;
②md 没 slug 落成 item-* → 用文件名/bundle 父目录兜底;
③同秒导入共用批次目录互撞 → 批次号加毫秒;
④md 里的音视频/裸文件名链接无改写通道 → 按原名搬进批次并改写;
⑤Strapi 草稿与发布双版本 → 按 slug 归组、发布优先。
五、实践检验:没有调查,没有发言权
导入完就宣布成功,是自欺。写比对器 verify.py:拿五个源的原始文件,对 ZX 库里的落库结果,逐篇打勾:
| 文字逐字 |
每篇4-5 个签名标记在 ZX 正文里逐字命中 |
25/25 |
| 顺序一致 |
标记下标必须单调递增(图文先后、音视频夹心) |
25/25 |
| 媒体序列 |
源正文的媒体文件名序列 == ZX 正文的序列 |
25/25 |
| 落盘核验 |
文件存在 + 字节与源一致 + 文件名为源原名 |
25/25 |
|
结构杂项 |
总数 28=7+5+5+6+5、空草稿救回、hello-halo 在列 |
13/13 |
ZXSORA CMS 前台实拍复核——HTML 组原样渲染,md 组由 ZX 转换渲染,媒体真实可播:

图文篇(WP 源,HTML 原样):前哨甲→图A→中继乙→图B→收尾丙(实拍)

图文篇(Hexo 源,md 存储):ZXSORA CMS 渲染为 <img>,指向按原结构还原的附件(实拍)

音频播放器夹在引子与尾注之间(实拍)

视频播放器 + 下载链接都在原位(实拍)
六、回环:从 ZXSORA CMS 出发,一站一站送回家
回环 A · WordPress。导出 WXR 送进全新 WP 站(同站回导会触发 WP 按文件名判重跳过改写,这是它的自我保护,所以要给它一个干净靶子):插件自动安装,28/28 篇落地,10 个附件全部抓取入库,30 处正文引用全部指向自家上传目录,源站残留 0,抽验 HEAD 200。

回环图文页:图从 WP 自家 /wp-content/uploads/ 加载,图A按位渲染(实拍)

回环站后台:28 篇全在列(实拍)
回环 B/C · Hugo 与 Hexo。导出包直接铺回 content/ 与 source/:Hugo 重建出 29 条页面、Hexo 出现 28 篇新文,五类标记逐篇通过,媒体 5/5 HEAD 200。

Hugo 合并重建后列表(实拍)

Hexo 视频回环页,媒体 200(实拍)
回环 D/E · Halo 与 Strapi。媒体字节从 ZX 取出 → 用它们各自的上传接口重新入库 → 以它们的内容 API 写回(slug 加 zx-back- 前缀避让源文章):Halo 5 篇全发布、Strapi 5 篇全 Published,标记逐字+顺序+媒体 200 逐篇核过。

Halo 首页五篇 zx-back-*(实拍)

Strapi 列表五对配齐全 Published(实拍)
七、注意事项(红线与边界)
WP 对库里已有的同名媒体只提示 already exists 不改写正文——要验「完全可用」,请导入到干净目标站(本卷即在全新 :9401 上完成)。
WXR 里的附件地址取自导出时的请求主机;供件方与导入方需在同一台机器可达(本卷经 localhost 头落到共享工作区实例供件)。
PNG 会在入库时被它压缩——ZX 按它导出的字节与名字原样搬运,不做二次加工。
Hugo/Hexo 组正文按 md 存进 ZX,前台转换渲染;导出给 WP 时先转 HTML 再绝对化。
exports/ 五份原生产物、verify-report.json、verify.py、wp_reimport.ps1、zx_shots.js——谁来都能复跑。
把这轮活儿拆开摆,就是三句话:
导得进——五种原生格式 28 篇连 25 个附件全量落地,113 项检查失败 0;
摆得正——每篇里图、音频、视频的先后位置与源站逐位相同,文件名一个没改;
取得回——WXR 进全新 WordPress 自带引用,Hugo/Hexo 铺回去能重建,Halo/Strapi 用它们自己的接口收下内容。
凡没做到的,当场修到做到;
修不动的,原样写进「注意事项」。
全部数字可复核,全部截图是当场拍的——这就是实践对功能的检
网硕互联帮助中心





评论前必须登录!
注册