feat: add home and update TODOs

This commit is contained in:
2026-05-07 17:12:25 +08:00
parent a57afa86b4
commit 8036c9016c
21 changed files with 21579 additions and 1275 deletions

View File

@@ -2,6 +2,7 @@
"cssTheme": "Minimal",
"enabledCssSnippets": [
"table-wrap-fix",
"mermaid"
"mermaid",
"home-dashboard"
]
}
}

View File

@@ -6,5 +6,7 @@
"remember-cursor-position",
"remotely-save",
"copy-as-html",
"obsidian-image-toolkit"
"obsidian-image-toolkit",
"homepage",
"dataview"
]

20876
.obsidian/plugins/dataview/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.68",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",
"authorUrl": "https://github.com/blacksmithgu",
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
"isDesktopOnly": false
}

141
.obsidian/plugins/dataview/styles.css vendored Normal file
View File

@@ -0,0 +1,141 @@
.block-language-dataview {
overflow-y: auto;
}
/*****************/
/** Table Views **/
/*****************/
/* List View Default Styling; rendered internally as a table. */
.table-view-table {
width: 100%;
}
.table-view-table > thead > tr, .table-view-table > tbody > tr {
margin-top: 1em;
margin-bottom: 1em;
text-align: left;
}
.table-view-table > tbody > tr:hover {
background-color: var(--table-row-background-hover);
}
.table-view-table > thead > tr > th {
font-weight: 700;
font-size: larger;
border-top: none;
border-left: none;
border-right: none;
border-bottom: solid;
max-width: 100%;
}
.table-view-table > tbody > tr > td {
text-align: left;
border: none;
font-weight: 400;
max-width: 100%;
}
.table-view-table ul, .table-view-table ol {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Rendered value styling for any view. */
.dataview-result-list-root-ul {
padding: 0em !important;
margin: 0em !important;
}
.dataview-result-list-ul {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Generic grouping styling. */
.dataview.result-group {
padding-left: 8px;
}
/*******************/
/** Inline Fields **/
/*******************/
.dataview.inline-field-key {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-primary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
.dataview.inline-field-standalone-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--nav-item-color-selected);
}
/***************/
/** Task View **/
/***************/
.dataview.task-list-item, .dataview.task-list-basic-item {
margin-top: 3px;
margin-bottom: 3px;
transition: 0.4s;
}
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
background-color: var(--text-selection);
box-shadow: -40px 0 0 var(--text-selection);
cursor: pointer;
}
/*****************/
/** Error Views **/
/*****************/
div.dataview-error-box {
width: 100%;
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 4px dashed var(--background-secondary);
}
.dataview-error-message {
color: var(--text-muted);
text-align: center;
}
/*************************/
/** Additional Metadata **/
/*************************/
.dataview.small-text {
font-size: smaller;
color: var(--text-muted);
margin-left: 3px;
}
.dataview.small-text::before {
content: "(";
}
.dataview.small-text::after {
content: ")";
}

23
.obsidian/plugins/homepage/data.json vendored Normal file
View File

@@ -0,0 +1,23 @@
{
"version": 4,
"homepages": {
"Main Homepage": {
"value": "Home",
"kind": "File",
"openOnStartup": true,
"openMode": "Replace all open notes",
"manualOpenMode": "Keep open notes",
"view": "Reading view",
"revertView": false,
"openWhenEmpty": true,
"refreshDataview": false,
"autoCreate": false,
"autoScroll": false,
"pin": false,
"commands": [],
"alwaysApply": true,
"hideReleaseNotes": false
}
},
"separateMobile": false
}

3
.obsidian/plugins/homepage/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
{
"id": "homepage",
"name": "Homepage",
"version": "4.4.0",
"minAppVersion": "1.11.0",
"description": "Open a specified note, canvas, base, or workspace on startup, or set it for quick access later.",
"author": "novov",
"authorUrl": "https://novov.me",
"isDesktopOnly": false,
"fundingUrl": {
"Ko-fi": "https://ko-fi.com/novov"
}
}

231
.obsidian/plugins/homepage/styles.css vendored Normal file
View File

@@ -0,0 +1,231 @@
@keyframes nv-interstitial-destroy {
from { opacity: 1; }
to { opacity: 0; }
}
.setting-item[nv-greyed] {
opacity: .5;
pointer-events: none !important;
}
#nv-main-setting {
flex-wrap: wrap;
}
#nv-main-setting .setting-item-control {
padding-top: var(--size-4-1);
flex-basis: 100%;
align-items: stretch;
}
#nv-main-setting .setting-item-control input, #nv-main-setting .setting-item-control select {
font-size: var(--font-ui-medium);
font-weight: 600;
}
#nv-main-setting .setting-item-control select {
padding: var(--size-4-3) var(--size-4-4);
padding-right: var(--size-4-8);
height: auto;
}
#nv-main-setting .setting-item-control input {
flex-grow: 1;
padding: var(--size-4-5) var(--size-4-4);
}
#nv-main-setting .setting-item-control input[disabled] {
opacity: 0.3;
}
#nv-main-setting #nv-desc, #nv-main-setting #nv-info {
flex-basis: 100%;
}
#nv-main-setting #nv-desc {
font-weight: 500;
color: var(--text-normal);
font-size: var(--font-ui-small);
padding: 10px 0 0;
}
#nv-main-setting #nv-desc.mod-warning {
color: var(--text-error);
}
#nv-main-setting #nv-desc code {
font-family: var(--font-monospace);
font-size: var(--font-smaller);
border-radius: var(--radius-s);
}
#nv-main-setting #nv-desc small {
display: block;
font-weight: 400;
color: var(--text-muted);
font-size: calc(var(--font-ui-smaller) * 0.9);
padding: 5px 0 0;
}
.nv-homepage-file-tag {
display: inline-block;
vertical-align: middle;
margin-left: var(--size-2-2);
}
.nv-mobile-setting, .nv-command-setting {
flex-wrap: wrap;
row-gap: var(--size-2-2);
}
.nv-mobile-setting .nv-mobile-info {
font-size: var(--font-ui-smaller);
width: 100%;
margin-right: var(--size-4-18);
}
.nv-command-desc {
padding: 0;
}
.nv-command-box {
margin: 1em 0 0;
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
width: 100%;
}
.nv-command-pill {
background-color: var(--background-modifier-hover);
border-radius: var(--radius-s);
font-size: var(--font-ui-small);
padding: var(--size-2-1) var(--size-2-2) var(--size-2-1) var(--size-2-3) ;
}
.nv-command-pill.nv-command-invalid {
color: var(--text-faint);
}
.nv-command-pill button {
display: inline-block;
padding: 0;
margin: 0 0 0 3px;
vertical-align: bottom;
}
.nv-command-pill button:first-of-type {
margin-left: var(--size-4-2);
}
.nv-command-pill button.nv-command-selected {
margin-left: var(--size-2-2);
padding: 0 var(--size-2-1);
}
.nv-command-pill button.nv-command-selected span {
color: var(--text-accent);
display: inline-block;
font-size: 0.9em;
vertical-align: top;
position: relative;
top: -1px;
}
.nv-command-pill > .svg-icon, .nv-command-pill button .svg-icon {
height: 1em;
width: 1em;
opacity: 1;
}
.nv-command-pill > .svg-icon {
vertical-align: text-bottom;
position: relative;
margin: 0 var(--size-2-1) 0 0;
}
.nv-command-pill.nv-dragging {
background-color: transparent;
}
.nv-command-add-button {
font-size: var(--font-ui-small);
padding: var(--size-2-2) var(--size-4-2);
height: auto;
}
#nv-main-setting + .setting-item, .nv-command-desc + .setting-item {
padding-top: 20px;
border-top: none !important;
}
.nv-debug-button {
margin: 3em 0 -0.2em;
font-size: var(--font-ui-smaller);
padding: 0;
height: auto;
float: right;
box-shadow: none !important;
background: none !important;
color: var(--text-accent);
font-weight: 600;
cursor: pointer;
}
.nv-debug-button:hover, .nv-debug-button:active {
text-decoration: underline;
}
.is-phone #nv-main-setting .setting-item-control {
flex-wrap: wrap;
justify-content: flex-start;
}
.is-phone #nv-main-setting .setting-item-control select {
width: auto;
max-width: auto;
}
.is-phone .nv-mobile-setting {
row-gap: var(--size-4-2);
}
.is-phone .nv-mobile-setting .setting-item-info {
max-width: calc(100% - 100px);
}
.is-phone .nv-mobile-setting {
row-gap: var(--size-4-2);
}
.is-phone .nv-mobile-setting .setting-item-info {
max-width: calc(100% - 100px);
}
.is-phone .nv-command-pill {
width: 100%;
border: none;
background: none;
padding: 0 0 var(--size-4-2);
display: flex;
gap: var(--size-4-4);
align-items: baseline;
}
.is-phone .nv-command-pill .nv-command-text {
flex-grow: 1;
overflow: hidden;
text-overflow: ellipsis;
}
.is-phone .nv-command-pill, .is-phone .nv-command-add-button {
font-size: var(--font-ui-medium);
justify-content: space-between;
}
.is-phone .nv-command-pill button {
line-height: var(--font-ui-medium);
height: 100%;
margin: 0 !important;
}

