
snyh1010
# 背景
我一般写一些分享文档比较喜欢使用[yanknote](https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.yanknote)进行编辑,
Yank Note 使用 Monaco 内核,专为 Markdown 优化。支持历史版本回溯;可在文档中嵌入小工具。支持用户编写自己的插件来拓展编辑器的功能。YankNote 编辑区和预览区同步滚动,预览区可独立滚动。
我比较喜欢的两个插件
1. mermaid
2. drawio
mermaid可以很方便的表达流程图,不需要自己去考虑怎么画好看,对于我这种正方形都画不直的手残党太友好了。
drawio可以画更多其他类型的图。
这两个组件微服里也有单独的应用支持,但yanknote里内置的版本用起来更方便,可以在编写markdown时直接嵌入,在展示时候自动渲染,完全不用考虑图片路径等操作。有点emacs里org-babel的感觉了。
yanknote里还有很多好用的插件,有需求的大佬们多多支持作者购买高级版本
yanknote目前是我体验最好的一款在线编辑文稿的软件,但对于文本编辑这活,能直接使用自己日常使用的编辑器就更顺手了,这样即可以不影响编辑体验,也能
利用上`yanknote`的丰富的UI渲染、贴心的文稿管理功能。再配合微服天然的“随时随地移动办公”的能力,一切就很流畅了。
# 开始研究
小道消息说,后面版本会支持直接用电脑应用打开微服里的文稿数据,但也不知道啥时候能支持上。
但根据我深入研究官方给开发者提供的SDK的文档里以及观察懒猫网盘的一些逻辑发现一个线索,所有懒猫微服上的应用(官方成其为lzcapp)提供的http服务上的
`/_lzc/files/home/`路径都是一个标准的webdav服务!
这样我们只要搞到这个webdav服务的帐号密码就能直接挂载到电脑里的文件管理器上了。先直接在浏览器里看看是什么情况,
访问`https://snyh.heiyu.space/_lzc/files/home/` (snyh需要替换为你微服的盒子名称),结果有点遗憾
```
Method Not Allowed
```
并没有列举出微服里的文稿数据。
可能是webdav服务本身的行为和一般跑apache/nginx那种自带的目录枚举功能不一样。然后去学习了下webdav发现这个行为是正常的,因为默认是“根目录”,webdav里
访问目录不能直接用`HTTP GET`请求,需要用个什么`PROPFIND`的不太通用的请求方法。
因为我也不打算在浏览器里直接访问就没有深入去研究有什么特殊的地方,直接找了下linux下有什么webdav的客户端,发现一个`cadaver`的工具,直接盲猜使用方法
```
[snyh@yoga-x1 dht]$ cadaver https://snyh.heiyu.space/_lzc/files/home/
Authentication required for dav on server `snyh.heiyu.space':
Username: xxx
Password:
dav:/_lzc/files/home/> ls
Listing collection `/_lzc/files/home/': succeeded.
Coll: 下载 0 May 17 10:31
Coll: .Trash 0 Jun 6 20:32
Coll: Books 0 May 25 09:39
Coll: Music 0 May 30 09:55
Coll: Pictures 0 May 18 10:09
Coll: Screenshots 0 May 17 10:31
Coll: docs 0 Jun 7 16:24
Coll: hy 0 Jun 13 10:52
Coll: share 0 Jun 13 10:47
Ender-3 S1 问题集合 (1).docx 82617 May 17 10:31
Screenshot from 2023-03-07 20-18-07.png 327902 May 17 10:31
friends-clips.mp4 30712188 May 17 10:31
ministm.kicad_pcb 50 May 17 10:31
platformio.ini 907 May 17 10:31
dav:/_lzc/files/home/>
```
💥 一次猜中,看来linux命令行还是比微服好用 :)
这里输入的帐号密码就直接是微服客户端登录时输入的帐号密码,看来安全性还可以,有多重认证,避免本地其他程序恶意访问。
但这个`cadaver`有点不好用。。命令接口类似一个高级的FTP客户端,而且无法直接调用编辑器打开文稿。
如果微服能直接提供一个ssh服务就好了,很多编辑器都直接支持访问ssh服务器上的文件。但用`nmap`扫描了下,并没有22端口之类的,
商店里目前也没搜索到相关应用。(看来应用生态还有很大提升空间呀)
# 实战
既然没法直接用编辑器打开微服里的文稿数据,那就退而求其次,用系统文件管理器挂载webdav吧,我现在用的是linux/gnome环境,其他操作系统应该都差不多,基本都是这个步骤
1. 打开文件管理器
2. 找到“网络地址”、“远程服务”之类的菜单选项
3. 输入 `https://snyh.heiyu.space/_lzc/files/home/`
4. 输入帐号密码
微服里的文稿数据就直接挂载到本地了,和正常文件一样使用就行了。 但因为是远程文件,太频繁操作还是有卡顿的感觉。但对于我这种只是写个markdown和流程图的是完全没有压力。
以gnome的nautils为例,简单几步就完成了。

注意: **nautils必须写`davs://`前缀**,有点不友好,其他客户端都是直接支持写`https://`来挂载在的。

接下来就直接用你喜欢的编辑器正常的远程编辑吧 😃
我一般都是markdown在emacs里远程编辑微服里的,然后浏览器里再打开yannote实时预览,一些图就使用内置插件直接在浏览器里在线编辑实时查看。
主要内容在电脑上高效编辑后,在外时也能通过手机访问微服进行一些简单的大纲补充。
评论
2原来支持 webdav 协议啊😁
小道消息,就很神秘啊