LOG · 日志
inkline
inkline
给习惯键盘盲打与实时排版的个人用户编写的轻量 Markdown 编辑器:自组 winit + wgpu + glyphon 渲染管线,光标位置就近弹出 yazi 式树形斜杠命令面板,界面元素遵循整数像素硬对齐与状态色彩编码。
状态:原型(M2.5 命令面板与基础行编辑可用;实时内联预览与插件系统待做);入口:cargo run;仓库:本地工程(未配置远程 Git)
本质
把自组 GPU 文本排版管线与光标就近无模态层级命令系统结合的轻量 Rust Markdown 编辑器。
选型
基于 Rust 原生图形栈构建的桌面编辑器单体,文本缓冲走 ropey,语法解析走 pulldown-cmark,字形排版与 GPU 光栅化走 cosmic-text + glyphon + wgpu。
- 运行时 / 语言
- Rust 1.80+ (2021 Edition)
- 窗口与图形
- winit 0.30
- wgpu 22.0
- 文本与排版
- ropey(Rope 文本缓冲)
- cosmic-text 0.12(文本整形与多语言排版)
- glyphon 0.6(字形图集 GPU 渲染)
- pulldown-cmark(CommonMark 增量解析)
- 音效与配置(计划中)
- kira / rodio
功能
- GPU 文本排版管线:cosmic-text 整形结合 glyphon 纹理图集,支持 CJK 舒适行高(正文 20px / 行高 34px)。
- 光标就近命令面板:输入
/锚定在光标正下方唤出树形面板,支持键盘上下/左右下钻过滤与执行。 - 状态编码边框:1px 整数像素对齐描边,上边呈现行宽占用、下边呈现内容密度图、左右呈现光标与选区跨度。
- 呼吸光标与平滑选区:活动焦点下在橙色系以 2.4 秒周期平滑呼吸,窗口失焦自动转为冷蓝。
- 未完成:M3 实时源码与内联富文本混合预览;M5 Lua 沙箱插件系统。
启动流程
cargo check # 类型与语法检查
cargo run # 启动编辑器窗口
cargo test # 执行单元测试
前置:支持 Vulkan / Metal / DX12 的系统图形驱动;系统已装载通用 CJK 无衬线字体;按 F1 可在 Sans / Serif / Mono 间循环切换字体。
边界与已知问题
- 架构假设:单文档单窗口,暂不支持多标签页与多文档分屏。
- 选区交互:当前仅支持单光标连续选区,不支持多光标并发编辑。
- 平台限制:当前在 Linux Wayland/X11 下调试,Windows/macOS 上的字体回退链尚未全面适配。
文档索引
- src/main.rs — 程序入口与事件循环
- src/gpu.rs — wgpu 渲染管线与字形图集配置
- src/editor.rs — Rope 缓冲与光标状态机