Skip to content

Repository files navigation

Obsidian-Lite

一个轻量、离线、专注于本地阅读与写作的 Markdown 桌面应用。

Obsidian-Lite 使用 Rust、Tauri 2 与 Vue 3 构建,将原生文件系统能力与现代 Markdown 编辑体验组合在一个简洁的无边框窗口中。应用无需账号和云端服务,文档直接从本地读取并保存,适合日常笔记、项目文档、技术文章和代码片段预览。

Important

Obsidian-Lite 是独立项目,与 Obsidian 官方没有隶属关系。Obsidian 名称与标志归其权利人所有。

功能特性

本地文件与工作区

  • 新建、打开、编辑和保存本地 Markdown 文件。
  • 支持 .md.markdown.mdx 文件,单个文件最大 8 MB。
  • 可直接打开文件夹,通过左侧文件树浏览其中的 Markdown 文档。
  • 文件树自动隐藏点目录、node_modulesvendor,优先显示文件夹,最多递归 12 层。
  • 支持通过命令行参数或 Windows 文件关联直接载入 Markdown 文件。
  • 关闭文件夹不会关闭已经打开的文档标签,便于继续处理当前内容。

多文档编辑

  • 使用标签页同时打开多个文档,重复打开同一文件时自动定位到已有标签。
  • 当前文档存在未保存修改时显示状态标记。
  • 关闭未保存的标签页前会要求确认,避免误丢内容。
  • 新建文件后自动进入源码模式,可直接编辑并保存到本地。

三种阅读与写作视图

  • 源码模式:基于 CodeMirror 6 的 Markdown 编辑器,提供行号、当前行高亮、自动换行和语法解析。
  • 预览模式:以排版后的文档形式专注阅读。
  • 实时分栏:编辑器与预览区并排显示,内容修改后即时渲染。
  • 分栏模式支持编辑区与预览区双向滚动同步,切换回分栏时会尽量保持当前阅读位置。
  • 小尺寸窗口下分栏自动调整为上下布局,章节目录自动隐藏。

Markdown 渲染

  • 支持标题、段落、引用、链接、列表、任务列表、表格、删除线和自动链接识别。
  • 支持围栏代码块与常见语言别名,使用 Highlight.js 进行语法高亮。
  • 代码块带有语言标记、行号与一键复制按钮。
  • 自动从标题生成右侧章节目录,点击即可定位到对应段落。
  • 自动处理 Front Matter、缩进内容和较宽表格,表格可横向滚动。
  • 允许文档内 HTML,同时使用 DOMPurify 清理渲染结果。
  • 外部链接通过系统默认浏览器安全打开。

高效编辑

  • 支持粗体、斜体、链接、行内代码、标题、有序列表、无序列表和代码块快捷编辑。
  • 内置查找与替换、撤销、重做、Tab 缩进及选择内容匹配高亮。
  • 编辑区与阅读区均适配亮色和暗色主题。
  • 状态提示会反馈读取、保存、新建和错误信息。
  • 工具栏操作提供悬停说明,便于快速识别常用功能。

个性化与专注模式

  • 主题可选择跟随系统、亮色或暗色,也可从工具栏快速切换。
  • 自动读取 Windows 系统字体,支持统一调整界面、阅读区和编辑器字体。
  • 字体大小可在 12–24 px 之间调整。
  • 可控制无文档时是否显示欢迎内容。
  • Zen 模式会临时收起文件栏与章节目录,再次切换时恢复此前状态。
  • 文件栏、章节目录、视图切换和常用操作均提供键盘入口。

可配置快捷键

  • 文件、视图和 Markdown 编辑操作的快捷键都可在设置中重新录入。
  • 保存前会统一快捷键格式并检查冲突,避免多个操作占用同一组合键。
  • 支持一键恢复默认设置。
  • 设置保存在用户配置目录,升级或覆盖安装后仍会保留。

默认快捷键

操作 快捷键 操作 快捷键
新建 Markdown Ctrl+N 打开文件 Ctrl+O
打开文件夹 Ctrl+Shift+O 保存当前文件 Ctrl+S
关闭当前文件 Ctrl+W 打开设置 Ctrl+,
快捷键面板 F1 Zen 模式 F11
源码模式 Ctrl+1 预览模式 Ctrl+2
实时分栏 Ctrl+3 切换文件栏 Ctrl+Backslash
切换章节目录 Ctrl+Shift+Backslash 查找与替换 Ctrl+F
粗体 Ctrl+B 斜体 Ctrl+I
插入链接 Ctrl+K 行内代码 Ctrl+Backtick
一级/二级/三级标题 Ctrl+Alt+1/2/3 代码块 Ctrl+Shift+K
有序列表 Ctrl+Shift+7 无序列表 Ctrl+Shift+8
撤销 Ctrl+Z 重做 Ctrl+Y

快速上手

  1. 启动应用后,点击工具栏中的“打开文件”读取单个 Markdown 文档,或点击“打开文件夹”建立工作区。
  2. 使用顶部标签页在多个文档之间切换,并通过“源码 / 预览 / 实时”选择当前视图。
  3. 打开文件夹后,可用左侧文件树选择文档;预览模式下可用右侧章节目录快速跳转。
  4. 编辑完成后按 Ctrl+S 保存。标签名称旁的状态标记表示当前内容尚未保存。
  5. 点击工具栏中的设置按钮调整主题、字体、欢迎页和快捷键。

技术栈

