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

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

写在前面

大致是将思源笔记里的【悬浮预览】、【引用块跳转】功能融入到 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

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

  • 思源笔记

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

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

    22380 引用 • 89589 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 2.5.1 没找到 main.js,无法进行超链接跳转

    1 回复
  • 其他回帖
  • derdunkel

    大佬,为什么我在不同文档页面中建立的 Excalidraw 都是同一个呢?在页面 B 中改 Excalidraw,页面 A 里也会被改掉,也就是说不管多少个页面里的 Excalidraw 都是同一个,这样它的实用性就大大降低了。

    我尝试将其导出保存到 data\assets 中,但再次打开依然是统一的那个 Excalidraw,需要自己手动再导入一次,有什么办法解决吗,谢谢大佬。

    1 回复
  • someone69799
    作者

    第四次提交的版本处理了之前没处理好的关闭页签后图片丢失的问题,还有那个铺满页签后产生滚动条的问题。另外,我看到网页版的 Excalidraw 有个钉住素材库的功能很好用,所以更新了 Excalidraw 的版本。新版本界面有点小变化,但用来还可以。请参考演示视频。

  • forwardlee 1 评论
    1. 去掉【全屏】按钮。改成:插入白板后自动铺满页签。

    这个最新的版本,请问我在一个文章的一个块中添加了,如何退出呢?

    有其他内容的文档还是不要用第三版了,那个本来就是在单独的空文档里插入使用的。如果已经插入画板的,先删掉画板那个挂件,然后再删掉那个挂件块吧。
    someone69799
  • 查看全部回帖