【分享】Excalidraw 画板挂件(小改)

本贴最后更新于 591 天前,其中的信息可能已经时过境迁

写在前面

大致是将思源笔记里的【悬浮预览】、【引用块跳转】功能融入到 Excalidraw 画板中。用来画一下简单的关系图并链接到本地的笔记,感觉效果还可以,主要是画板比较自由,挺适合做那个【内容地图】(Map of Content)。

只需要稍微修改一下 theme.css 和 main.js 就可以了,其中修改 main.js 的做法跟那个【分享】导图挂件更新 是一样的,已经改过的就不用改了。

原 Excalidraw 仓库地址:https://github.com/excalidraw/excalidraw

Excalidraw 挂件中一些数据会缓存到 LocalStorage 中,比如:素材库的内容和画板设置。后续的笔记版本(比如当前的 V2.7.2)因为使用了随机端口,所以关闭软件重新打开后会发现画板的状态又被初始化了,素材库的内容也没了,为了获得更好的使用体验,建议在桌面端的快捷方式中指定端口。,参考思源 2.6.1 至 2.7.0 重要更新一览(带图)中提到的桌面端快捷方式支持 --port 启动参数,在桌面快捷方式中指定端口,比如:6806)。

视频演示

演示环境:Window10 , V2.7.2

演示内容:

1、插入块超链接
2、插入引用块
3、分屏打开文档
4、悬浮预览文档
5、搜索、定位关键字
6、保存、打开文件

开始使用

1、更新挂件

  • 下载挂件的压缩包后,解压得到一个【画板】的文件夹;
  • 打开挂件所在文件夹 笔记数据所在文件夹\data\widgets\
  • 如果有旧的,那就需要删掉旧的画板挂件,再将新的放进去;

2、修改 theme.css

这个是为了给画板挂件【全屏】功能使用的,Excalidraw 画板本身就有全屏的功能,但它全屏后会置顶,然后就遮挡了悬浮预览的窗口,故换了个方式让它全屏铺满。这里用的是增/删 类名的方式,所以要在 theme.css 中添加一个样式。

比如:现在使用的主题是 Tsundoku Dark

打开思源笔记——【更多】——【设置】——【外观】——【打开主题文件夹】,打开后,找到【Tsundoku Dark】文件夹,里面有个 theme.css,打开后在最后加上:

.fullScreen {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 200;
}

修改后保存文件。

3、修改 main.js

这个跟【分享】导图挂件更新 是一样的,已经改过的就不用改了。

示例:

V2.7.2

PC 端 windows 平台 V2.7.2,main.js 的修改方法如下:

使用编辑器比如 VSCode 打开 笔记安装的文件夹\resources\stage\build\app\main.js,使用查找/替换功能:

搜索

t.WYSIWYG=class

替换成

window._M=n(236);window._o=n(8438);window._a=n(7377);t.WYSIWYG=class

修改后保存对应文件。


4、清除缓存后,重启笔记

打开思源笔记——右下角【帮助】图标——【开发者工具】——在【Network】中勾选【Disable cache】后按键盘上的【F5】进行刷新,刷新后手动取消勾选【Disable cache】,然后关闭开发者工具。

image.png

5、插入挂件,开始使用

插入超链接

  • 复制外部超链接或者笔记内的块超链接
  • 在画布中选中一个元素,按 Ctrl+K 弹出超链接输入框
  • 粘贴刚刚复制的链接地址并回车即可

备注:如果选中图形后按 Ctrl+K 并没有弹出超链接输入框,可以在选中图形后先按下 Ctrl+shift+G 解除编组后再试试。

插入引用块

  • 在笔记内文档、块的菜单中,点击【复制该块为引用块】
  • 单击画板空白处,然后按下 Ctrl+V
  • 再次单击画板空白处,然后按下 Ctrl+V 即可粘贴带标题和超链接的图形块到画布中。

备注:第一次按 Ctrl+V 的时候处理一下剪切版里的数据,改成 Excalidraw 里的数据格式,第二次粘贴的时候粘入。

