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

feat(bi-link): support force relative path #344

Merged
merged 3 commits into from
Nov 26, 2024
Merged

Conversation

LincZero
Copy link
Contributor

No description provided.

@LincZero
Copy link
Contributor Author

LincZero commented Nov 24, 2024

优点、使用场景

  1. 双链插件在某些系统中使用时存在问题,修复bug
  2. 多处部署时,可能存在根路径不同的情况,针对这种情况进行配置简化
  3. (不关键) 多数情况被引用文章通常在路径上与原文章较近,或附件文件夹是在源md所在文件夹里的,此时相对路径相对较短和简洁
  4. (不关键) 个人习惯?

下面展开讲

多处部署问题

有可能存在一种情况:两个部署的位置中,baseDir或rootDir不一样!

例如:我可能在github的组织和个人中都同时挂载了一个文档(gtihub的组织网站路径会多一层,而个人的不会),此时两者可能一个的baseDir是组织名,而另一个的baseDir则是默认的 /

此时如果使用原来的方法需要分别设置baseDir/rootDir。而使用新选项强制使用相对路径,可以解决这个问题

另一种解决方法

不过使用新选项其实也可以解决,而且本身config.ts的base也存在这个问题。之前我一般用另一种解决方法:

图片

在某些文档系统中使用失败

8a75174e1070c26968be7ff10264d9c0

bi-link会将第14行转化为第16行,在vitepress及nolebase系统中,这是正常的。
但在vuepress系统中存在问题,在vuepress中:

  1. 这种方式处理文件引用是正常的,但图片引用存在问题
  2. 转化为第16行,系统在dev打开对应页面时,和build时都会报错
  3. 此时需要将第16行改为第18或第20行才能正常工作……

@nekomeowww nekomeowww added bug Something isn't working pkg/bi-directional-links Related to @nolebase/markdown-it-bi-directional-links labels Nov 25, 2024
@nekomeowww nekomeowww self-requested a review November 25, 2024 11:18
@LincZero
Copy link
Contributor Author

图片

话说这玩意到底是什么规范,一开始dirname放sep后面就提示:期望dirname在sep前面。
我改了后现在他又说:期望dirname在relative前面……

所以我怎么知道他应该放哪

@northword
Copy link
Member

northword commented Nov 25, 2024

所以我怎么知道他应该放哪

antfu 的 eslint 规范,对于导入和导出项,应按字母顺序排序。

对于你的,多个都需要调整,但它只能一次一次的报。

dirname 可能是要在第二个的。

你可以运行 pnpm lint:fix 来修复。

"lint:fix": "eslint --cache --fix .",

或安装 vs-code 的 eslint 插件(仓库已配置其为推荐插件),以在保存时自动修复。

@LincZero
Copy link
Contributor Author

LincZero commented Nov 25, 2024

对于你的,多个都需要调整,但它只能一次一次的报。

dirname 可能是要在第二个的。

你可以运行 pnpm lint:fix 来修复(

"lint:fix": "eslint --cache --fix .",

)。

或安装 vs-code 的 eslint 插件(仓库已配置其为推荐插件),以在保存时自动修复。

好的,学到了,感谢解答。主要是我是用github的codespace来改的,插件和自动格式化起来比较麻烦(应该)

@northword
Copy link
Member

gh codespace 也不麻烦,和本地 vscode 相差不大,他也可以正常安装插件等,也可以运行命令。

@nekomeowww 我们是否有必要配置针对 codespace 的 .devcontoiner ? 类似 https://github.com/zotero-chinese/wiki/blob/main/.devcontainer/devcontainer.json#L29 ,可以在 codespace 初始化完成后自动安装插件而无须用户确认,使用效果见 https://zotero-chinese.com/contributing/github-codespace

@nekomeowww
Copy link
Member

gh codespace 也不麻烦,和本地 vscode 相差不大,他也可以正常安装插件等,也可以运行命令。

@nekomeowww 我们是否有必要配置针对 codespace 的 .devcontoiner ? 类似 https://github.com/zotero-chinese/wiki/blob/main/.devcontainer/devcontainer.json#L29 ,可以在 codespace 初始化完成后自动安装插件而无须用户确认,使用效果见 https://zotero-chinese.com/contributing/github-codespace

看了一下感觉很精简很棒,我觉得是可以的,插件的部分可以从 https://github.com/nolebase/integrations/blob/ff44c3f1cf82b73e2e1de87fa4058869e28af577/.vscode/extensions.json 借鉴一下,可以拜托你帮忙配置一下吗?我之前没怎么用过 .devcontainer 的配置。

@nekomeowww nekomeowww merged commit fe2fef1 into nolebase:main Nov 26, 2024
6 checks passed
@LincZero
Copy link
Contributor Author

该PR似乎不是非常完善,新选项可能在windows存在问题?

图片

我想确认一件事:如下图,是否在Linux中的state.env是path、relativePath字段?而在windows中则是filePath、filwPathRelative字段?该PR的新选项在windows中会因为找不到relativePath而存在问题

@LincZero
Copy link
Contributor Author

LincZero commented Nov 30, 2024

图左windows,图右linux。

题外话:新的github codespace非常好用 👍 ,感觉可以减少很多错误提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working pkg/bi-directional-links Related to @nolebase/markdown-it-bi-directional-links
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants