Skip to content

homepage 插件教程

Homepage 插件使用指南

Homepage 是 Obsidian 中用于定制启动页面的插件。通过它,你可以指定任意笔记、文件夹或搜索视图作为打开仓库时的默认首页,而非默认的最近文件列表。

插件特点

特性说明
🎯 灵活定位支持笔记、文件夹、搜索视图、标签视图等多种首页类型
🕐 条件规则可按时间段、星期几切换不同的首页
🔗 一键跳转命令面板快速打开任意已配置的首页
⏰ 启动延迟支持设置打开首页前的延迟时间

安装插件

  1. 打开「设置」→「第三方插件」
  2. 关闭「安全模式」
  3. 点击「浏览」
  4. 搜索「Homepage」
  5. 点击「安装」并「启用」

基础配置

指定首页笔记

  1. 进入「设置」→「Homepage」
  2. 在「Home page file」中输入目标笔记的路径或点击「Open」选择文件
  3. 勾选「Open homepage on startup」启用启动时跳转
Home page file: 01 - Daily Notes/Daily Hub.md
Open homepage on startup: ✅

首页类型

类型配置方式说明
笔记文件输入笔记路径最常用的首页形式
文件夹输入文件夹路径打开后显示文件夹浏览视图
搜索视图输入 #tag 或搜索语法快速查看特定标签或搜索结果
标签视图输入 tag: 语法显示特定标签下的所有笔记

典型首页设计

仪表盘式首页

适合希望在一个页面看到所有核心信息的用户:

markdown
# 📋 个人仪表盘

## ⏰ 今日

- 日记:[[{{date:YYYY-MM-DD}}]]
- 今日任务:<!-- 嵌入 Tasks 插件 -->
- 日程:<!-- 嵌入日历视图 -->

## 📁 项目

- [[项目 A]]
- [[项目 B]]
- [[项目 C]]

## 🔖 快速入口

- [[Inbox]] 收件箱
- [[Archive]] 归档
- [[Areas]] 领域地图

每日中心式首页

适合以日记为核心工作流的用户:

markdown
# 🌅 每日工作台

## 今日

