首先感谢岳父岳母带家中神兽去过暑假了,我才能有周末的时间来改这个系统。
另外感谢老婆,周末我两天都搞自己的事情,也没批评我。
最后感谢公司团建,提供酒店住,花了一个晚上时间搞定了中文手写体。
注:这是魔改私有化 excalidraw 开源版本,感谢社区
介绍一下 Excalidraw,产品特性
什么是 Excalidraw,这(可能)是最强的在线协同画图工具 ,你可以访问 Excalidraw 试试看。
如果你觉得打开来都是空白,那么也可以访问这个公共面板 Excalidraw 参与一起创作。
Excalidraw 非常好用,我总结几个点:
这个产品我们经内部同学内部安利之后,大家迅速的喜欢上了,在 Excalidraw 上面了好多图,但也引来一个问题。
Excalidraw 工作原理和私有化原理:
那私有化的核心难点是什么:
解决 excalidraw-storage 的数据存储问题,即替换掉 Google Cloud Platform 的 firebase 服务。
事有不顺反求诸己
- 孟子
求与诸己,不如求于 GayHub
- alswl
让我们先先研究 Excalidraw 的存储系统。 Firebase 是 Google 的 Serverless 服务,以前是独立公司(还挺火),后来给 GCP 收购了。
我一开始想法是替换 Firebase,找了一个社区服务 Supabase(意外发现还有免费的 SaaS 服务,良心啊)
但是仔细研究一下,发现 Supabase 的 API 和 firebase 不兼容,并 不能平替。
Excalidraw 还要靠 Excalidraw+ 卖钱(Plus 服务),怎么可能让你这么轻松就私有化,官方原来有个 excalidraw-json 的仓库,现在也被移除了。但是我们不怕,我们有来自社区的力量:
他们给了条路(虽然后来被证实还是有歪路的):
于是我开始检视他们方案,打开代码一看,思路正确(替换 firebase 的几个接口),使用自己的 KV 存储(Redis / MySQL / Mongo)替换。
尝试部署,立马遇到问题:
怎么这么巧,我是 前端实习生 // 社区打补丁专家 // Kubernetes 清洁工 // YAML 资深专家 ,专治这么几个毛病。
Excalidraw 是 SaaS 服务的免费版, Excalidraw+ 是付费版 ,有什么区别呢
总结:
或者还是直接购买 Excalidraw 企业版本服务吧,少折腾多享受。
有个问题, 中文字体不是手写体 ,很违和。先看看哪些字体能用吧:
macOS 支持的中文手写体:
cursive 家族:
windows 中文支持手写体比较差劲,必须安装 Office 才有更多选择:
华文行楷;方正舒体;(Office)
不行的话,只有系统自带的楷体 KaiTi 可以工作。
最后,靠我三脚猫的前端水平,做了一个 PoC,并给官方提交了一个 PR:feat: simple impl of multi font support, for chinese font by alswl · Pull Request #5604 · excalidraw/excalidraw
这是最终的效果:
可以访问 excalidraw.alswl.com 查看效果,这是一个静态站点, 支持中文字体,但是无法在线协作。
有几个网友来咨询如何进行部署。于是基于上述的方案,我提供了一套基于 Docker Compose 的一键拉起服务:带协作、中文字体支持。 仓库见 alswl/excalidraw-collaboration。
原文链接: 私有化在线协同画图平台 Excalidraw | Log4D
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹
首先感谢岳父岳母带家中神兽去过暑假了,我才能有周末的时间来改这个系统。
另外感谢老婆,周末我两天都搞自己的事情,也没批评我。
最后感谢公司团建,提供酒店住,花了一个晚上时间搞定了中文手写体。
注:这是魔改私有化 excalidraw 开源版本,感谢社区
介绍一下 Excalidraw,产品特性
什么是 Excalidraw,这(可能)是最强的在线协同画图工具 ,你可以访问 Excalidraw 试试看。
如果你觉得打开来都是空白,那么也可以访问这个公共面板 Excalidraw 参与一起创作。
Excalidraw 非常好用,我总结几个点:
这个产品我们经内部同学内部安利之后,大家迅速的喜欢上了,在 Excalidraw 上面了好多图,但也引来一个问题。
Excalidraw 工作原理和私有化原理:
那私有化的核心难点是什么:
解决 excalidraw-storage 的数据存储问题,即替换掉 Google Cloud Platform 的 firebase 服务。
事有不顺反求诸己
- 孟子
求与诸己,不如求于 GayHub
- alswl
让我们先先研究 Excalidraw 的存储系统。 Firebase 是 Google 的 Serverless 服务,以前是独立公司(还挺火),后来给 GCP 收购了。
我一开始想法是替换 Firebase,找了一个社区服务 Supabase(意外发现还有免费的 SaaS 服务,良心啊)
但是仔细研究一下,发现 Supabase 的 API 和 firebase 不兼容,并 不能平替。
Excalidraw 还要靠 Excalidraw+ 卖钱(Plus 服务),怎么可能让你这么轻松就私有化,官方原来有个 excalidraw-json 的仓库,现在也被移除了。但是我们不怕,我们有来自社区的力量:
他们给了条路(虽然后来被证实还是有歪路的):
于是我开始检视他们方案,打开代码一看,思路正确(替换 firebase 的几个接口),使用自己的 KV 存储(Redis / MySQL / Mongo)替换。
尝试部署,立马遇到问题:
怎么这么巧,我是 前端实习生 // 社区打补丁专家 // Kubernetes 清洁工 // YAML 资深专家 ,专治这么几个毛病。
Excalidraw 是 SaaS 服务的免费版, Excalidraw+ 是付费版 ,有什么区别呢
总结:
或者还是直接购买 Excalidraw 企业版本服务吧,少折腾多享受。
有个问题, 中文字体不是手写体 ,很违和。先看看哪些字体能用吧:
macOS 支持的中文手写体:
cursive 家族:
windows 中文支持手写体比较差劲,必须安装 Office 才有更多选择:
华文行楷;方正舒体;(Office)
不行的话,只有系统自带的楷体 KaiTi 可以工作。
最后,靠我三脚猫的前端水平,做了一个 PoC,并给官方提交了一个 PR:feat: simple impl of multi font support, for chinese font by alswl · Pull Request #5604 · excalidraw/excalidraw
这是最终的效果:
可以访问 excalidraw.alswl.com 查看效果,这是一个静态站点, 支持中文字体,但是无法在线协作。
有几个网友来咨询如何进行部署。于是基于上述的方案,我提供了一套基于 Docker Compose 的一键拉起服务:带协作、中文字体支持。 仓库见 alswl/excalidraw-collaboration。
原文链接: 私有化在线协同画图平台 Excalidraw | Log4D
3a1ff193cee606bd1e2ea554a16353ee
欢迎关注我的微信公众号:窥豹