乐于分享
好东西不私藏

【GO语言】开发一款markdown编辑器,基于go的gio框架,减少内存占用

【GO语言】开发一款markdown编辑器,基于go的gio框架,减少内存占用

介绍

go语言是谷歌推出的一款静态强类型的编译型语言,语法简单,编译飞快,更像是C语言的升级版。
通过轻量级协程(Goroutine)和通道(Channel)实现高效并发,适合高并发场景,广泛用于云原生Web 开发分布式系统微服务网络编程等领域。

开源生态

Docker‌ – 由Docker, Inc. 开发和维护,Docker是一个开源平台,用于开发、运行和操作应用程序。它是使用Go语言编写的,特别是在其核心引擎部分。Docker的流行使得Go语言在很多与容器相关的项目中得到了广泛的应用

Gitea‌ – Gitea是一个轻量级的Git服务,类似于GitLab的轻量版。它是用Go语言编写的,提供了类似于GitLab的功能,但在某些方面更加轻量级和简单。

Kubernetes – 容器编排和管理平台。Kubernetes(K8s)是一个开源系统,用于自动化部署、扩展和管理容器化应用程序。它是用Go语言编写的,其高性能和可扩展性是其成功的关键。

编写一个markdown编辑器

一款markdown编辑器不需要太复杂的布局,所以我们使用gio作为开发框架,它基于opengl直接渲染页面,舍弃了css灵活性的同时,带来了性能和内存占用优于webview2。

布局很简单,从左到右依次是:markdown的目录,最近访问,原始文本,渲染后的文本。

同时做了分块加载,每次加载200KB内容,防止像typora(同类软件)打开5M以上的文本产生的卡顿现象。

总结

还是挺不错,已经满足了我的日常使用需要,而且启动速度快于webview和electron系列的软件(如typora,obsidian,vscode-md插件),后续可以对接个网盘或者oss进行云端同步。

当然的同类软件的特点很丰富,本软件并不支持:

1. 所见即所得(WYSIWYG)编辑体验‌:输入 Markdown 语法时,内容会‌实时渲染‌为排版后的效果(如标题、加粗、图片等),无需切换预览模式,写作过程连贯流畅。

2. 多格式导出‌:可导出为 ‌PDF、HTML、Word、LaTeX、EPUB、图片‌ 等多种格式,满足不同场景需求。