分屏打开文档

如果是笔记内文档或者块的超链接,点击超链接图标后默认是分屏打开的。需要保持画布所在窗口是选中的,否则会打开多个分屏窗口。

悬浮预览

如果是笔记内文档或者块的超链接,点击画布空白处后按下 Alt+Q 即可打开【预览模式】,此时将鼠标悬浮在超链接图标上,会弹出文档或块的悬浮预览框,可以通过鼠标移开到预览框外或者单击预览框后按下【ESC】键的方式来关闭预览框,当然,直接点击预览窗口右上角的上的【x】来关闭窗口也可以的。

点击画布空白处后按下 Alt+W 即可关闭预览模式,此时鼠标悬浮在超链接块上不会弹出预览窗口。

搜索、定位关键字

  • 单击画板空白处后,按 Alt+T 唤出搜索面板,再次按 Alt+T 或者点击搜索面板外的画板来关闭搜索;
  • 焦点在搜索面板的输入框时,按键盘上的上下箭头能切换搜索结果;激活的搜索结果会显示在画板大约中央位置(当前画板比例需要设置成 100%,否则定位不准);

切换到中文手写字体

点击左侧字体栏最左边的按钮就切换到手写字体;

画板.png

挂件压缩包

画板.zip

Tips

1、选中某个图形后 Ctrl+K 快捷键不能弹出超链接输入框?

可能是因为图形的 编组 ,选中图形后 Ctrl+shift+G 解除编组后再试试。

image.png

2、添加常用元素到个人素材库

可以绘制并添加一些常用的图形元素到 个人素材库中,后续绘制时直接通过点击插入元素即可。

image.png

image.png

3、文本要自动换行?

使用【将文本绑定到容器】这个功能即可。

image.png

4、设置透明边框

方框绑定文本后,单击方框,设置 描边 的颜色为:transparent

然后双击方框选中文字,设置 描边 的颜色为:#000000

即可制作一个透明边框的文本框,这样可以方便的调整文本框宽度,也不影响观感。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22747 引用 • 91307 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • teacherQ 1 赞同 1 评论

    强啊,老哥,羡慕 ob 的功能很久了,请问能上传到集市里吗?

    上架最好还是到手即用的那种好一点,这个还要用户自己改东西的不太合适。
    someone69799
  • 其他回帖
  • derdunkel 1 评论

    感谢!

    我又尝试了集市中的 Excalidraw 挂件,发现如下事项:

    1. 在三个页面测试了不同的 Excalidraw,对应在 assets 文件夹中生成了三个不同的.excalidaw 后缀文件。
    2. 关闭思源再打开后,发现三个页面中的 Excalidraw 都恢复为初始无图像的状态。
    3. 分别用其打开 assets 文件夹中的三个.excalidaw 后缀文件,的确是在第一步生成的不同内容。

    结论:

    1. 集市中的 Excalidraw 很可能实现了向 assets 文件夹写入文件的功能,将其作为内容块使用。
    2. 目前还有 BUG,在关闭思源后可能是丢失了生成的这些文件的连接路径,导致显示无图案,只能手动再打开。

    跟大佬同步一下我发现的情况。

    嗯,不过这个 Excalidraw 加上依赖包打包完都接近 10M 了,直接拿来当做内容块插入文档感觉有点臃肿。如果只是平时用来画画关系图啥的,其实可以直接保存为包含画布数据的 png 到本地,然后建文件夹分类管理,打开前在文件夹那里也能进行预览。
    someone69799
  • yunyunyun

    大佬!求助!我在文件里没有找到这串代码:image.png
    另外,主题文件里也把代码复制在最底下了,但是进思源还是没有变化,白板还是置顶的效果,菜单和设置什么的都在它底下 😭 😭 image.png

  • someone69799
    作者

    昨天给第五版加了个搜索关键字的功能,这功能在画布内容多的时候感觉还是蛮实用的。

  • 查看全部回帖