docs:离线文档

国庆期间 Koishi 官方文档的访问性恶化,因此有必要做一个离线文档插件了。

需求贴:离线文档插件

1 个赞

目前这个插件存在一些已知问题:

  • 文档内外的亮/暗主题不同步
  • 文档内外的语言不同步
  • 文档插件体积过大 (>200MB),本身的安装成为难题
  • 部分链接点击后会 404 (例如主页的即刻起步,建议暂时使用导航栏代替)

之后会陆续解决这些问题。

2 个赞

20231017 更新:将不同语言文档拆分到了独立的包中进行分发。目前本体体积降低到了 24MB,已经勉强可用了。

有趣的发现:似乎不装这些包也能浏览文档。那么分出语言包的意义在哪里呢?我也不知道

实际上是因为文档采用 SSR 构建,产生了大量多余体积。如何优化构建产物将会是一个值得研究的题目。

2 个赞

复现流程

  • yarn create koishi
  • 安装 docs 插件
报错日志
2023-12-20 04:00:40 [W] config failed to load docs
2023-12-20 04:00:40 [W] config C:\Users\z2598\Desktop\workspace\tmp\koishi-app\node_modules\koishi-plugin-docs\lib\index.js:49
                                    import.meta.url.replace(/\/src\/[^/]+$/, '/client/index.ts'),
                                           ^^^^

                        SyntaxError: Cannot use 'import.meta' outside a module
                            at internalCompileFunction (node:internal/vm:77:18)
                            at wrapSafe (node:internal/modules/cjs/loader:1288:20)
                            at Module._compile (node:internal/modules/cjs/loader:1340:27)
                            at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
                            at Module.load (node:internal/modules/cjs/loader:1207:32)
                            at Module._load (node:internal/modules/cjs/loader:1023:12)
                            at Module.require (node:internal/modules/cjs/loader:1235:19)
                            at require (node:internal/modules/helpers:176:18)
                            at Proxy.import (C:\Users\z2598\Desktop\workspace\tmp\koishi-app\node_modules\@koishijs\loader\lib\index.js:112:12)
                            at Proxy.resolve (C:\Users\z2598\Desktop\workspace\tmp\koishi-app\node_modules\@koishijs\loader\lib\shared.js:233:51)
2 个赞