SuperAPI AI 工具集

re-extract

数据与分析

查看项目

更新于 10-16 07:29

技能介绍

用途

re-extract 用于将旧版 Confluence 格式的 RouterOS 文档导出内容重新提取到 SQLite 数据库中。它面向数据库流水线的重建,而非 manual.mikrotik.com 的迁移。

何时使用

  • 存在旧版 Confluence HTML 导出。
  • 需要从零重建数据库。
  • 模式变更需要重新提取。
  • restraml GitHub Pages 中有新的 RouterOS 版本可用。

不适用场景

不要将此技能用作 https://manual.mikrotik.com 的迁移路径。MikroTik 新的 Docusaurus 手册和 CLI 参考需要重新设计提取器和 MCP/TUI 结果结构;请先阅读 DESIGN.md 和 briefings/B-0012-docusaurus-manual-migration.md。

使用方式

验证前置条件

  • 已安装 Bun:bun --version
  • 已安装依赖:bun install
  • 旧版 HTML 导出存在于 box/documents-export-*/ROS/
  • 对于命令:需要访问 https://tikoci.github.io/restraml/(或显式提供本地文档路径)

清理现有数据库

make clean

运行完整流水线(二选一)

单版本(快速,仅最新稳定版):

make extract

所有版本(较慢,全部 46 个 RouterOS 版本):

make extract-full

流水线顺序:

  1. extract-html — HTML → pages + callouts 表
  2. extract-properties — 从 HTML 提取属性表 → properties 表
  3. extract-commands 或 extract-all-versions — inspect.json → commands + ros_versions + command_versions
  4. link — 命令与页面映射

验证结果

make search query="firewall filter"

完整流水线的预期计数:

  • 约 317 个页面,约 4860 个属性,约 1034 个 callouts
  • 约 40K 命令(主版本),约 1.67M command_versions
  • 46 个 ros_versions,约 92% 目录链接覆盖率

类型检查与 lint

bun run typecheck && make lint

故障排除

  • 如果 HTML 目录发生变化,请更新根 Makefile 中的 HTML_DIR。
  • 如果使用离线/本地数据,请向 extract-commands.ts 或 extract-all-versions.ts 传递显式源路径。
  • 每个提取器都是幂等的——可以安全地单独重新运行。
  • 外键删除顺序很重要:callouts → properties → pages。