File diff suppressed because one or more lines are too long

137
.obsidian/snippets/home-dashboard.css vendored Normal file
View File

@@ -0,0 +1,137 @@
.home-page {
--home-card-radius: 8px;
--home-gap: 14px;
}
.home-page.markdown-preview-view,
.home-page .markdown-preview-section {
max-width: 1120px;
margin-inline: auto;
}
.home-page h1 {
margin-bottom: 4px;
border-bottom: 0;
font-size: 2rem;
}
.home-page h2 {
margin-top: 28px;
margin-bottom: 10px;
border-bottom: 1px solid var(--background-modifier-border);
padding-bottom: 6px;
font-size: 1.08rem;
}
.home-page table {
width: 100%;
}
.home-page .callout {
border: 1px solid var(--background-modifier-border);
border-radius: var(--home-card-radius);
background: var(--background-secondary);
margin-block: var(--home-gap);
box-shadow: none;
}
.home-page .callout-title {
align-items: center;
min-height: 32px;
}
.home-page .callout-title-inner {
font-size: 0.96rem;
font-weight: 650;
}
.home-page .callout-content {
padding-top: 4px;
}
.home-page .callout[data-callout="todo-scroll"] {
--callout-color: 34, 139, 230;
--callout-icon: lucide-list-todo;
}
.home-page .callout[data-callout="todo-scroll"] .callout-content {
max-height: min(620px, 68vh);
overflow-y: auto;
overscroll-behavior: contain;
padding-right: 10px;
scrollbar-gutter: stable;
}
.home-page .callout[data-callout="todo-scroll"] .block-language-dataview,
.home-page .callout[data-callout="todo-scroll"] .dataview.dataview-container {
max-height: none !important;
overflow: visible !important;
}
.home-page .callout[data-callout="live"] {
--callout-color: 20, 184, 166;
--callout-icon: lucide-activity;
}
.home-page .callout[data-callout="live"] .callout-content {
max-height: 420px;
overflow-y: auto;
overscroll-behavior: contain;
padding-right: 10px;
scrollbar-gutter: stable;
}
.home-page .callout[data-callout="workspace"] {
--callout-color: 245, 159, 0;
--callout-icon: lucide-folder-kanban;
}
.home-page .block-language-dataview {
overflow-x: auto;
}
.home-page .dataview.table-view-table {
font-size: 0.92rem;
}
.home-page .contains-task-list {
padding-left: 1.2rem;
}
.home-page .dataview.task-list-item,
.home-page .dataview.task-list-basic-item {
margin-top: 4px;
margin-bottom: 4px;
}
.home-page .callout-content::-webkit-scrollbar {
width: 10px;
}
.home-page .callout-content::-webkit-scrollbar-track {
background: transparent;
}
.home-page .callout-content::-webkit-scrollbar-thumb {
background: var(--background-modifier-border);
border-radius: 999px;
}
.home-page .callout-content::-webkit-scrollbar-thumb:hover {
background: var(--text-muted);
}
@media (max-width: 700px) {
.home-page.markdown-preview-view,
.home-page .markdown-preview-section {
max-width: 100%;
}
.home-page h1 {
font-size: 1.6rem;
}
.home-page .callout[data-callout="todo-scroll"] .callout-content {
max-height: 58vh;
}
}

