我把用了4年的”林羽凡笔记“改版了,新版开发已接近尾声

2026-02-03 15:29:26 阅读 0评论 2

最近花了点时间,把林羽凡笔记(原林羽凡待办)更新换代了。

原系统是2022年到2023年之间在vue2的基础上开发的,马上快4年了。直接升级到vue3的话问题比较多,索性就直接从零开发了一版Ts版本的。

解决了很多原生问题。使用Ts真的是香,虽然前期定义类型比较麻烦,但只要定义好了,在系统内所有文件中使用,只要类型有问题,立马提醒,非常好用。

一、Markdown编辑器

这是最笔记系统中最重要的一个组件(模块),旧系统中缝合了很多第3方组件,但都没有做好包管理,导致警告和错误比较多,虽然打包的时候都屏蔽掉了,但心里总感觉缺了点灵魂。

于是重新基于marked开发了全新的LinyufanMarkdown编辑器Ts版本。增加了暗色模式,取消了一些没用的鸡肋功能。

不过保留了原编辑器大部分的自定义语法和渲染逻辑。毕竟原系统还有不少朋友在使用,不然后期迁移过来就比较麻烦了。

使用起来也是非常Nice的,LinyufanMarkdownTs编辑器有自适应,在”林羽凡笔记“项目中直接使用完全没有问题。

系统内所有组件都统一了主题色,可以自定义任何颜色的主题色。

二、增加了各类思维导图

目前支持了3类节点编辑器:节点导图、普通思维导图、圆形节点图。

 

以上3类节点编辑器均支持导出图片和Svg,支持全屏、支持缩放画布等,定制化程度非常高,可以做出自己想的节点展示效果。

其中最新版的”节点导图“演示中增加了显示箭头和动画效果的功能,也是非常Nice。

三、支持“标注工具”功能

标注功能就是在编辑器(以上4个编辑器)上增加一个透明Canvas,可以画任意图形或者字符,起到标注的作用。

上图为旧版的标注工具

 

这个标注工具在旧版本上增加了,但没有更新到生产环境中,问题太多了,就不一一表述了,总之就是不符合我的心理预期。

新版标注工具可以自由拖拽

 

新版本的标注工具可以在页面上任意拖拽,在开启标注后,当前编辑器(无论哪个类型的)都会返回一个是否最大化、位置坐标和高宽信息的数据,标注工具中的Canvas根据这个数据就能精准覆盖到编辑器上,从而实现绘制功能。

随便画,想画啥画啥,可以清除,也可以撤销操作。

目前编辑模式、只读模式、分享的笔记都可以使用标注工具。

四、导入和导出

这个功能其实很早前也想开发了,但旧版本的数据表结构设计不合理,一直也就没增加这个功能。(旧版只能导出pdf的打印文件)

新版本的笔记系统增加了可以导出当前笔记,或者导出任意.md笔记。

新技巧:可以在创建任意笔记后,导出该笔记,会得到一个含有笔记的节点结构信息的.md文件。

将这个包含节点结构信息的文本投给任何一个Ai工具,就可以生成你想要的数据的节点信息,再导入到笔记中。

ps:新系统未来可能会上线第3方Ai接口包,一键自动生成想要的数据内容。

五、基于Websocket的聊天对话

这是在一个失眠的夜晚,无聊的时候开发一个功能,最初只是想开发一个聊天工具,随手给ai丢了一个需求。没想到生成的页面结构啥的还不错,后来优化了一下,就加到林羽凡笔记系统中了。

目前只实现了文字聊天,后期也不准备增加功能了。

支持:撤回、引用、下线、在线。

七、笔记模式配置

目前已经做好了笔记配置的功能,还不支持本地笔记。

未来会陆陆续续增加本地笔记功能,基于浏览器Indexed数据库的本地笔记功能。

八、扫码登录

微信扫码和鸿蒙扫码的前端界面已经写好了,未来在后端支持了就可以了。

在登录界面增加了一个基于Threejs的3D旋转文字效果。

九、支持Webauth的认证登录

相关的认证及接口都完成了,目前支持Web端,未来接入鸿蒙App的话应该也比较方便(我设想的,因为鸿蒙需要Fido2的认证)。

具体操作演示如下:

1、在登录的账号中先绑定

没有登录的,或者没有绑定账号,即便知道账号id,也无法登录,因为这个id绑定的设备不是你的。

取消输入会绑定失败,需要重新输入发起挑战

在个人中心点击绑定账号,弹出绑定窗口。在弹窗中输入PIN密码就可以了,不支持蓝牙、USB设备啥的认证。

目前只支持PIN认证和人脸识别认证(pad上可以)。Win11以上的笔记本电脑上也可以。

 

认证成功后,就能看到绑定信息了。

 

再次使用“一键登录”就能直接登录了。

话说,这个功能Wordpress也有插件支持,需要的朋友可以找找,我测试没成功,好几年前的版本了。

十、关于笔记和目录分享

