Taleweaver 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Taleweaver 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: TypeScript
操作系统: 跨平台
收录时间: 2019-08-29
提 交 者: smillence

Taleweaver,支持分页的在线编辑器。

有很多在线编辑器(WYSIWYG),但是这些编辑器都不支持分页。这些编辑器都是在浏览器中使用,浏览器关注的是布局和渲染,不关心内容将会渲染在什么地方。当页面需要印刷到文档中的时候,很多特性就不在适用了。比如将一个页面印刷到 A4 纸张上面,这些编辑器就无法做到想微软的 office 中的 word 那样,可以支持分页、页面等特性。

支持此特性的商业编辑器有谷歌文档、微软的 office online 中的 word,taleweaver 似乎是第一个支持分页的开源软件。

Taleweaver 拥有排版引擎同时提供了一套 API 来访问排版信息。它的目标就是把 word 那种风格的文字编辑体验带到开源社区。

实现方式:

Taleweaver 通过获取文档状态并将其呈现到屏幕上来工作。通过状态转换修改状态时,通过一系列步骤将更改传播到屏幕。

[状态] -> [模型树] -> [呈现树] -> [布局树] -> [视图树]

状态

文档的 State 是用一系列的水平的 token 来表示的. 共有三种 token:

  • Open tag token——标记文档中元素的开始
  • Close tag token——标记文档中元素的结尾
  • Character token——文档内容的一个字符

State 允许在数组上以插入或删除的形式进行更改。这个简单的接口能够实现以最小的工作量实现协作编辑。

便于存储和基于文本的传输,state 可以序列化为标记,且能够通过分词相关技术从标记中恢复。

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Taleweaver 的相关资讯

还没有任何资讯

Taleweaver 的相关博客

还没有任何博客,写博客

Taleweaver 的相关问答

还没有任何问答,马上提问

评论 (5)

加载中
应该是的没找见类似的,找了好久。十分期待
02/23 10:18
回复
举报
smillence软件作者
欢迎一起实现!
04/15 22:13
回复
举报
试用了一下,感觉上面的按钮,没有实现
2019/09/03 15:08
回复
举报
smillence软件作者
是的,在规划中的呢
2019/10/21 14:26
回复
举报
smillence软件作者
不知道是不是第一个支持分页的开源软件
2019/08/29 10:14
回复
举报
更多评论
5 评论
14 收藏
分享
返回顶部
顶部