Vanessa219 / vditor

♏ 一款浏览器端的 Markdown 编辑器,支持所见即所得(富文本)、即时渲染(类似 Typora)和分屏预览模式。An In-browser Markdown editor, support WYSIWYG (Rich Text), Instant Rendering (Typora-like) and Split View modes.
https://b3log.org/vditor
MIT License
8.4k stars 864 forks source link

集成应用的离线需求 #1561

Closed fu050409 closed 7 months ago

fu050409 commented 8 months ago

你在什么场景下需要该功能?

我使用 Rust + Tauri + Vite + Vue,这是一个在 Rust 中类似 Electron 的方案,可以用来跨平台开发桌面端、移动端应用。

描述最优的解决方案

希望能够需要远程导入的包集成到 Vditor 中。

虽然在之前相关 issue 中了解到了作者对于 CDN 的执着,但是还是期望作者能够提供一个允许完全离线使用的方案。

对于 Markdown 编辑器其实社区里有不少方案,然而我实在是不愿意放弃 Vditor 的三种优雅的渲染方案,这是在是太优雅了。但是在集成应用中,存在离线使用的需求,并且需要高速的加载(集成应用本质是本地导入,所以远比使用CDN快)。在集成应用中,可能 CDN 需要的加载时间是集成导入的上千倍(本地导入时间可能不到 0.1s,但是 CDN 则全看网络状态)。

之前作者对离线使用的回复是:

可以下载代码后自己编译

用上线后可以访问的地址就可以了。

但是集成应用开发这边就很凄惨,打包构建都是 Tauri 提供的,也就是说,在编译时实现修改编译的 h5 和 js 代码是极度困难的,在运行时导入的难度也很高。以及对于集成开发下,很多应用其实需要离线使用。

所以综上,希望作者能够提供一个直接引用本地 css 和 js 的选项,而不是强制 CDN 或者需要编译打包后修改。

Vanessa219 commented 7 months ago

cdn 配置为 "" ,然后把 dist 拷贝到对应路径下试试。https://github.com/Vanessa219/vditor/blob/32e7c46373ce55205ec32d0099f7df6189518e74/demo/index.js 离线也是可以使用的。

fu050409 commented 7 months ago

打包构建都是 Tauri 提供的

对 Vue 的打包是由 Tauri 接管的,也就是说集成进入 Tauri 软件的是由 Rust Cargo 集成打包的,我无法在编译时修改 dist 文件的内容

fu050409 commented 7 months ago

我这边能进行修改的只有 Vue 的代码,而 Tauri 的 CLI 是编译后的 Cargo 二进制工具,如果要在编译时确保 Vditor 的依赖都被打包,那就只能修改编译工具链的代码

Vanessa219 commented 7 months ago

不需要修改 dist 文件。初始化时使用 cdn 参数即可。

fu050409 commented 6 months ago

不需要修改 dist 文件。初始化时使用 cdn 参数即可。

十分感谢你的回答和耐心,我不久前意识到你的意思是我可以将它放在public文件夹里来让 Vditor 获取,这的确是一个十分可行的方案。

fu050409 commented 6 months ago

我其实还是觉得应该做一个本地导入的选项,Tauri打包之后的软件50%的占用都来自Vditor,vite和rollupjs都无法对Vditor的依赖和样式表进行压缩优化

Vanessa219 commented 6 months ago

dist 里面是已经压缩过了的,可能作用不大,vditor 中主要是 lute 比较大。