View File

@@ -1,42 +1,27 @@
{
"main": {
"id": "9403ee3a1c3b5fdc",
"id": "5324373015726ba8",
"type": "split",
"children": [
{
"id": "a8893039c60b1468",
"id": "f8b007af0e589114",
"type": "tabs",
"children": [
{
"id": "d3ef7a66c76312f9",
"id": "0b7be1d4b02f86db",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Config for Ali.md",
"mode": "source",
"file": "Home.md",
"mode": "preview",
"source": false
},
"icon": "lucide-file",
"title": "Config for Ali"
}
},
{
"id": "355b338ca9065921",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "projects/agentic-kvcache/related-works.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "related-works"
"title": "Home"
}
}
],
"currentTab": 1
]
}
],
"direction": "vertical"
@@ -55,7 +40,7 @@
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"sortOrder": "byModifiedTime",
"autoReveal": true
},
"icon": "lucide-folder-closed",
@@ -69,11 +54,11 @@
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"matchingCase": true,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
"sortOrder": "byModifiedTime"
},
"icon": "lucide-search",
"title": "Search"
@@ -157,13 +142,13 @@
"state": {
"type": "outline",
"state": {
"file": "projects/agentic-kvcache/related-works.md",
"file": "Home.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of related-works"
"title": "Outline of Home"
}
}
],
@@ -184,25 +169,33 @@
"daily-notes:Open today's daily note": true,
"obsidian-focus-mode:Toggle Focus Mode (Shift + Click to show active pane only)": false,
"remotely-save:Remotely Save": false,
"homepage:Open homepage": false,
"periodic-notes:Open today": false
}
},
"active": "355b338ca9065921",
"active": "0b7be1d4b02f86db",
"lastOpenFiles": [
"study/conf/Untitled.md",
"study/conf/EuroSys'26.md",
"projects/auto-tuner/sync2.md",
"Home.md",
"Untitled.md",
"study/conf/Untitled.md",
"study/conf/Untitled.base",
"study/conf/EuroSys'26.md",
"Untitled 1.base",
"Untitled.base",
"Commands.md",
"Dashboard.md",
"Config for Ali.md",
"main.canvas",
"period/weekly/25/0512-0518.md",
"projects/agentic-kvcache/related-works.md",
"projects/auto-tuner/Ali Deployment.md",
"projects/agentic-kvcache/ongoing.md",
"projects/agentic-kvcache/related-works.md",
"Commands.md",
"projects/agentic-kvcache/sync.md",
"projects/agentic-kvcache/outline.md",
"projects/agentic-kvcache/roadmap.md",
"projects/agentic-kvcache/main.md",
"projects/agentic-kvcache",
"projects/auto-tuner/sync2.md",
"period/daily/26/260310.md",
"period/daily/26/260312.md",
"projects/auto-tuner/ali trace.md",
@@ -212,10 +205,6 @@
"dev-env-setup.md",
"projects/auto-tuner/draft.md",
"projects/auto-tuner/Untitled 1.md",
"period/daily/26/260320.md",
"period/daily/26/260317.md",
"projects/auto-tuner/Untitled 2.md",
"projects/auto-tuner/principles model.md",
"projects/auto-tuner/related-works.figs",
"projects/auto-tuner/related-works.figs/260410-105227.png",
"projects/auto-tuner/sync2.figs/260410-105228-9.png",
@@ -226,16 +215,12 @@
"projects/auto-tuner/sync2.figs/260410-105228-4.png",
"projects/auto-tuner/sync2.figs/260410-105228-3.png",
"projects/auto-tuner/sync2.figs/260410-105228-2.png",
"main.canvas",
"period/weekly/26",
"period/weekly/25",
"period/daily/25",
"period/daily/26",
"article/published/杂谈|博零总结.figs/250913-144507.png",
"article/published/杂谈|博零总结.figs",
"article/published",
"article/drafts",
"review/assignments",
"Untitled.canvas"
]
}