老版本中因为早期没有考虑到分享笔记的事,最开始开发的功能是,点击分享后生成一个jwt的字符串,用户访问这个字符串后通过后端解析JWT,得到是否有分享截止日期,是否有加密等。好处是不占数据库,坏处是不够灵活。

后来改版的时候,增加了URL控制解析,为分享目录做了适配,也就是可以分享整个目录给其他人访问。

目前新系统中,可以非常灵活地定制各种分享状态,当然前提是被分享的笔记或目录是公开状态,如果是非公开状态,即使分享了,其他人也访问不到具体的数据,都会在后端拦截。

十一、总结及规划

讲真,开发这样一套系统还是挺耗费精力的,虽然看着就那几个功能。

1、关于Ai编程

这个系统每个功能单拿出来都是一个比较耗时的大模块。虽然有Ai工具的帮助,但对于这种比较复杂(我个人看法)的前后端协同的项目,Ai的帮助还是有限的,大的架构需要自己思考,小的细节也需要自己把握。

目前的Ai编程确实很厉害,但仅限于你没有特定的要求时的厉害。比如你简单提个需求:开发一个XX的博客,有XX的功能,有XX的颜色,有XX的亮点。

这些功能给到Ai后,生成的页面非常好看,乍一看好像确实很棒。就像下面的页面:

但如果有比较细的需求,或者你有特定的需求,Ai大部分情况下是抓瞎。

不管你怎么描述,它就是不理解,甚至你把图给它,把错误信息给它,它都理解不了你大脑中说的那个:把A调得比B高一些,把A往B的上面一些,把A放在B的外面。

这里的“上面”,相对位置的”高“,可能包含z-index,Ai是极难把握的。

就拿我让Ai开发”标注工具“来讲,我一直强调标注工具的Canvas要在所有编辑器的上面(我想的是z-index层的),但它一会理解对,一会理解错。我的意思是覆盖在上面的意思,属于Z轴的位置表述。Ai一直理解不了,要么覆盖在编辑器上了,但定位有问题,要么层级(z-index)有问题,导致画不了,或者画了不显示,或者超出边界了,调了很久都没搞定。

最后索性在所有编辑器中增加了一个回调函数,让编辑器监听自己的位置,无论是全屏还是父级宽度的变化,都会返回一个包含x,y的位置信息和包含width,hieght的宽高信息给调用组件。

这样一来标注工具的canvas定位问题就解决了。

具体开发过程详见《一个基于Canvas的标注工具的开发历史》

2、未来规划

目前开发的进度已经满足我的日常使用了,后期会陆陆续续增加功能。

等功能完善得差不多了再开放使用。(这个时候还需要同步修改微信小程序、字节小程序、QQ小程序、百度小程序、Windowns客户端、Mac客户端、Linux客户端),想想都头大得很。

最近看上NotebookLM了,真香呀。

文章版权声明:除非注明,否则均为林羽凡原创文章,转载或复制请以超链接形式并注明出处。
林羽凡

林羽凡V

林羽凡博客,是一个记录自己生活、互联网技术的原创独立博客 Linyufan.Com

4290 文章
18091 评论
20961972 浏览

了解一下?

  • 了解一下?

活跃朋友

最新留言

    厉害了。。。。。:heo-抬眼镜:
    老司机(FLYER) • 时间 2026年02月24日 10:26:37
    vue博客的网址是啥
    前端练习生 • 时间 2026年02月22日 19:32:03
    程序整好了分享一下呗*
    麻烦修改一下网站 https://www.penlife.cn/:heo-抬眼镜:
    前端练习生 • 时间 2026年02月22日 19:29:36
    新年快乐,祝马上发财,万事如意,大顺大财大吉祥
    爱娃子 • 时间 2026年02月22日 11:50:39
    大佬厉害啊
    爱娃子 • 时间 2026年02月22日 11:49:50
    折腾起来
    别无所求爱娃子 • 时间 2026年02月22日 11:49:05
    :heo-鼓掌::heo-鼓掌::heo-鼓掌:
    热衷于 • 时间 2026年02月21日 17:55:20
    :heo-耍酷:自己会开发还是比较爽的*
    对了你的SSL过期了
    灰常记忆 • 时间 2026年02月19日 23:50:46
    能不能叫你的AI们给你发点钞票?:heo-耍酷:
    wu先生 • 时间 2026年02月18日 09:38:57
    灵蛇辞岁,金马报春*
    新的一年*
    祝你电量满格,快乐超标*
    所有的美好,都奔你而来
    阿和 • 时间 2026年02月17日 14:12:47
    可以让AI成为你的黑奴为你做事情了哈哈哈
    李的日志 • 时间 2026年02月16日 02:08:11
    用自己开发的工具固然是好 但如果是自用 如果是兴趣之上 那还好 如果是开源使用 一个人开发一个人维护 如果没有相应的回报 可能有点上头哦
    刘郎 • 时间 2026年02月15日 08:10:14

再了解一下?

  • 林羽凡待办
取消
支付宝二维码
支付宝二维码
微信二维码