层级 技术 用途
桌面运行时 Rust 2024、Tauri 2 原生窗口、文件系统和前后端桥接
前端 Vue 3、TypeScript、Vite 界面与工作区状态管理
编辑器 CodeMirror 6 Markdown 编辑、查找替换与快捷编辑
Markdown markdown-it Markdown 解析与 HTML 渲染
代码高亮 Highlight.js 围栏代码块语法高亮
内容安全 DOMPurify 清理预览区 HTML
图标 Lucide Vue Next 应用界面图标
原生插件 Tauri Dialog、Opener 文件对话框与系统浏览器调用
安装包 NSIS Windows 当前用户安装、卸载与文件关联

Release 构建会将 dist 中的前端资源打包进桌面应用,运行时不需要单独部署 Web 服务。

项目结构

.
├─ src/
│  ├─ App.vue                         # 应用外壳、快捷键和滚动同步
│  ├─ components/                     # 工具栏、编辑器、预览、侧栏和对话框
│  ├─ composables/
│  │  └─ useMarkdownWorkspace.ts      # 标签页、文件和视图状态
│  ├─ services/
│  │  └─ native.ts                    # Tauri 原生调用封装
│  ├─ utils/
│  │  └─ markdown.ts                  # Markdown 渲染与内容清理
│  └─ settings.ts                     # 前端快捷键定义与匹配
├─ src-tauri/
│  ├─ src/
│  │  ├─ files.rs                     # Markdown 文件、目录树与启动文件
│  │  ├─ settings.rs                  # INI 设置、校验与持久化
│  │  ├─ fonts.rs                     # Windows 系统字体枚举
│  │  ├─ models.rs                    # 前后端数据模型
│  │  └─ lib.rs                       # Tauri 命令注册与应用状态
│  ├─ windows/
│  │  ├─ installer.nsi                # 自定义 NSIS 安装器模板
│  │  └─ assets/                      # NSIS 向导图片
│  ├─ Cargo.toml
│  └─ tauri.conf.json                 # 窗口、打包与文件关联配置
├─ package.json
└─ vite.config.ts

本地开发

环境要求

  • Windows 10 或 Windows 11
  • Node.js 与 pnpm
  • Rust stable 工具链
  • Microsoft C++ Build Tools
  • Microsoft Edge WebView2 Runtime

安装依赖:

pnpm install

启动 Tauri 开发模式:

pnpm tauri dev

Tauri 会根据 src-tauri/tauri.conf.json 自动执行 pnpm dev,并连接 Vite 开发服务器。

如需单独检查前端:

pnpm run type:check
pnpm run build

运行 Rust 测试:

cargo test --manifest-path .\src-tauri\Cargo.toml

构建应用与安装包

在仓库根目录执行:

pnpm tauri build

主要产物:

src-tauri\target\release\Obsidian-Lite.exe
src-tauri\target\release\bundle\nsis\Obsidian-Lite_<version>_x64-setup.exe

当前 tauri.conf.json 只启用 NSIS 目标。构建时会先执行 TypeScript 类型检查与 Vite 生产构建,再编译 Rust 应用并生成 Windows 安装包。

Windows 安装包

NSIS 安装程序具有以下特性:

  • 按当前用户安装到 %LOCALAPPDATA%\Obsidian-Lite,无需管理员权限。
  • 提供简体中文与英文安装界面。
  • 使用应用图标、定制向导侧栏和卸载图标。
  • 创建开始菜单快捷方式,并可在完成页创建桌面快捷方式。
  • 安装时可选择关联 .md.markdown.mdx 文件,双击文档即可直接通过应用打开。
  • 覆盖升级时识别已有版本和原安装路径。
  • 卸载时移除由本应用创建的文件关联和快捷方式。
  • 在 Windows“程序和功能”中提供主页、帮助与更新链接。

安装器使用 downloadBootstrapper 模式处理 WebView2。目标电脑已经安装 WebView2 时可直接使用;如果缺少运行时,安装过程需要联网下载。

设置文件

应用设置保存在:

%AppData%\Obsidian-Lite\settings.ini

设置文件独立于安装目录,包含主题、字体、字号、欢迎页开关和全部快捷键配置。升级、覆盖安装或重新安装应用时会继续保留。

版本更新与发布

发布新版本时,需要同步修改以下三个版本号,三处均使用语义化版本格式:

package.json                 前端项目版本
src-tauri\Cargo.toml         Rust 程序及“关于”窗口版本
src-tauri\tauri.conf.json    Tauri 应用与 NSIS 安装包版本

例如发布修复版本时,将三处 1.0.0 同步更新为 1.0.1。版本号建议遵循:

  • 修复问题:1.0.01.0.1
  • 新增兼容功能:1.0.01.1.0
  • 包含不兼容改动:1.0.02.0.0

修改完成后执行完整验证和构建:

pnpm run type:check
cargo test --manifest-path .\src-tauri\Cargo.toml
pnpm tauri build

自定义 src-tauri/windows/installer.nsi 使用 Tauri 注入的版本变量,无需手动修改模板中的版本号。版本号升高后,运行新版安装包即可进入覆盖升级流程。

重新构建安装包不会自动推送给已安装用户。如果需要应用内检查、下载和安装新版本,需要另外接入并配置 Tauri Updater。

当前边界

  • 应用定位为本地 Markdown 工作台,不包含云同步、账号体系或团队协作服务。
  • 文件夹工作区只展示 Markdown 文档,不作为通用文件管理器使用。
  • 当前构建与安装配置面向 Windows x64。
  • 应用本身可离线读取、编辑和预览文档;仅在目标电脑缺少 WebView2 时,安装器可能需要联网。

相关链接

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages