文档引擎+AI可视化打造下一代文档编辑器

hi,大家好, 我是徐小夕 。之前和大家分享了很多我设计的零代码和可视化解决方案,最近也是一直在研究文档引擎零代码搭建引擎,今天就来分享一下最新进展。

往期精彩:

上一期和大家分享了文档引擎的基础功能, 技术选型, 产品设计思路,接下来先来总结一下最新实现的功能进展:

  • 文档支持配置弹幕
  • 支持文章全局评论
  • 支持划线评论
  • 支持关键词注释,批注
  • 支持文章数据统计(访问量,PUV,字数和阅读时间分析)
  • 支持文章自定义赞赏配置
  • 支持json导入导出
  • 支持一键复制内容块
  • 支持无限层级目录

设计 Nocode/Doc 的主要背景是基于我对零代码积累的大量产品技术实践和1万+的用户反馈,希望通过一种更高效简洁的方式来快速构建企业级应用 。文档搭建引擎是一个基础内核,后续2个月内我会通过零代码 + 文档引擎 + AI模型 来研发一款AI + 可视化办公解决方案.

下面我就来和大家介绍一下最新的功能和技术方案设计。

效果演示

静态演示:

动态效果:

1. 支持无限层级目录

对于市面上的知识库产品,支持多级空间目录是非常有必要的,因为这样的设计更利于分类管理。所以我最近也设计了这个功能:

我们可以无限层级的创建目录,并在指定目录下创建文档,同时在右侧会自动渲染知识库的目录思维导图:

目录构建和层级编历大家可以采用了二叉树的遍历算法,比如前序遍历中序遍历后序遍历

代码实现参考:

js 复制代码
// 定义二叉树节点类
function Node(value) {
  this.value = value;
  this.left = null;
  this.right = null;
}

// 创建一个示例二叉树
var nodeA = new Node("a");
var nodeB = new Node("b");
var nodeC = new Node("c");
var nodeD = new Node("d");
var nodeE = new Node("e");
var nodeF = new Node("f");
var nodeG = new Node("g");
nodeA.left = nodeB;
nodeA.right = nodeC;
nodeB.left = nodeD;
nodeB.right = nodeE;
nodeC.left = nodeF;
nodeC.right = nodeG;

// 前序遍历:先打印当前节点,再打印左边子树的节点,再打印右边子树的节点
function DLR(root) {
  if (root == null) return;
  console.log(root.value);
  DLR(root.left);
  DLR(root.right);
  DLR(nodeA);
}

// 中序遍历:先打印左边子树的节点,再打印当前节点,再打印右边子树的节点
function LDR(root) {
  if (root == null) return;
  LDR(root.left);
  console.log(root.value);
  LDR(root.right);
  LDR(nodeA);
}

// 后序遍历:先打印左边子树的节点,再打印右边子树的节点,再打印当前节点
function LRD(root) {
  if (root == null) return;
  LRD(root.left);
  LRD(root.right);
  console.log(root.value);
  LRD(nodeA);
}

2. 支持一键复制内容块

这个功能主要是我在使用开发文档编辑器写内容的时候,有很多重复的内容需要使用,如果每次都复制粘贴,效率还是不能达到我的要求,所以就实现了一键复制内容块的功能:

它可以对任何内容形式进行一键复制,比如在传统文档中不可复制的视频音频轮播图各种组件等。

文档支持配置弹幕

弹幕必须得有!作为二次元1年工龄的小朋友,看到B站逼格拉满的弹幕,想一想,文档也是内容消费型,为啥不能有弹幕,更好的和用户互动呢?所以我也实现了文档弹幕的功能, 大家可以选择配置文档弹幕:

丝滑的弹幕就这样实现了。由于涉及的知识点比较多,后续我会专门分享一下弹幕的前端技术实现。感兴趣的朋友可以体验一下,

文档弹幕案例

支持文章全局评论

内容的评论功能是少不了的, 为了让知识博主有个更好的交流环境,我在 Nocode/Doc 产品里实现了评论功能(当然国家规定使用评论必须手机号实名注册~)

支持划线评论

除了对文档进行全局评论,还有很多企业级的场景,需要不同人来协作管理,需要对文档进行更精细的反馈,目前飞书和钉钉文档都支持划线评论,所以 Nocode/Doc 也必须安排!

本来想划线评论功能画个小半天就实现了, 没想到坑还挺多,对于追求代码质量,代码性能,产品体验的我来说,真的是快要把 javascript 祖师爷扒出来了。

这里分享一下需要考虑的点:

  • 划线评论不能污染文档本身
  • 划线评论内容的加载性能
  • 划线位置计算和评论列表的位置计算
  • 划线评论完整业务数据流设计
  • 文档滚动对划线的位置计算的影响

本来想用 canvas 实现的, 所以做出来了,但是考虑到后期的扩展性和灵活性,我还是重新选择了离屏dom + js 来实现。 最终效果如下:

大家也可以用电脑体验一下划线评论的快感~

划线评论案例

支持关键词注释,批注

这块对于知识文档非常有价值,比如对于一些行业术语,专业词汇,如果作者能给一定的解释,对于阅读用户来说是非常有帮助的,所以为了更好的用户体验,这波功能必须加上!

添加批注的效果:

支持文章数据统计

当然这个功能是为了更好的服务作者和用户,方便大家对文章进行更好的数据把控, 后续会实现更多数据分析能力:

支持文章自定义赞赏配置

当然这块主要是为作者服务的,比如你写了一篇好的文章,可以配置自己的赞赏二维码,如果用户觉得有帮助,有可能给你打赏一杯奶茶?

支持json导入导出

这块主要是为了更好的分享和保存你的内容, 并对内容做程序式修改:

最后

好啦。这就是本周的更新,预计4月29号会做一波更大规模的更新和功能上线,欢迎随时和我反馈,建议,技术交流~

往期精彩

相关推荐
网络点点滴19 分钟前
声明式和函数式 JavaScript 原则
开发语言·前端·javascript
禁默24 分钟前
【学术会议-第五届机械设计与仿真国际学术会议(MDS 2025) 】前端开发:技术与艺术的完美融合
前端·论文·学术
纯粹的摆烂狗26 分钟前
深圳大学-智能网络与计算-实验四:云-边协同计算实验
javascript
binnnngo28 分钟前
2.体验vue
前端·javascript·vue.js
LCG元30 分钟前
Vue.js组件开发-实现多个文件附件压缩下载
前端·javascript·vue.js
索然无味io33 分钟前
组件框架漏洞
前端·笔记·学习·安全·web安全·网络安全·前端框架
╰つ゛木槿42 分钟前
深入探索 Vue 3 Markdown 编辑器:高级功能与实现
前端·vue.js·编辑器
yqcoder1 小时前
Commander 一款命令行自定义命令依赖
前端·javascript·arcgis·node.js
前端Hardy1 小时前
HTML&CSS :下雪了
前端·javascript·css·html·交互
醉の虾1 小时前
VUE3 使用路由守卫函数实现类型服务器端中间件效果
前端·vue.js·中间件