anthemzhou57 downloadsNotion-like native Bases UI: compact tables, colored tags, covers and inline editing.
为 Markdown 与 Bases 提供 Codex-like 工作区:清晰的页面侧栏、提醒事项、紧凑表格与原位编辑。
A Codex-like workspace for Markdown and Bases, with focused navigation, reminders, compact tables and inline editing.
中文 · English · 下载 / Downloads · 反馈 / Issues
1.3.0 · Obsidian 1.14.5+ · Desktop + iPhone · GPL-3.0-only
Nebula Focus 让本地 Markdown 成为更容易浏览和编辑的工作区。界面参考 Codex 的导航与排版,手机侧栏借鉴 ChatGPT 的简洁布局;资料仍保存为普通 Markdown、属性和链接,AI 可以直接读取与编辑这些数据。
1.3.0 带来提醒事项首页、统一搜索、置顶区域、按需打开的右侧标签区,以及可离线使用的霞鹜文楷。项目早期借鉴 Notion 数据库的展示,但不会把任意 Markdown 自动还原成完整的 Notion 数据库。
目录: 功能 · 安装 · 使用 · 数据保存 · 兼容范围 · 开发与反馈
.base 数据库,显示原来的记录。关闭启动选项后,继续恢复上次工作页面。自动 Base、财务汇总与记录详情继续支持已有配置。打开 Markdown 时复用已有视图,或生成只查询当前笔记/同名目录直接子页的外部 Base。收支按币种分别汇总,关联通过 Markdown 链接访问;导入的公式和汇总快照不会自动变成本地实时公式,未取得的值不会补成零。详见自动数据视图、财务表格与记录详情。
需要 Obsidian 1.14.5 或更新版本;使用数据库视图时启用 Bases / 数据库 核心插件。
nebula-focus-1.3.0.zip。.obsidian/plugins/nebula-focus/,确认有 main.js、manifest.json、styles.css。更新时保留现有 data.json,替换上述三个运行文件,再重载插件。使用早期 native-reading-ui 开发插件的库,应先停用旧插件;如需迁移候选顺序,在两个插件均停用时复制旧 data.json。
iPhone 使用 iCloud 库时,可在电脑更新同一库的插件目录,等待同步完成,再重新打开手机上的 Obsidian。若仍显示旧界面,彻底关闭并重开应用。GitHub Release、官方社区目录审核和客户端更新同步是不同阶段,安装附件以对应 Release 为准。
| 操作 | 方法 |
|---|---|
| 打开页面侧栏 | 设置 → Nebula Focus → 页面侧栏 → 打开侧栏;也可用命令面板或左侧图标 |
| 搜索与浏览 | 点击侧栏顶部右侧放大镜,切换直接搜索、标签、书签或文件列表 |
| 置顶项目或页面 | 点击行内图钉;置顶区域显示在项目上方,再点图钉取消置顶 |
| 整理页面 | 拖动调整同级顺序,或使用 Alt + ↑ / ↓;右键菜单保留新建子页、排序和归档等操作 |
| 打开主页面 | 点击左侧栏页面、置顶项或搜索结果 |
| 查看相关记录 | 点击正文内部链接、提醒来源或数据表前的页面图标,在右侧打开;Command / Ctrl 点击改为主区 |
| 编辑记录标题 | 点击标题文字或右侧空白;Enter / 失焦保存,Escape 取消 |
| 打开提醒事项 | 点击侧栏提醒事项或运行同名命令;「添加数据库」引用已有 Base |
| 选择与管理标签 | 点击分类值选择,再点带勾选项取消;点击列标题管理候选项、顺序与显示名称 |
| 新建条目 | 点击表格最后一行「新建条目」或看板中的「新建」 |
| 查看图片 | 点击表格缩略图放大;看板封面使用 16:9 区域 |
| 更换字体 | 设置 → Nebula Focus → 字体 → 显示字体,选择跟随 Obsidian 或霞鹜文楷 |
提醒事项默认在冷启动时打开,插件热重载不抢走当前页面。关闭「设置 → Nebula Focus → 提醒事项 → 启动时打开提醒事项」后,由 Obsidian 恢复上次页面。旧版模块化 Home 已退出入口,原 home 配置与生成的 Base 文件保留,不迁移或删除其中的记录。
侧栏只显示 Markdown 页面及其目录,独立 .base 配置仍可从搜索面板文件列表、已有嵌入和选择器访问。右键顶部或空白处可调整侧栏选项。左侧竖条按钮可在设置中选择显示项,帮助和设置位于底部。详见页面侧栏与工作区导航。
| 快捷键 | macOS | Windows / Linux |
|---|---|---|
| 切换优化与原生外观 | ⌘⌥U | Ctrl+Alt+U |
| 撤销数据库操作 | ⌘Z | Ctrl+Z |
| 重做数据库操作 | ⌘⇧Z | Ctrl+Shift+Z |
单独按住 Command / Ctrl 约 0.6 秒,可查看桌面快捷键速查;松开收起。原生外观会恢复字体、间距、颜色、左侧工具和真正的文件列表,暂停自动生成 Base;重新启用后保留置顶、排序和展开状态。
数据库历史涵盖新建,以及通过原生属性事务提交的标题、标签值和普通看板状态修改;编辑文字时优先使用文字撤销。手机隐藏额外撤销按钮行,保留内部历史和命令入口。同一外部 Base 的同名、同类型手机视图可共享会话历史,关闭最后一个所属页面或重启后清空。候选项设置、列配置、删除文件及跨文件夹移动不属于该历史,详见撤销覆盖范围。
浏览和外观调整不会向 Markdown 正文或文件末尾写入 UI 代码。用户主动编辑内容时,才通过相应操作更新源文件。
| 数据或操作 | 保存位置 |
|---|---|
| 配色、字号、间距、封面、布局测量 | CSS 与内存中的呈现层 |
| 主动修改标题、标签或看板状态 | 源笔记 YAML 属性;编辑原生文件名列通过 Obsidian 重命名文件 |
| 列名称、列宽、排序、筛选、分组 | 原生 .base 配置 |
| 候选项、置顶、侧栏顺序、字体与外观偏好 | 插件 data.json |
| 提醒事项启动与数据库引用 | data.json 的 reminders;不复制任务或数据库记录 |
| 自动数据视图 | Nebula Views/<原笔记路径>.base,或复用原 Base |
| 记录详情布局 | nebula-record-layouts.json;数据与关联仍在 Markdown 中 |
| 历史 Home 配置 | 原 home 设置和 Nebula Views/Home/ 文件保留,1.3.0 不再提供旧首页入口 |
| 外部归档 | 用户选定的库外目录;校验后源文件进入库内回收站 |
推荐使用外部 .base 文件。Markdown 内联 base 代码块的配置保存由 Obsidian 原生功能更新该代码块。插件没有网络服务、遥测或 AI 接入;远程封面仅请求笔记所引用图片的原始地址,不上传笔记。
字体随 main.js 内嵌分发,默认不加载,选择后离线启用。字体保留独立的 SIL OFL 授权,见字体说明与第三方声明。
本版面向 macOS 桌面与 iPhone;Android、iPad、第三方主题和全部移动生命周期边界尚未逐项验证。桌面、真机镜像和直接触摸的证据分别记录,不能将某个流程通过视作所有界面均已通过。具体范围见版本说明、测试记录与iPhone 测试。
部分 Bases 增强依赖内部视图结构,不识别时保留原生控件。标题、标签与内容行高通过 .base 中的 nebulaTable 映射配置;旧想法收集箱配置可继续使用。分类标签与关联页面是不同操作:关联保留链接和导航,不伪装成可增删的分类选项。Notion 的 select、relation、公式与汇总语义不会仅凭外观自动完整迁移。
npm ci
npm run lint
npm run build
npm test
构建生成 main.js。将它与 manifest.json、styles.css 放入现有测试库,再重载。定向测试可运行 npm test -- workspace sidebar;完整检查仍使用 npm test。手机验证复用同一个 iCloud 测试库,保留笔记与设置。
发布前审阅并暂存公开源码、文档和版本信息,再运行 npm run package。源码包读取 Git 暂存区;不要暂存私人库、截图、备份或插件 data.json。发布检查与保留警告见检查说明,测试组织见测试审计。
请通过 GitHub Issues 提供 Obsidian 版本、主题与复现步骤。文档采用 Node Console 的中文在前、英文在后层次,参考中文技术文档写作规范。
Nebula Focus makes local Markdown easier to browse and edit. Its navigation and typography take cues from Codex, while the mobile sidebar follows ChatGPT's restrained layout. Notes remain ordinary Markdown, properties and links that AI tools can read and edit directly.
Version 1.3.0 adds a Reminders landing page, unified search, pinned entries, an optional right-hand tab group and offline LXGW WenKai. The project initially borrowed from Notion's database presentation; it does not automatically turn arbitrary Markdown into a complete Notion database.
Contents: Features · Installation · Usage · Data storage · Compatibility · Development and feedback
.base databases using their original records. Disable startup opening to resume the previous page.Automatic Bases, finance summaries and record layouts retain existing configurations. Opening Markdown reuses a Base or creates an external view scoped to the note or its same-stem folder's direct children. Cash-flow summaries separate currencies and related records use Markdown links. Imported formulas and rollups remain snapshots rather than executable local formulas; unavailable values are never replaced with zero. See automatic data views, finance tables and record layouts.
Requires Obsidian 1.14.5 or later. Enable the Bases core plugin for database views.
nebula-focus-1.3.0.zip from GitHub Releases..obsidian/plugins/nebula-focus/ in your vault, containing main.js, manifest.json and styles.css.When updating, keep data.json, replace those three runtime files and reload the plugin. Disable the old native-reading-ui development plugin first if present; transfer its data.json with both plugins disabled when retaining old candidate ordering.
For an iCloud vault on iPhone, update the same vault's plugin folder from the computer, wait for sync, then reopen Obsidian on the phone. Fully quit and restart if it retains the old interface. GitHub releases, official directory review and client update synchronization are separate stages; release assets define the available package.
| Action | Method |
|---|---|
| Open the page sidebar | Settings → Nebula Focus → Page sidebar → Open sidebar; or use the command palette/ribbon |
| Search and browse | Use the top-right magnifier and switch between Direct Search, Tags, Bookmarks and Files |
| Pin a page or project | Use its pin action; the dedicated section appears above Projects. Pin again to remove the shortcut |
| Organize pages | Drag siblings or use Alt + ↑ / ↓; right-click for child creation, ordering and archive actions |
| Open the main page | Click a sidebar page, pin or search result |
| Inspect related records | Click an internal content link, reminder source or table page icon to open on the right; Command / Ctrl-click targets the main region |
| Edit a record title | Click the text or trailing space; Enter/blur saves, Escape cancels |
| Open Reminders | Use the sidebar or command palette; Add database references an existing Base |
| Choose and manage tags | Click a classification value; click a checked option again to deselect. Column headers manage suggestions, order and display names |
| Create a record | Use the grid's final New item row or the board's New action |
| View images | Click a thumbnail to enlarge it; board covers use 16:9 areas |
| Choose a font | Settings → Nebula Focus → 字体 / Fonts → 显示字体 / Display font |
Reminders opens on cold startup by default; hot reload does not take focus. Disable 启动时打开提醒事项 under Settings → Nebula Focus → 提醒事项 to resume the previous workspace. The old modular Home is no longer an entry point; its home preferences and generated Base files remain stored without moving or deleting records.
The sidebar shows Markdown pages and their folders. Standalone .base files remain accessible through Files in the search panel, existing embeds and selectors. Right-click the header or blank space for sidebar options. Choose visible left-rail tools in settings; Help and Settings sit at its bottom. See page navigation and workspace behavior.
| Shortcut | macOS | Windows / Linux |
|---|---|---|
| Toggle enhanced / native appearance | ⌘⌥U | Ctrl+Alt+U |
| Undo a database operation | ⌘Z | Ctrl+Z |
| Redo a database operation | ⌘⇧Z | Ctrl+Shift+Z |
Hold Command / Ctrl alone for about 0.6 seconds to show desktop shortcut help; release to dismiss it. Native appearance restores fonts, spacing, colors, left tools and the actual file explorer, and pauses automatic Base generation. Re-enabling retains pins, ordering and expansion state.
Database history covers creation and title, tag-value or ordinary board-state changes submitted through native property transactions; typing keeps normal text undo. Mobile hides the extra undo-button row but retains history and command access. The same named/type view of an external Base can share session history across mobile tabs; closing its last owner or restarting clears it. Candidate settings, column configuration, file deletion and cross-folder moves are outside this history. See undo coverage.
Browsing and appearance changes do not insert UI code into Markdown bodies or append it to files. Explicit content edits update their source files through the corresponding operation.
| Data or action | Storage |
|---|---|
| Colors, typography, spacing, covers and geometry | CSS and in-memory presentation |
| Explicit title, tag or board-state edits | Source-note YAML; editing a native file-name column renames the note through Obsidian |
| Column names, widths, sorting, filters and groups | Native .base configuration |
| Suggestions, pins, sidebar order, font and appearance preferences | Plugin data.json |
| Reminder startup and database references | reminders in data.json; no task or record copies |
| Automatic data views | Nebula Views/<original note path>.base, or a reused Base |
| Record-detail layouts | nebula-record-layouts.json; data and relations remain in Markdown |
| Historical Home settings | Existing home preferences and Nebula Views/Home/ files remain; 1.3.0 removes the old entry point |
| External archives | A user-selected directory outside the vault; verified sources move to vault trash |
External .base files are recommended. Obsidian's native save updates an inline Markdown base block when changing its configuration. The plugin has no network service, telemetry or AI integration. Remote covers request only the original image URL referenced by the note, without uploading notes.
The optional font and its license ship inside main.js. Font data loads offline only when selected. The font retains its separate SIL OFL license; see fonts and third-party notices.
This release targets macOS desktop and iPhone. Android, iPad, third-party themes and every mobile lifecycle boundary have not been individually validated. Desktop, physical-device mirroring and direct-touch evidence are recorded separately; passing one flow does not establish that every interface has passed. See release notes, testing and iPhone validation.
Some Bases enhancements depend on internal view structure and retain native controls when unrecognized. Titles, tags and content-driven row heights use explicit nebulaTable profiles; legacy idea-inbox mappings remain usable. Classification tags and related pages have different interactions: relations retain links and navigation rather than imitating editable classification options. Notion select, relation, formula and rollup semantics do not migrate completely through appearance alone.
npm ci
npm run lint
npm run build
npm test
The build creates main.js. Copy it with manifest.json and styles.css into the existing test vault, then reload. Use npm test -- workspace sidebar for focused checks and npm test for the full suite. Phone testing reuses one iCloud test vault, preserving notes and settings.
Review and stage public source, documentation and version files before running npm run package. Source archives read the Git index; never stage private vaults, screenshots, backups or plugin data.json. See review findings and the test-suite audit.
Report the Obsidian version, theme and reproduction steps through GitHub Issues. This document follows Node Console's Chinese-first, English-second hierarchy and the Chinese technical writing guide.
Copyright © 2026 Shengyu Zhou. GPL-3.0-only · Third-party notices.
Codex、ChatGPT 与 Notion 是设计参考;本项目与 OpenAI、Notion、Obsidian 无隶属关系。
Codex, ChatGPT and Notion are design references. This project is not affiliated with OpenAI, Notion or Obsidian.