![[{{date:YYYY-MM-DD}}#Day Planner]]

## 本周

![[Weekly {{date:gggg-[W]ww}}]]

## 随手记

[[Inbox]]

## 常用

[[Projects]]
[[Areas]]
[[Resources]]

打开首页的方式

操作方法
启动时自动打开勾选「Open homepage on startup」
命令面板Homepage: Open homepage
快捷键在设置中自定义(如 Ctrl + Shift + H

进阶配置

设置启动延迟

如果 Obsidian 启动时需要加载其他插件或执行脚本,可以设置延迟:

Startup delay (ms): 1000

退出时返回首页

设置关闭 Obsidian 前自动返回首页,保持下次启动的一致性:

On quit, go to homepage: ✅

首页排除最近文件

启用后,首页笔记不会出现在「最近文件」列表中:

Exclude from recent files: ✅

与其他插件配合

配合 Daily Notes

将日记笔记本身设为首页的一部分:

markdown
## 今日日记

![[{{date:YYYY-MM-DD}}]]

配合 Dataview

使用 Dataview 嵌入动态数据到首页:

dataview
TABLE file.ctime AS 创建时间
FROM ""
WHERE contains(file.tags, "项目")
SORT file.ctime DESC
LIMIT 10

配合 kanban

在首页嵌入看板视图:

markdown
## 工作看板

![[Kanban Board#工作流程]]

常见问题

Q: 首页不生效?

  1. 确认插件已启用
  2. 检查「Home page file」路径是否正确(区分大小写)
  3. 确认勾选了「Open homepage on startup」
  4. 尝试重启 Obsidian

Q: 如何切换多个首页?

使用「Homepage Rules」功能创建多个条件规则,按时间或标签自动切换不同首页。

Q: 首页作为仪表盘时太杂乱?

建议使用折叠标题(## 折叠区块)组织内容,或通过 Obsidian 的「面板」功能将首页分成多个可折叠的区域。

Homepage 高级使用案例

本文介绍 Homepage 插件的进阶配置和使用场景,帮助你打造完全自动化、智能化的 Obsidian 入口体验。

条件化首页规则

Homepage 支持根据不同条件自动切换首页,实现「不同场景看到不同首页」。

按星期切换

为工作日和周末配置不同的首页:

时间首页
周一 ~ 周五01 - Daily Notes/Work Hub.md
周六 ~ 周日01 - Daily Notes/Life Hub.md

在「Homepage Rules」中添加规则:

Condition: Weekday
Homepage: /01 - Daily Notes/Work Hub.md

按时间段切换

在白天和夜晚使用不同的首页布局:

Condition: Time range 09:00-18:00
Homepage: 02 - Work Dashboard.md

Condition: Time range 18:00-09:00
Homepage: 03 - Personal Dashboard.md

按标签切换

根据当前打开的笔记标签,切换到相关的首页:

Condition: Contains tag #work
Homepage: Work Dashboard.md

Condition: Contains tag #个人
Homepage: Personal Hub.md

动态首页模板

结合 Templater 或 QuickAdd,实现首页内容的动态更新。

Templater 动态问候

markdown
<%*
const hour = new Date().getHours();
let greeting = "你好";
if (hour < 6) greeting = "夜深了";
else if (hour < 9) greeting = "早上好";
else if (hour < 12) greeting = "上午好";
else if (hour < 14) greeting = "中午好";
else if (hour < 18) greeting = "下午好";
else if (hour < 22) greeting = "晚上好";
else greeting = "夜深了";
-%>

# 🌟 <% greeting %>,{{user}}

今天是 **{{date:YYYY-MM-DD dddd}}**

自动生成本周概览

markdown
<%*
const today = moment(tp.date.now());
const weekStart = today.clone().startOf('week').format('YYYY-MM-DD');
const weekEnd = today.clone().endOf('week').format('YYYY-MM-DD');
-%>

## 📅 本周(<% weekStart %> ~ <% weekEnd %>)

| 周一 | 周二 | 周三 | 周四 | 周五 |
|------|------|------|------|------|
| [[<% today.clone().startOf('week').format('YYYY-MM-DD') %>]] | [[<% today.clone().startOf('week').add(1,'day').format('YYYY-MM-DD') %>]] | [[<% today.clone().startOf('week').add(2,'day').format('YYYY-MM-DD') %>]] | [[<% today.clone().startOf('week').add(3,'day').format('YYYY-MM-DD') %>]] | [[<% today.clone().startOf('week').add(4,'day').format('YYYY-MM-DD') %>]] |

Dataview 动态数据集成

在首页中使用 Dataview 嵌入实时数据,打造真正的仪表盘。

今日任务统计

dataview
TABLE length(filter(file.tasks, (t) => !t.completed)) AS 待办数,
       length(filter(file.tasks, (t) => t.completed)) AS 已完成
FROM ""
WHERE file.day = date(today)

本周项目进度

dataview
TABLE 
  rows.file.link AS 项目,
  length(rows) AS 笔记数,
  length(filter(rows.tasks, (t) => t.completed)) AS 完成,
  length(filter(rows.tasks, (t) => !t.completed)) AS 待办
FROM "04 - Projects"
WHERE file.ctime >= date(today) - dur(7 days)
GROUP BY file.folder

未整理的笔记

dataview
TABLE file.link AS 笔记, file.ctime AS 创建时间
FROM ""
WHERE file.ctime <= date(today) - dur(30 days)
WHERE !contains(file.path, "Templates")
WHERE length(file.outlinks) = 0
SORT file.ctime ASC
LIMIT 10

多角色首页配置

如果你同时扮演多个角色(员工、创业者、学生),可以为每个角色配置独立的首页。

角色配置示例

角色首页快捷键
工作模式Work Hub.mdCtrl + 1
学习模式Study Hub.mdCtrl + 2
个人模式Personal Hub.mdCtrl + 3

快速切换脚本

在 Templater 中创建角色切换脚本:

markdown
<%*
const role = await tp.system.suggester(
  ["🖥️ 工作模式", "📚 学习模式", "🏠 个人模式"],
  ["Work Hub", "Study Hub", "Personal Hub"]
);

if (role) {
  const app = require('obsidian').app;
  // 设置对应的首页
  await app.internalPlugins.getPluginById('homepage').instance.setHomePage(role);
  new Notice(`已切换到 ${role} 模式`);
}
-%>

首页主题化设计

极简专注型

适合需要减少干扰的用户:

markdown
# {{date:YYYY-MM-DD}}

---

## 唯一焦点

> 今天最重要的一件事

---

## 待办

<!-- 手动输入今日核心任务 -->
- [ ] 

---

⏰ {{time:HH:mm}}

信息密集型

适合需要多维度数据的用户:

markdown
# 📊 工作台

## 今日数据

```dataview
TABLE WITHOUT ID
  "📝 " + length(file.tasks) + " 任务" AS 今日,
  "✅ " + length(filter(file.tasks, t => t.completed)) + " 已完成" AS 状态,
  "📎 " + length(file.outlinks) + " 链接" AS 链接
WHERE file.day = date(today)

QuickAdd 自动化

一键生成首页快照

创建每日首页状态快照,便于回顾:

javascript
// QuickAdd Macro: 每日首页快照
const today = moment().format("YYYY-MM-DD");
const snapshot = app.workspace.getActiveFile();
if (snapshot) {
  const content = await app.vault.read(snapshot);
  await app.vault.create(
    `99 - Archives/Snapshots/${today}.md`,
    `---\n快照日期: ${today}\n来源: ${snapshot.path}\n---\n\n${content}`
  );
  new Notice(`已保存首页快照到 ${today}.md`);
}

周期性重置首页

每周一自动将首页重置为周模板:

javascript
// Templater Template: weekly-reset.md
<%*
if (moment().day() === 1) {
  const weekly = await app.vault.read(
    app.vault.getAbstractFileByPath("Templates/Weekly Hub.md")
  );
  await app.vault.modify(
    app.vault.getAbstractFileByPath("02 - Daily Notes/Weekly Hub.md"),
    weekly
  );
  new Notice("已重置本周首页");
}
-%>

团队协作场景

团队共享首页

在多用户 Obsidian Vault 中,使用 Homepage 为不同成员配置个性化入口:

markdown
# 🚀 团队首页

## 📢 公告

<!-- 由管理员更新的公告区 -->

## 👤 个人区

- `[[Inbox/Your Name]]` 你的收件箱
- `[[Projects/Your Projects]]` 你的项目

## 📊 团队看板

```dataview
TABLE file.link AS 文件, file.mtime AS 更新时间
FROM "Team"
SORT file.mtime DESC
LIMIT 5

### 按角色显示不同模块

使用 Dataview 权限过滤,不同成员看到不同的数据:

```dataview
TABLE file.link AS 文档
FROM "Projects"
WHERE contains(contains(tags, "manager") ? "管理" : "成员")
WHERE contains(file.frontmatter.assignee, "&#123;&#123;user&#125;&#125;")

常见问题

Q: 条件规则不生效?

  1. 检查规则顺序(规则从上到下匹配,第一个匹配生效)
  2. 确认时间格式正确(使用 24 小时制)
  3. 尝试删除部分规则逐步排查

Q: 首页加载太慢?

  1. 减少 Dataview 查询的数据量
  2. 使用 LIMIT 限制结果数量
  3. 将 Dataview 查询改为按需刷新(添加 flush: true

Q: 如何在移动端优化首页?

  • 简化首页布局,减少嵌入内容
  • 使用折叠区块隐藏次要信息
  • 禁用不必要的 Dataview 自动刷新