leaferjs / leafer-ui

一款好用的 Canvas 引擎,革新的开发体验,用于高效绘图 、UI 交互、图形编辑。A user-friendly Canvas engine with a revolutionary development experience, for efficient drawing, UI interactions, and graphic editing.
https://www.leaferjs.com
MIT License
2.59k stars 92 forks source link

官方贡献渠道 #23

Closed happysmile12321 closed 1 year ago

happysmile12321 commented 1 year ago

如题,最近我在做一款富文本编辑器。在富文本编辑器领域比较好的资料详细可以参考有道团队给出的这两篇文章: https://juejin.cn/post/6920054071571251208 https://juejin.cn/post/6922343979325325319 关于有道团队最终提出使用dom渲染的方式,其实是迫于技术限制,例如:不清楚canvas渲染长文本的性能。 现在有了leaferjs这样的技术,很适合用leaferjs把富文本编辑器重写一遍,使之变得更强大。 但是单打独斗总是不好的,leaferjs这么好的技术,如果没有对应的技术社区是不够的。 就以排版引擎为例,那位大佬做过类似的研究,就可以很轻松的把算法移植到leaferjs上面,以leaferjs官方给出的集成方式为准, 像搭积木一样,逐步搭建出自己专属的编辑器。

我现在强烈建议增加官方的贡献渠道,需要做到以下几点:

  1. 框架无关。(不管你是用react还是vue都可以用,最好以js/ts书写插件,然后leaferjs提供入口,挂载到leaferjs提供的全局对象上)。
  2. 急速上手。(如题,可能研究排版引擎的可能是没有编程背景的人,现在有了AIGC这样的技术,我们继续一个插件的脚手架,让他们可以迅速的把自己核心的逻辑算法实现了然后提交到npm管理。)
  3. 统一的查询入口。(不同的语言拥有不同的查询入口,leaferjs借助js语言,需不需要一个js的查询入口呢?其实我更像官方做一个统一的查询入口,这样可以避免在找包时搜索到react native,react,vue,nodejs等其他生态带来的包,可以借助npm管理,但一定要有统一的查询入口,这个很重要!!!这个可以避免造轮子时间的浪费)。 目前就想到这么多,希望官方快速响应这个需求,因为我看这个项目star数已经超过1K了,再这样下去,会有很多国外的贡献者也加入进来,到时候继续这样一套为应用开发者提供生态的东西,只有这个做起来了,才可以逐步扩大leaferjs的生态。
leaferjs commented 1 year ago

收到,非常好的建议,我们近期会着手弄一下,现在已经提供了插件机制,不过需要进一步开放一些钩子,与框架无关的可以开始着手弄了,我们现在已经开放了用户参与板块,会收集大家做的东西,比如各种脚手架、demo之类的~

leaferjs commented 1 year ago

目前还有些底层的东西在做,比如小程序、多线程支持,方便开发者做跨平台的测试,弄完之后会发布正式版,那个时候我们会开始大力推生态建设~

liangei commented 1 year ago

目前还有些底层的东西在做,比如小程序、多线程支持,方便开发者做跨平台的测试,弄完之后会发布正式版,那个时候我们会开始大力推生态建设~

大佬,如何兼容其它小程序呢?我看好像只支持微信小程序,其它小程序大多是非canvas 2d,也不支持创建离屏的API。 能否像node环境一样使用useCanvas这个方法把canvas传入,以达到兼容更多支持canvas的小程序?而且非canvas 2d 的context 需要使用context.draw()这个方法才能把元素渲染到画板。能否在底层就支持一下这个方法?

我希望是有这么一个方法,设置平台前缀,加载图片,创建canvas,然后leaferjs底层ctx多判断ctx是否存在draw()方法,如果有就执行,就能达到兼容市场面上所有的小程序。

setPlatformAPI({
     platform: wx,
     createCanvas,
     loadImage,
})
leaferjs commented 1 year ago

我们现在采用了一种新的插件方式,非常自由,可以直接将 @leafer-ui/core引入作为外部包,进行便捷的跨平台的插件开发~