/link-up

a sketch plugin that creates link paths between artboards.

Primary LanguageJavaScriptMIT LicenseMIT

link-up : Sketch 画布连线插件

link-up 是一个可以在两块画布间连线的插件。连线成功时,它会在当前页面插入一条随机颜色的路径表示连线的开始和结束。

特别感谢

感谢和我一起在渡鸦科技工作的李响,帮助我确定有关的需求。

功能

选中两个画布之后,就可以给他们连线了。有两种连线方式。

现阶段没有研究出来 Sketch 在用户选中多个对象的时候如何在插件中获取先后顺序,所以只能通过画布名字的大小来判断起点画布和终点画布,名字的字符串值更小的是起点。

直接连线 Direct Link

直接创建连线路径。如果线路经过了其他画板,会直接覆盖在上面。快捷键是 cmd + shift + d

智能连线 Smart Link

通过分析页面下的所有画布的大小和位置,选择绕开路线上的画布并创建连线。快捷键是 cmd + shift + f

智能连线目前只能比较好的支持符合下面条件的情况:

  • 页面下所有的画布都是对齐横向与纵向,呈格子状排列的。
  • 每一行的画布拥有相同的高度,每一列的画布拥有相同的宽度。

所以智能连线只能应对很少数的情况。例如:设计产品原型流程可能会创建很多相同大小的手机屏幕画布,并且对齐排列。

实现过程

智能连线的实现使用了 Pathfinding.js 这个库中的方法。通过把所有画布的位置进行压缩,得到了描述当前视图的矩阵,再用平行优先算法进行路径的计算,并还原出路径的实际位置。