Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: UrlStyleType add "absolute" for full url slug #33

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

mr-kelly
Copy link

@mr-kelly mr-kelly commented Feb 10, 2025

I added a new URL style mode called 'absolute.'

It can ignore the location of the user's wiki document and directly use the slug address written by the user as a storage location in the directory structure.

我新增了一个 URL 风格模式,叫做‘absolute’。

它可以忽略用户的 wiki 文档所在的位置,直接使用用户写入的 slug 地址作为目录结构中的存放位置。

这个功能改动的总结如下:

改动名称:支持 absolute 的 URL 风格
改动描述:

  • 在 README.md 中添加了 absolute 的 URL 风格说明。
  • 在 feishu.ts 文件中新增了 absolute 类型,并更新了 URL_STYLE 的默认值处理逻辑。
  • 在 feishuDownload 函数中更新了下载文件的 URL 处理逻辑,并增加了下载失败时的 URL 日志。
  • 在 summary.ts 文件中更新了 prepareDocSlugs 函数以支持 absolute 风格,使用 fileKey 作为文件的 slug。
  • 在 tsconfig.json 文件中添加了 dom 库支持。
  • absolute URL 风格的作用:导出文件紧跟 slug 的绝对路径结构,如 /foo/bar/dar。

相对模式(nested)

文档 slug 导出位置
文档A a a.md
文档A->B a/b a/a/b.md
文档A->C c a/c.md

绝对模式(absolute)

文档 slug 导出位置
文档A a a.md
文档A->B a/b a/b.md
文档A->C c c.md

@huacnlee
Copy link
Member

没看懂这样改动与之前的 nested 有什么区别,请截图来举例说明。

@mr-kelly
Copy link
Author

没看懂这样改动与之前的 nested 有什么区别,请截图来举例说明。

相对模式(nested)

文档 slug 导出位置
文档A a a.md
文档A->B a/b a/a/b.md
文档A->C c a/c.md

绝对模式(absolute)

文档 slug 导出位置
文档A a a.md
文档A->B a/b a/b.md
文档A->C c c.md

@huacnlee
Copy link
Member

huacnlee commented Feb 11, 2025

感觉这个根本的问题是你在 B 文档里面应该把 slug 标识为 b 而不用带上 a/ 的前缀。

- a (slug: a)
  - b (slug: a/b)

这样用明显会有问题,例如 a 有天改成了 a1,它的子集没有跟着变化,b 文档在 a1 下面,然而它的路径已经错了,这样反而会导致一系列的问题。

- a (slug: a1)
  - b (slug: a/b)

所以,基于这个原因,看起来没有引入这个改动的必要。

@mr-kelly
Copy link
Author

mr-kelly commented Feb 11, 2025

感觉这个根本的问题是你在 B 文档里面应该把 slug 标识为 b 而不用带上 a/ 的前缀。

- a (slug: a)
  - b (slug: a/b)

这样用明显会有问题,例如 a 有天改成了 a1,它的子集没有跟着变化,b 文档在 a1 下面,然而它的路径已经错了,这样反而会导致一系列的问题。

- a (slug: a1)
  - b (slug: a/b)

所以,基于这个原因,看起来没有引入这个改动的必要。

其实不是技术问题,是适配导出之后的业务场景。
我们使用的是“模仿 Docusaurus”的Autogenerated 模式(https://docusaurus.io/docs/sidebar/autogenerated

类似这样:

文档 slug 导出位置
章节A a/README.md a/README.md
章节 A->B a/b.md a/b.md
章节 A->C a/c.md a/c.md

主要适配到这类场景,没关系,可以 keep fork

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants