This commit is contained in:
windyboy
2026-01-21 08:46:13 +08:00
parent 20d354d97d
commit 4add1512a9
43 changed files with 32064 additions and 33516 deletions
+1 -1
View File
@@ -38,7 +38,7 @@
"Remove-Partition" "Remove-Partition"
] ]
}, },
"model": "sonnet", "model": "haiku",
"enableAutoTitleGeneration": true, "enableAutoTitleGeneration": true,
"titleGenerationModel": "", "titleGenerationModel": "",
"thinkingBudget": "low", "thinkingBudget": "low",
+2 -11
View File
@@ -2,25 +2,16 @@
"claudian", "claudian",
"obsidian-local-rest-api", "obsidian-local-rest-api",
"table-editor-obsidian", "table-editor-obsidian",
"smart-connections",
"obsidian-git",
"templater-obsidian", "templater-obsidian",
"obsidian-tasks-plugin",
"calendar",
"obsidian-kanban", "obsidian-kanban",
"obsidian-style-settings",
"obsidian-icon-folder", "obsidian-icon-folder",
"omnisearch", "omnisearch",
"copilot",
"easy-typing-obsidian",
"obsidian-advanced-uri", "obsidian-advanced-uri",
"advanced-canvas",
"obsidian-advanced-codeblock", "obsidian-advanced-codeblock",
"better-word-count", "better-word-count",
"dataview",
"obsidian-excalidraw-plugin", "obsidian-excalidraw-plugin",
"mcp-tools",
"obsidian-mind-map", "obsidian-mind-map",
"cm-chs-patch", "cm-chs-patch",
"quickadd" "quickadd",
"highlightr-plugin"
] ]
+3 -3
View File
@@ -17,8 +17,8 @@
"slash-command": false, "slash-command": false,
"editor-status": true, "editor-status": true,
"bookmarks": true, "bookmarks": true,
"markdown-importer": false, "markdown-importer": true,
"zk-prefixer": false, "zk-prefixer": true,
"random-note": false, "random-note": false,
"outline": true, "outline": true,
"word-count": true, "word-count": true,
@@ -27,7 +27,7 @@
"workspaces": false, "workspaces": false,
"file-recovery": true, "file-recovery": true,
"publish": false, "publish": false,
"sync": true, "sync": false,
"bases": true, "bases": true,
"webviewer": false "webviewer": false
} }
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "code-styler",
"name": "Code Styler",
"version": "1.1.7",
"minAppVersion": "0.15.0",
"description": "Style and customize codeblocks and inline code in both editing mode and reading mode.",
"author": "Mayuran Visakan",
"authorUrl": "https://github.com/mayurankv",
"fundingUrl": "https://www.buymeacoffee.com/mayurankv2",
"isDesktopOnly": false
}
@@ -0,0 +1 @@
{}
File diff suppressed because it is too large Load Diff
+9 -2
View File
@@ -384,7 +384,7 @@
"autocompleteAcceptKey": "Tab", "autocompleteAcceptKey": "Tab",
"allowAdditionalContext": true, "allowAdditionalContext": true,
"enableWordCompletion": false, "enableWordCompletion": false,
"lastDismissedVersion": "3.1.4", "lastDismissedVersion": "3.1.5",
"passMarkdownImages": true, "passMarkdownImages": true,
"enableAutonomousAgent": true, "enableAutonomousAgent": true,
"enableCustomPromptTemplating": true, "enableCustomPromptTemplating": true,
@@ -410,5 +410,12 @@
"enableSavedMemory": true, "enableSavedMemory": true,
"quickCommandIncludeNoteContext": true, "quickCommandIncludeNoteContext": true,
"autoIncludeTextSelection": false, "autoIncludeTextSelection": false,
"enableInlineCitations": true "enableInlineCitations": true,
"autoAddActiveContentToContext": true,
"autoCompactThreshold": 128000,
"autoAddSelectionToContext": false,
"autoAcceptEdits": false,
"chatHistorySortStrategy": "recent",
"projectListSortStrategy": "recent",
"userSystemPromptsFolder": "copilot/system-prompts"
} }
+956 -527
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "copilot", "id": "copilot",
"name": "Copilot", "name": "Copilot",
"version": "3.1.4", "version": "3.1.5",
"minAppVersion": "0.15.0", "minAppVersion": "0.15.0",
"description": "Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.", "description": "Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.",
"author": "Logan Yang", "author": "Logan Yang",
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"id": "highlightr-plugin",
"name": "Highlightr",
"version": "1.2.2",
"minAppVersion": "0.12.8",
"description": "A minimal and aesthetically pleasing highlighting menu that makes color-coded highlighting much easier with a configurable assortment of highlight colors 🎨.",
"author": "chetachi",
"authorUrl": "https://github.com/chetachiezikeuzor",
"isDesktopOnly": false
}
+774
View File
@@ -0,0 +1,774 @@
/*highlighter style*/
/*lowlight*/
.highlightr-lowlight mark,
.highlightr-lowlight span.cm-highlight,
.highlightr-lowlight .markdown-preview-view mark {
--lowlight-background: var(--background-primary);
border-radius: 0;
background-image: linear-gradient(
360deg,
rgba(255, 255, 255, 0) 40%,
var(--lowlight-background) 40%
) !important;
}
.highlightr-lowlight .workspace-split.mod-left-split mark,
.highlightr-lowlight .workspace-split.mod-left-split span.cm-highlight,
.highlightr-lowlight
.workspace-split.mod-left-split
.markdown-preview-view
mark,
.highlightr-lowlight .workspace-split.mod-right-split mark,
.highlightr-lowlight .workspace-split.mod-right-split span.cm-highlight,
.highlightr-lowlight
.workspace-split.mod-right-split
.markdown-preview-view
mark {
--lowlight-background: var(--background-secondary);
}
.highlightr-lowlight .admonition-content mark,
.highlightr-lowlight .admonition-content span.cm-highlight,
.highlightr-lowlight .admonition-content > .markdown-preview-view mark {
--lowlight-background: var(--background-primary-alt);
}
/*floating*/
.highlightr-floating mark,
.highlightr-floating span.cm-highlight,
.highlightr-floating .markdown-preview-view mark {
--floating-background: var(--background-primary);
border-radius: 0;
padding-bottom: 5px;
background-image: linear-gradient(
360deg,
rgba(255, 255, 255, 0) 28%,
var(--floating-background) 28%
) !important;
}
.highlightr-floating .workspace-split.mod-left-split mark,
.highlightr-floating .workspace-split.mod-left-split span.cm-highlight,
.highlightr-floating
.workspace-split.mod-left-split
.markdown-preview-view
mark,
.highlightr-floating .workspace-split.mod-right-split mark,
.highlightr-floating .workspace-split.mod-right-split span.cm-highlight,
.highlightr-floating
.workspace-split.mod-right-split
.markdown-preview-view
mark {
--floating-background: var(--background-secondary);
}
.highlightr-floating .admonition-content mark,
.highlightr-floating .admonition-content span.cm-highlight,
.highlightr-floating .admonition-content > .markdown-preview-view mark {
--floating-background: var(--background-primary-alt);
}
/*rounded*/
.highlightr-rounded mark,
.highlightr-rounded .markdown-preview-view mark {
margin: 0 -0.05em;
padding: 0.125em 0.15em;
border-radius: 0.2em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
.highlightr-rounded span.cm-highlight {
border-radius: 0.2em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
.highlightr-rounded .cm-s-obsidian span.cm-highlight {
font-weight: inherit;
}
.highlightr-rounded .cm-highlight + span.cm-formatting-highlight {
padding-left: 0em;
padding-right: 0.15em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
/*realistic*/
.highlightr-realistic mark,
.highlightr-realistic .markdown-preview-view mark {
margin: 0 -0.05em;
padding: 0.1em 0.4em;
border-radius: 0.8em 0.3em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
text-shadow: 0 0 0.75em var(--background-primary-alt);
}
.highlightr-realistic.hide-tokens .cm-s-obsidian span.cm-highlight,
.hide-tokens.highlightr-realistic .cm-s-obsidian span.cm-highlight {
border-radius: 0.8em 0.3em;
}
.highlightr-realistic .cm-s-obsidian span.cm-highlight {
padding: 0.15em 0.25em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
text-shadow: 0 0 0.75em var(--background-primary-alt);
}
.highlightr-realistic .cm-s-obsidian span.cm-formatting-highlight {
margin: 0 0 0 -0.05em;
padding: 0.15em 0.25em;
border-radius: 0.8em 0 0 0.3em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
.highlightr-realistic
.cm-s-obsidian
.cm-highlight
+ span.cm-formatting-highlight {
margin: 0 -0.05em 0 0;
padding: 0.15em 0.25em;
border-radius: 0 0.3em 0.8em 0;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
/**/
button.copy-highlights {
padding: 4px 14px;
border-radius: 5px;
background-color: var(--interactive-accent);
}
.copy-highlights svg {
width: 1.3em;
height: 1.3em;
display: flex;
}
details summary.highlight-summary:before {
width: 2em;
height: 2em;
content: "☐";
font-size: 9px;
cursor: pointer;
margin-right: 5px;
display: inline-block;
vertical-align: 0.05em;
background-color: currentColor;
-webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="black" d="M10.707 17.707L16.414 12l-5.707-5.707l-1.414 1.414L13.586 12l-4.293 4.293z"></path></svg>');
}
details[open] summary.highlight-summary::before {
transform: rotate(90deg);
}
/*highlightr component*/
@keyframes fade {
0% {
opacity: 0;
}
20% {
opacity: 0.9;
}
40% {
opacity: 0.95;
}
100% {
opacity: 1;
}
}
.menu.highlighterContainer {
min-width: 140px;
max-width: 225px;
max-height: 180px;
padding-left: 0em;
padding: 0;
margin: 0 auto;
border-radius: 6px;
font-size: 14px;
overflow-y: auto;
overflow-x: hidden;
position: fixed;
animation: fade 300ms ease-in-out;
background-color: var(--background-primary);
box-shadow: 0px 3px 25px rgba(31, 38, 135, 0.1);
border: 1px solid var(--background-modifier-border);
}
.menu.highlighterContainer .menu-item .menu-item-icon {
display: inline-block;
width: 25px;
position: relative;
top: 2px;
}
.menu.highlighterContainer .menu-item {
display: flex;
padding: 2px 14px 3px 14px;
align-items: unset;
margin: auto;
cursor: pointer;
font-size: 14px;
height: 32px;
line-height: 31px;
white-space: nowrap;
border-radius: 0;
border-bottom: 1px solid var(--background-modifier-border);
}
.menu.highlighterContainer .menu-item:last-of-type {
border-bottom: none;
}
/*----------------------------------------------------------------
SETTINGS TAB
----------------------------------------------------------------*/
button.HighlightrSettingsButton {
padding: 4px 14px;
border-radius: 6px;
height: fit-content;
}
button.HighlightrSettingsButton svg {
width: 1.3em;
height: 1.3em;
display: flex;
}
.highlighter-settings-color,
.highlighter-settings-value {
width: 42%;
color: var(--text-normal);
}
.highlighterplugin-setting-item {
display: block;
}
.highlighterplugin-setting-item .setting-item-control {
justify-content: space-between;
margin-top: 12px;
align-content: center;
align-items: flex-end;
grid-gap: 6px;
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonAdd,
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonAdd {
background-color: var(--interactive-accent);
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonDelete,
button:not(.mod-cta):not(.mod-warning).HighlightrSettingsButton.HighlightrSettingsButtonDelete {
background-color: #989cab;
}
/**/
.highlighter-setting-icon {
display: flex;
height: 24px;
width: 24px;
}
.highlighter-item-draggable {
cursor: grab;
display: grid;
grid-gap: 8px;
grid-template-columns: 0.5fr 7fr;
align-items: center;
border-top: 1px solid var(--background-modifier-border);
}
.HighlightrSettingsTabsContainer {
border-bottom: 1px solid var(--background-modifier-border);
}
.setting-item.highlighter-setting-item:first-child {
padding-top: 18px;
}
.highlighter-setting-item {
padding: 18px 0 18px 0;
border-top: none;
}
.highlighter-sortable-fallback {
cursor: grabbing;
box-shadow: 0px 3px 32px rgb(31 38 135 / 15%);
}
.highlighter-sortable-grab {
cursor: grabbing !important;
}
.highlighter-sortable-ghost {
opacity: 0.4;
cursor: grabbing;
}
.highlighter-sortable-chosen {
cursor: grabbing;
padding: 0 0 0 18px;
background-color: var(--background-primary);
}
.highlighter-sortable-drag {
cursor: grabbing;
box-shadow: 0px 3px 32px rgb(31 38 135 / 15%);
}
/*----------------------------------------------------------------
HIGHLIGHTR SUPPORT
----------------------------------------------------------------*/
.hltrDonationSection {
width: 65%;
height: 50vh;
margin: 0 auto;
text-align: center;
color: var(--text-normal);
}
.pcr-app .pcr-swatches > button {
padding: 0;
}
.pickr .pcr-button {
margin-right: 0;
}
.themed-color-wrapper > div {
background: var(--background-primary);
padding: 10px;
display: flex;
align-items: center;
border-radius: 4px;
}
.themed-color-wrapper > div + div {
margin-top: 6px;
}
.themed-color-wrapper button {
display: block;
}
.themed-color-wrapper .pickr-reset > button {
margin: 0 0 0 10px;
padding: 9px;
line-height: 1;
}
.themed-color-wrapper .pickr-reset > button > svg {
display: block;
}
/*----------------------------------------------------------------
PICKR 1.8.2 MIT | https://github.com/Simonwep/pickr
----------------------------------------------------------------*/
.pickr {
position: relative;
overflow: visible;
transform: translateY(0);
}
.pickr * {
box-sizing: border-box;
outline: none;
border: none;
-webkit-appearance: none;
}
.pickr .pcr-button {
position: relative;
height: 2em;
width: 2em;
padding: 0.5em;
cursor: pointer;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
"Helvetica Neue", Arial, sans-serif;
border-radius: 0.15em;
background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" stroke="%2342445A" stroke-width="5px" stroke-linecap="round"><path d="M45,45L5,5"></path><path d="M45,5L5,45"></path></svg>')
no-repeat center;
background-size: 0;
transition: all 0.3s;
}
.pickr .pcr-button::before {
position: absolute;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');
background-size: 0.5em;
border-radius: 0.15em;
z-index: -1;
}
.pickr .pcr-button::before {
z-index: initial;
}
.pickr .pcr-button::after {
position: absolute;
content: "";
top: 0;
left: 0;
height: 100%;
width: 100%;
transition: background 0.3s;
background: var(--pcr-color);
border-radius: 0.15em;
}
.pickr .pcr-button.clear {
background-size: 70%;
}
.pickr .pcr-button.clear::before {
opacity: 0;
}
.pickr .pcr-button.clear:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
}
.pickr .pcr-button.disabled {
cursor: not-allowed;
}
.pickr *,
.pcr-app * {
box-sizing: border-box;
outline: none;
border: none;
-webkit-appearance: none;
}
.pickr input:focus,
.pickr input.pcr-active,
.pickr button:focus,
.pickr button.pcr-active,
.pcr-app input:focus,
.pcr-app input.pcr-active,
.pcr-app button:focus,
.pcr-app button.pcr-active {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px var(--pcr-color);
}
.pickr .pcr-palette,
.pickr .pcr-slider,
.pcr-app .pcr-palette,
.pcr-app .pcr-slider {
transition: box-shadow 0.3s;
}
.pickr .pcr-palette:focus,
.pickr .pcr-slider:focus,
.pcr-app .pcr-palette:focus,
.pcr-app .pcr-slider:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85), 0 0 0 3px rgba(0, 0, 0, 0.25);
}
.pcr-app {
position: fixed;
display: flex;
flex-direction: column;
z-index: 10000;
border-radius: 0.1em;
background: #fff;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s, visibility 0s 0.3s;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
"Helvetica Neue", Arial, sans-serif;
box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03);
left: 0;
top: 0;
}
.pcr-app.visible {
transition: opacity 0.3s;
visibility: visible;
opacity: 1;
}
.pcr-app .pcr-swatches {
display: flex;
flex-wrap: wrap;
margin-top: 0.75em;
}
.pcr-app .pcr-swatches.pcr-last {
margin: 0;
}
@supports (display: grid) {
.pcr-app .pcr-swatches {
display: grid;
align-items: center;
grid-template-columns: repeat(auto-fit, 1.75em);
}
}
.pcr-app .pcr-swatches > button {
font-size: 1em;
position: relative;
width: calc(1.75em - 5px);
height: calc(1.75em - 5px);
border-radius: 0.15em;
cursor: pointer;
margin: 2.5px;
flex-shrink: 0;
justify-self: center;
transition: all 0.15s;
overflow: hidden;
background: transparent;
z-index: 1;
}
.pcr-app .pcr-swatches > button::before {
position: absolute;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');
background-size: 6px;
border-radius: 0.15em;
z-index: -1;
}
.pcr-app .pcr-swatches > button::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: var(--pcr-color);
border: 1px solid rgba(0, 0, 0, 0.05);
border-radius: 0.15em;
box-sizing: border-box;
}
.pcr-app .pcr-swatches > button:hover {
filter: brightness(1.05);
}
.pcr-app .pcr-swatches > button:not(.pcr-active) {
box-shadow: none;
}
.pcr-app .pcr-interaction {
display: flex;
flex-wrap: wrap;
align-items: center;
margin: 0 -0.2em 0 -0.2em;
}
.pcr-app .pcr-interaction > * {
margin: 0 0.2em;
}
.pcr-app .pcr-interaction input {
letter-spacing: 0.07em;
font-size: 0.75em;
text-align: center;
cursor: pointer;
color: #75797e;
background: #f1f3f4;
border-radius: 0.15em;
transition: all 0.15s;
padding: 0.45em 0.5em;
margin-top: 0.75em;
}
.pcr-app .pcr-interaction input:hover {
filter: brightness(0.975);
}
.pcr-app .pcr-interaction input:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85),
0 0 0 3px rgba(66, 133, 244, 0.75);
}
.pcr-app .pcr-interaction .pcr-result {
color: #75797e;
text-align: left;
flex: 1 1 8em;
min-width: 8em;
transition: all 0.2s;
border-radius: 0.15em;
background: #f1f3f4;
cursor: text;
}
.pcr-app .pcr-interaction .pcr-result::-moz-selection {
background: #4285f4;
color: #fff;
}
.pcr-app .pcr-interaction .pcr-result::selection {
background: #4285f4;
color: #fff;
}
.pcr-app .pcr-interaction .pcr-type.active {
color: #fff;
background: #4285f4;
}
.pcr-app .pcr-interaction .pcr-save,
.pcr-app .pcr-interaction .pcr-cancel,
.pcr-app .pcr-interaction .pcr-clear {
color: #fff;
width: auto;
}
.pcr-app .pcr-interaction .pcr-save,
.pcr-app .pcr-interaction .pcr-cancel,
.pcr-app .pcr-interaction .pcr-clear {
color: #fff;
}
.pcr-app .pcr-interaction .pcr-save:hover,
.pcr-app .pcr-interaction .pcr-cancel:hover,
.pcr-app .pcr-interaction .pcr-clear:hover {
filter: brightness(0.925);
}
.pcr-app .pcr-interaction .pcr-save {
background: #4285f4;
}
.pcr-app .pcr-interaction .pcr-clear,
.pcr-app .pcr-interaction .pcr-cancel {
background: #f44250;
}
.pcr-app .pcr-interaction .pcr-clear:focus,
.pcr-app .pcr-interaction .pcr-cancel:focus {
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85),
0 0 0 3px rgba(244, 66, 80, 0.75);
}
.pcr-app .pcr-selection .pcr-picker {
position: absolute;
height: 18px;
width: 18px;
border: 2px solid #fff;
border-radius: 100%;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.pcr-app .pcr-selection .pcr-color-palette,
.pcr-app .pcr-selection .pcr-color-chooser,
.pcr-app .pcr-selection .pcr-color-opacity {
position: relative;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
display: flex;
flex-direction: column;
cursor: grab;
cursor: -webkit-grab;
}
.pcr-app .pcr-selection .pcr-color-palette:active,
.pcr-app .pcr-selection .pcr-color-chooser:active,
.pcr-app .pcr-selection .pcr-color-opacity:active {
cursor: grabbing;
cursor: -webkit-grabbing;
}
.pcr-app[data-theme="nano"] {
width: 14.25em;
max-width: 95vw;
}
.pcr-app[data-theme="nano"] .pcr-swatches {
margin-top: 0.6em;
padding: 0 0.6em;
}
.pcr-app[data-theme="nano"] .pcr-interaction {
padding: 0 0.6em 0.6em 0.6em;
}
.pcr-app[data-theme="nano"] .pcr-selection {
display: grid;
grid-gap: 0.6em;
grid-template-columns: 1fr 4fr;
grid-template-rows: 5fr auto auto;
align-items: center;
height: 10.5em;
width: 100%;
align-self: flex-start;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview {
grid-area: 2 / 1 / 4 / 1;
height: 100%;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
margin-left: 0.6em;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-last-color {
display: none;
}
.pcr-app[data-theme="nano"]
.pcr-selection
.pcr-color-preview
.pcr-current-color {
position: relative;
background: var(--pcr-color);
width: 2em;
height: 2em;
border-radius: 50em;
overflow: hidden;
}
.pcr-app[data-theme="nano"]
.pcr-selection
.pcr-color-preview
.pcr-current-color::before {
position: absolute;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');
background-size: 0.5em;
border-radius: 0.15em;
z-index: -1;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette {
grid-area: 1 / 1 / 2 / 3;
width: 100%;
height: 100%;
z-index: 1;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette .pcr-palette {
border-radius: 0.15em;
width: 100%;
height: 100%;
}
.pcr-app[data-theme="nano"]
.pcr-selection
.pcr-color-palette
.pcr-palette::before {
position: absolute;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');
background-size: 0.5em;
border-radius: 0.15em;
z-index: -1;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser {
grid-area: 2 / 2 / 2 / 2;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity {
grid-area: 3 / 2 / 3 / 2;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity {
height: 0.5em;
margin: 0 0.6em;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-picker,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-picker {
top: 50%;
transform: translateY(-50%);
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-slider,
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-slider {
flex-grow: 1;
border-radius: 50em;
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser .pcr-slider {
background: linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red);
}
.pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity .pcr-slider {
background: linear-gradient(to right, transparent, black),
url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');
background-size: 100%, 0.25em;
}
File diff suppressed because one or more lines are too long
@@ -1,10 +0,0 @@
{
"id": "obsidian-advanced-codeblock",
"name": "Advanced Codeblock",
"version": "1.1.5",
"minAppVersion": "0.12.0",
"description": "Give additioinal features to code blocks.",
"author": "Lijyze",
"authorUrl": "https://github.com/lijyze",
"isDesktopOnly": false
}
-153
View File
@@ -1,153 +0,0 @@
/* common */
pre[class*="language-"] {
padding-top: 1em !important;
}
pre[class*="language-"] > code {
padding: 0 !important;
margin: 0 !important;
}
/* line-number */
code[class*="language-"] {
overflow: visible;
}
pre[class*="language-"].line-numbers {
position: relative;
padding-left: 3.8em;
counter-reset: linenumber;
white-space: pre-wrap;
}
pre[class*="language-"].line-numbers > code {
position: relative;
white-space: inherit;
}
.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: 0;
font-size: 100%;
left: -3.8em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
border-right: 1px solid #999;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line-numbers-rows > span {
display: block;
counter-increment: linenumber;
}
.line-numbers-rows > span:before {
content: counter(linenumber);
color: #999;
display: block;
padding-right: 0.8em;
text-align: right;
white-space: nowrap;
}
span.live-preview-codeblock-line-nums {
display: inline-block;
width: 3em;
margin-right: 1.8em;
color: #999;
border-right: 1px solid #999;
padding-right: 0.8em;
text-align: right;
white-space: nowrap;
user-select: none;
}
/* line-highlight */
pre[data-line] {
position: relative;
padding: 1em 0 1em 3em;
}
.line-highlight {
position: absolute;
left: 0;
right: 0;
padding: inherit 0;
margin-top: 1em; /* Same as .prisms padding-top */
background: hsla(24, 20%, 50%, 0.08);
background: linear-gradient(
to right,
hsla(24, 20%, 50%, 0.1) 70%,
hsla(24, 20%, 50%, 0)
);
pointer-events: none;
line-height: inherit;
white-space: pre;
}
@media print {
.line-highlight {
/*
* This will prevent browsers from replacing the background color with white.
* It's necessary because the element is layered on top of the displayed code.
*/
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
}
.line-highlight:before,
.line-highlight[data-end]:after {
content: attr(data-start);
position: absolute;
top: 0.4em;
left: 0.6em;
min-width: 1em;
padding: 0 0.5em;
background-color: hsla(24, 20%, 50%, 0.4);
color: hsl(24, 20%, 95%);
font: bold 65%/1.5 sans-serif;
text-align: center;
vertical-align: 0.3em;
border-radius: 999px;
text-shadow: none;
box-shadow: 0 1px white;
}
.line-highlight[data-end]:after {
content: attr(data-end);
top: auto;
bottom: 0.4em;
}
.line-numbers .line-highlight:before,
.line-numbers .line-highlight:after {
content: none;
}
pre[id].linkable-line-numbers span.line-numbers-rows {
pointer-events: all;
}
pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
cursor: pointer;
}
pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
background-color: rgba(128, 128, 128, 0.2);
}
.HyperMD-codeblock-bg.live-preview-codeblock-highlight {
background: hsla(24, 20%, 50%, 0.08);
background: linear-gradient(
to right,
hsla(24, 20%, 50%, 0.1) 70%,
hsla(24, 20%, 50%, 0)
);
}
+3 -1
View File
@@ -75,6 +75,7 @@
"focusOnFileTab": true, "focusOnFileTab": true,
"openInMainWorkspace": true, "openInMainWorkspace": true,
"showLinkBrackets": true, "showLinkBrackets": true,
"syncElementLinkWithText": false,
"allowCtrlClick": true, "allowCtrlClick": true,
"forceWrap": false, "forceWrap": false,
"pageTransclusionCharLimit": 200, "pageTransclusionCharLimit": 200,
@@ -122,7 +123,7 @@
"mdBorderColor": "Black", "mdBorderColor": "Black",
"mdCSS": "", "mdCSS": "",
"scriptEngineSettings": {}, "scriptEngineSettings": {},
"previousRelease": "2.18.3", "previousRelease": "2.19.2",
"showReleaseNotes": true, "showReleaseNotes": true,
"compareManifestToPluginVersion": true, "compareManifestToPluginVersion": true,
"showNewVersionNotification": true, "showNewVersionNotification": true,
@@ -131,6 +132,7 @@
"taskboneEnabled": false, "taskboneEnabled": false,
"taskboneAPIkey": "", "taskboneAPIkey": "",
"pinnedScripts": [], "pinnedScripts": [],
"sidepanelTabs": [],
"customPens": [ "customPens": [
{ {
"type": "default", "type": "default",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-excalidraw-plugin", "id": "obsidian-excalidraw-plugin",
"name": "Excalidraw", "name": "Excalidraw",
"version": "2.18.3", "version": "2.19.2",
"minAppVersion": "1.5.7", "minAppVersion": "1.5.7",
"description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.", "description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
"author": "Zsolt Viczian", "author": "Zsolt Viczian",
File diff suppressed because one or more lines are too long
+178 -162
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,5 +6,5 @@
"description": "Integrate Git version control with automatic backup and other advanced features.", "description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false, "isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent", "fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.36.0" "version": "2.36.1"
} }
+514 -438
View File
@@ -8,6 +8,15 @@
} }
} }
.git-signs-gutter {
.cm-gutterElement {
/* Needed to align the sign properly for different line heigts. Such as
* when having a heading or list item.
*/
padding-top: 0 !important;
}
}
.workspace-leaf-content[data-type="git-view"] .button-border { .workspace-leaf-content[data-type="git-view"] .button-border {
border: 2px solid var(--interactive-accent); border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s); border-radius: var(--radius-s);
@@ -129,444 +138,401 @@
color: var(--text-accent); color: var(--text-accent);
} }
.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { /* ====== diff2html ======
display: none; The following styles are adapted from the obsidian-version-history plugin by
} @kometenstaub https://github.com/kometenstaub/obsidian-version-history-diff/blob/main/src/styles.scss
which itself is adapted from the diff2html library with the following original license:
.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper {
text-align: left; https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
}
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
.workspace-leaf-content[data-type="diff-view"] .d2h-file-header {
background-color: var(--background-primary); Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
border-bottom: 1px solid var(--interactive-accent); documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
font-family: var(--font-monospace); rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
height: 35px; persons to whom the Software is furnished to do so, subject to the following conditions:
padding: 5px 10px;
} The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
.workspace-leaf-content[data-type="diff-view"] .d2h-file-header,
.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
display: -webkit-box; WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
display: -ms-flexbox; COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
display: flex; OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
} */
.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { .theme-dark,
font-size: 14px; .theme-light {
margin-left: auto; --git-delete-bg: #ff475040;
} --git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { --git-insert-hl: #23c02350;
border: 1px solid #b4e2b4; --git-change-bg: #ffd55840;
border-radius: 5px 0 0 5px; --git-selected: #3572b0;
color: #399839;
padding: 2px; --git-delete: #c33;
text-align: right; --git-insert: #399839;
vertical-align: middle; --git-change: #d0b44c;
} --git-move: #3572b0;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted {
border: 1px solid #e9aeae; .git-diff {
border-radius: 0 5px 5px 0; .d2h-d-none {
color: #c33; display: none;
margin-left: 1px; }
padding: 2px; .d2h-wrapper {
text-align: left; text-align: left;
vertical-align: middle; border-radius: 0.25em;
} overflow: auto;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { .d2h-file-header.d2h-file-header {
-webkit-box-align: center; background-color: var(--background-secondary);
-ms-flex-align: center; border-bottom: 1px solid var(--background-modifier-border);
align-items: center; font-family:
display: -webkit-box; Source Sans Pro,
display: -ms-flexbox; Helvetica Neue,
display: flex; Helvetica,
font-size: 15px; Arial,
width: 100%; sans-serif;
} height: 35px;
padding: 5px 10px;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { }
overflow-x: hidden; .d2h-file-header,
text-overflow: ellipsis; .d2h-file-stats {
white-space: nowrap; display: -webkit-box;
} display: -ms-flexbox;
display: flex;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { }
border: 1px solid var(--background-modifier-border); .d2h-file-header {
border-radius: 3px; display: none;
margin-bottom: 1em; }
} .d2h-file-stats {
font-size: 14px;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { margin-left: auto;
-webkit-box-pack: end; }
-ms-flex-pack: end; .d2h-lines-added {
-webkit-box-align: center; border: 1px solid var(--color-green);
-ms-flex-align: center; border-radius: 5px 0 0 5px;
align-items: center; color: var(--color-green);
border: 1px solid var(--background-modifier-border); padding: 2px;
border-radius: 3px; text-align: right;
cursor: pointer; vertical-align: middle;
display: none; }
font-size: 12px; .d2h-lines-deleted {
justify-content: flex-end; border: 1px solid var(--color-red);
padding: 4px 8px; border-radius: 0 5px 5px 0;
} color: var(--color-red);
margin-left: 1px;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { padding: 2px;
background-color: #c8e1ff; text-align: left;
} vertical-align: middle;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { .d2h-file-name-wrapper {
margin: 0 4px 0 0; -webkit-box-align: center;
} -ms-flex-align: center;
align-items: center;
.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { display: -webkit-box;
border-collapse: collapse; display: -ms-flexbox;
font-family: Menlo, Consolas, monospace; display: flex;
font-size: 13px; font-size: 15px;
width: 100%; width: 100%;
} }
.d2h-file-name {
.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { overflow: hidden;
width: 100%; text-overflow: ellipsis;
} white-space: nowrap;
color: var(--text-normal);
.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { font-size: var(--h5-size);
overflow-y: hidden; }
} .d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { border-radius: 3px;
display: inline-block; margin-bottom: 1em;
margin-bottom: -8px; max-height: 100%;
margin-right: -4px; }
overflow-x: scroll; .d2h-file-collapse {
overflow-y: hidden; -webkit-box-pack: end;
width: 50%; -ms-flex-pack: end;
} -webkit-box-align: center;
-ms-flex-align: center;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { align-items: center;
padding: 0 8em; border: 1px solid var(--background-secondary-alt);
} border-radius: 3px;
cursor: pointer;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, display: none;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { font-size: 12px;
display: inline-block; justify-content: flex-end;
-webkit-user-select: none; padding: 4px 8px;
-moz-user-select: none; }
-ms-user-select: none; .d2h-file-collapse.d2h-selected {
user-select: none; background-color: var(--git-selected);
white-space: nowrap; }
width: 100%; .d2h-file-collapse-input {
} margin: 0 4px 0 0;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { .d2h-diff-table {
padding: 0 4.5em; border-collapse: collapse;
} font-family: var(--font-monospace);
font-size: var(--code-size);
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { width: 100%;
word-wrap: normal; }
background: none; .d2h-files-diff {
display: inline-block; width: 100%;
padding: 0; }
-webkit-user-select: text; .d2h-file-diff {
-moz-user-select: text; /*
-ms-user-select: text; overflow-y: scroll;
user-select: text; */
vertical-align: middle; border-radius: 5px;
white-space: pre; font-size: var(--font-text-size);
width: 100%; line-height: var(--line-height-normal);
} }
.d2h-file-side-diff {
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, display: inline-block;
.theme-light margin-bottom: -8px;
.workspace-leaf-content[data-type="diff-view"] margin-right: -4px;
.d2h-code-side-line overflow-x: scroll;
del { overflow-y: hidden;
background-color: #ffb6ba; width: 50%;
} }
.d2h-code-line {
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, padding-left: 6em;
.theme-dark padding-right: 1.5em;
.workspace-leaf-content[data-type="diff-view"] }
.d2h-code-side-line .d2h-code-line,
del { .d2h-code-side-line {
background-color: #8d232881; display: inline-block;
} -webkit-user-select: none;
-moz-user-select: none;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, -ms-user-select: none;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, user-select: none;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, white-space: nowrap;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { width: 100%;
border-radius: 0.2em; }
display: inline-block; .d2h-code-side-line {
margin-top: -1px; /* needed to be changed */
text-decoration: none; padding-left: 0.5em;
vertical-align: middle; padding-right: 0.5em;
} }
.d2h-code-line-ctn {
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, word-wrap: normal;
.theme-light background: none;
.workspace-leaf-content[data-type="diff-view"] display: inline-block;
.d2h-code-side-line padding: 0;
ins { -webkit-user-select: text;
background-color: #97f295; -moz-user-select: text;
text-align: left; -ms-user-select: text;
} user-select: text;
vertical-align: middle;
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, width: 100%;
.theme-dark /* only works for line-by-line */
.workspace-leaf-content[data-type="diff-view"] white-space: pre-wrap;
.d2h-code-side-line }
ins { .d2h-code-line del,
background-color: #1d921996; .d2h-code-side-line del {
text-align: left; background-color: var(--git-delete-hl);
} color: var(--text-normal);
}
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { .d2h-code-line del,
word-wrap: normal; .d2h-code-line ins,
background: none; .d2h-code-side-line del,
display: inline; .d2h-code-side-line ins {
padding: 0; border-radius: 0.2em;
white-space: pre; display: inline-block;
} margin-top: -1px;
text-decoration: none;
.workspace-leaf-content[data-type="diff-view"] .line-num1 { vertical-align: middle;
float: left; }
} .d2h-code-line ins,
.d2h-code-side-line ins {
.workspace-leaf-content[data-type="diff-view"] .line-num1, background-color: var(--git-insert-hl);
.workspace-leaf-content[data-type="diff-view"] .line-num2 { text-align: left;
-webkit-box-sizing: border-box; }
box-sizing: border-box; .d2h-code-line-prefix {
overflow: hidden; word-wrap: normal;
padding: 0 0.5em; background: none;
text-overflow: ellipsis; display: inline;
width: 3.5em; padding: 0;
} white-space: pre;
}
.workspace-leaf-content[data-type="diff-view"] .line-num2 { .line-num1 {
float: right; float: left;
} }
.line-num1,
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { .line-num2 {
background-color: var(--background-primary); -webkit-box-sizing: border-box;
border: solid var(--background-modifier-border); box-sizing: border-box;
border-width: 0 1px; overflow: hidden;
-webkit-box-sizing: border-box; /*
box-sizing: border-box; padding: 0 0.5em;
color: var(--text-muted); */
cursor: pointer; text-overflow: ellipsis;
display: inline-block; width: 2.5em;
position: absolute; padding-left: 0;
text-align: right; }
width: 7.5em; .line-num2 {
} float: right;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { .d2h-code-linenumber {
content: "\200b"; background-color: var(--background-primary);
} border: solid var(--background-modifier-border);
border-width: 0 1px;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { -webkit-box-sizing: border-box;
background-color: var(--background-primary); box-sizing: border-box;
border: solid var(--background-modifier-border); color: var(--text-faint);
border-width: 0 1px; cursor: pointer;
-webkit-box-sizing: border-box; display: inline-block;
box-sizing: border-box; position: absolute;
color: var(--text-muted); text-align: right;
cursor: pointer; width: 5.5em;
display: inline-block; }
overflow: hidden; .d2h-code-linenumber:after {
padding: 0 0.5em; content: "\200b";
position: absolute; }
text-align: right; .d2h-code-side-linenumber {
text-overflow: ellipsis; background-color: var(--background-primary);
width: 4em; border: solid var(--background-modifier-border);
} border-width: 0 1px;
-webkit-box-sizing: border-box;
.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr { box-sizing: border-box;
position: relative; color: var(--text-faint);
} cursor: pointer;
overflow: hidden;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { padding: 0 0.5em;
content: "\200b"; text-align: right;
} text-overflow: ellipsis;
width: 4em;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, /* needed to be changed */
.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { display: table-cell;
background-color: var(--background-primary); position: relative;
border-color: var(--background-modifier-border); }
} .d2h-code-side-linenumber:after {
content: "\200b";
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, }
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, .d2h-code-side-emptyplaceholder,
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, .d2h-emptyplaceholder {
.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { background-color: var(--background-primary);
-webkit-user-select: none; border-color: var(--background-modifier-border);
-moz-user-select: none; }
-ms-user-select: none; .d2h-code-line-prefix,
user-select: none; .d2h-code-linenumber,
} .d2h-code-side-linenumber,
.d2h-emptyplaceholder {
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, -webkit-user-select: none;
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { -moz-user-select: none;
direction: rtl; -ms-user-select: none;
} user-select: none;
}
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { .d2h-code-linenumber,
background-color: #fee8e9; .d2h-code-side-linenumber {
border-color: #e9aeae; direction: rtl;
} }
.d2h-del {
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { background-color: var(--git-delete-bg);
background-color: #dfd; border-color: var(--git-delete-hl);
border-color: #b4e2b4; }
} .d2h-ins {
background-color: var(--git-insert-bg);
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { border-color: var(--git-insert-hl);
background-color: #521b1d83; }
border-color: #691d1d73; .d2h-info {
} background-color: var(--background-primary);
border-color: var(--background-modifier-border);
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { color: var(--text-faint);
background-color: rgba(30, 71, 30, 0.5); }
border-color: #13501381; .d2h-del,
} .d2h-ins,
.d2h-file-diff .d2h-change {
.workspace-leaf-content[data-type="diff-view"] .d2h-info { color: var(--text-normal);
background-color: var(--background-primary); }
border-color: var(--background-modifier-border); .d2h-file-diff .d2h-del.d2h-change {
color: var(--text-normal); background-color: var(--git-change-bg);
} }
.d2h-file-diff .d2h-ins.d2h-change {
.theme-light background-color: var(--git-insert-bg);
.workspace-leaf-content[data-type="diff-view"] }
.d2h-file-diff .d2h-file-list-wrapper {
.d2h-del.d2h-change { a {
background-color: #fdf2d0; text-decoration: none;
} cursor: default;
-webkit-user-drag: none;
.theme-dark }
.workspace-leaf-content[data-type="diff-view"]
.d2h-file-diff svg {
.d2h-del.d2h-change { display: none;
background-color: #55492480; }
} }
.d2h-file-list-header {
.theme-light text-align: left;
.workspace-leaf-content[data-type="diff-view"] }
.d2h-file-diff .d2h-file-list-title {
.d2h-ins.d2h-change { display: none;
background-color: #ded; }
} .d2h-file-list-line {
display: -webkit-box;
.theme-dark display: -ms-flexbox;
.workspace-leaf-content[data-type="diff-view"] display: flex;
.d2h-file-diff text-align: left;
.d2h-ins.d2h-change { }
background-color: rgba(37, 78, 37, 0.418); .d2h-file-list {
} }
.d2h-file-list > li {
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { border-bottom: 1px solid var(--background-modifier-border);
margin-bottom: 10px; margin: 0;
} padding: 5px 10px;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { .d2h-file-list > li:last-child {
color: #3572b0; border-bottom: none;
text-decoration: none; }
} .d2h-file-switch {
cursor: pointer;
.workspace-leaf-content[data-type="diff-view"] display: none;
.d2h-file-list-wrapper font-size: 10px;
a:visited { }
color: #3572b0; .d2h-icon {
} fill: currentColor;
margin-right: 10px;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { vertical-align: middle;
text-align: left; }
} .d2h-deleted {
color: var(--git-delete);
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { }
font-weight: 700; .d2h-added {
} color: var(--git-insert);
}
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { .d2h-changed {
display: -webkit-box; color: var(--git-change);
display: -ms-flexbox; }
display: flex; .d2h-moved {
text-align: left; color: var(--git-move);
} }
.d2h-tag {
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { background-color: var(--background-secondary);
display: block; display: -webkit-box;
list-style: none; display: -ms-flexbox;
margin: 0; display: flex;
padding: 0; font-size: 10px;
} margin-left: 5px;
padding: 0 2px;
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li { }
border-bottom: 1px solid var(--background-modifier-border); .d2h-deleted-tag {
margin: 0; border: 1px solid var(--git-delete);
padding: 5px 10px; }
} .d2h-added-tag {
border: 1px solid var(--git-insert);
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li:last-child { }
border-bottom: none; .d2h-changed-tag {
} border: 1px solid var(--git-change);
}
.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { .d2h-moved-tag {
cursor: pointer; border: 1px solid var(--git-move);
display: none; }
font-size: 10px;
} /* needed for line-by-line*/
.workspace-leaf-content[data-type="diff-view"] .d2h-icon { .d2h-diff-tbody {
fill: currentColor; position: relative;
margin-right: 10px; }
vertical-align: middle;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-deleted {
color: #c33;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-added {
color: #399839;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-changed {
color: #d0b44c;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-moved {
color: #3572b0;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-tag {
background-color: var(--background-primary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag {
border: 2px solid #c33;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag {
border: 1px solid #399839;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag {
border: 1px solid #d0b44c;
}
.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag {
border: 1px solid #3572b0;
} }
/* ====================== Line Authoring Information ====================== */ /* ====================== Line Authoring Information ====================== */
@@ -627,3 +593,113 @@
background: var(--interactive-hover); background: var(--interactive-hover);
color: var(--text-accent-hover); color: var(--text-accent-hover);
} }
.git-signs-gutter {
.cm-gutterElement {
display: grid;
}
}
.git-gutter-marker:hover {
border-radius: 2px;
}
.git-gutter-marker.git-add {
background-color: var(--color-green);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-change {
background-color: var(--color-yellow);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-changedelete {
color: var(--color-yellow);
font-weight: var(--font-bold);
font-size: 1rem;
justify-self: center;
height: inherit;
}
.git-gutter-marker.git-delete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: end;
}
.git-gutter-marker.git-topdelete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: start;
}
div:hover > .git-gutter-marker.git-change {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-add {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-delete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-topdelete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-changedelete {
font-weight: var(--font-bold);
}
.git-gutter-marker.staged {
opacity: 0.5;
}
.git-diff {
.cm-merge-revert {
width: 4em;
}
/* Ensure that merge revert markers are positioned correctly */
.cm-merge-revert > * {
position: absolute;
background-color: var(--background-secondary);
display: flex;
}
}
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
margin-inline-end: 0;
.git-signs-gutter {
margin-inline-start: -1rem;
}
}
.git-changes-status-bar-colored {
.git-add {
color: var(--color-green);
}
.git-change {
color: var(--color-yellow);
}
.git-delete {
color: var(--color-red);
}
}
.git-changes-status-bar .git-add {
margin-right: 0.3em;
}
.git-changes-status-bar .git-change {
margin-right: 0.3em;
}
+2 -2
View File
@@ -3,7 +3,7 @@
"migrated": 6, "migrated": 6,
"iconPacksPath": ".obsidian/icons", "iconPacksPath": ".obsidian/icons",
"fontSize": 16, "fontSize": 16,
"emojiStyle": "native", "emojiStyle": "twemoji",
"iconColor": null, "iconColor": null,
"recentlyUsedIcons": [], "recentlyUsedIcons": [],
"recentlyUsedIconsSize": 5, "recentlyUsedIconsSize": 5,
@@ -20,7 +20,7 @@
"iconInFrontmatterEnabled": true, "iconInFrontmatterEnabled": true,
"iconInFrontmatterFieldName": "icon", "iconInFrontmatterFieldName": "icon",
"iconColorInFrontmatterFieldName": "iconColor", "iconColorInFrontmatterFieldName": "iconColor",
"iconsBackgroundCheckEnabled": false, "iconsBackgroundCheckEnabled": true,
"iconsInNotesEnabled": true, "iconsInNotesEnabled": true,
"iconsInLinksEnabled": true, "iconsInLinksEnabled": true,
"iconIdentifier": ":", "iconIdentifier": ":",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-local-rest-api", "id": "obsidian-local-rest-api",
"name": "Local REST API", "name": "Local REST API",
"version": "3.2.0", "version": "3.4.2",
"minAppVersion": "0.12.0", "minAppVersion": "0.12.0",
"description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.", "description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.",
"author": "Adam Coddington", "author": "Adam Coddington",
+27 -27
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "omnisearch", "id": "omnisearch",
"name": "Omnisearch", "name": "Omnisearch",
"version": "1.27.3", "version": "1.28.0",
"minAppVersion": "1.7.2", "minAppVersion": "1.7.2",
"description": "A search engine that just works", "description": "A search engine that just works",
"author": "Simon Cambier", "author": "Simon Cambier",
+5
View File
@@ -0,0 +1,5 @@
Copyright (C) 2020-2025 by Dynalist Inc.
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "opencode-obsidian",
"name": "OpenCode Obsidian",
"version": "0.13.1",
"minAppVersion": "1.0.0",
"description": "OpenCode integration for Obsidian - AI-powered chat interface",
"author": "OpenCode Obsidian Team",
"authorUrl": "",
"fundingUrl": "",
"isDesktopOnly": false
}
+475
View File
@@ -0,0 +1,475 @@
/* Search highlight */
.search-highlight {
background-color: var(--text-highlight-bg);
color: var(--text-highlight);
padding: 0 2px;
border-radius: 2px;
}
/* Server Status Styles */
.opencode-server-status {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px 0;
}
.opencode-server-status-running {
color: var(--color-green);
}
.opencode-server-status-stopped {
color: var(--text-muted);
}
.opencode-server-status-starting {
color: var(--color-blue);
}
.opencode-server-status-error {
color: var(--color-red);
}
.opencode-server-status-error-message {
color: var(--text-muted);
font-size: 12px;
}
.opencode-server-control-buttons {
display: flex;
gap: 8px;
margin-top: 4px;
}
.opencode-server-metrics {
padding: 8px 0;
}
.opencode-server-metrics-text {
font-size: 12px;
color: var(--text-muted);
}
/* Server Start Modal Styles */
.opencode-server-start-buttons {
display: flex;
gap: 8px;
justify-content: flex-end;
margin-top: 16px;
}
/* Core view layout */
.opencode-obsidian-view {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
}
.opencode-obsidian-header {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 10px;
border-bottom: 1px solid var(--background-modifier-border);
background-color: var(--background-secondary);
}
.opencode-obsidian-status {
font-size: 12px;
color: var(--text-muted);
white-space: nowrap;
}
.opencode-obsidian-status.connected {
color: var(--text-success);
}
.opencode-obsidian-status.reconnecting,
.opencode-obsidian-status.connecting {
color: var(--text-warning);
}
.opencode-obsidian-status.disconnected {
color: var(--text-error);
}
.opencode-obsidian-controls {
margin-left: auto;
display: flex;
gap: 6px;
}
.opencode-obsidian-view-toggle {
align-self: flex-start;
margin: 8px 10px 0;
}
.opencode-obsidian-search-panel {
padding: 6px 10px;
border-bottom: 1px solid var(--background-modifier-border);
}
/* Conversation selector */
.opencode-obsidian-conversation-selector {
padding: 6px 10px;
border-bottom: 1px solid var(--background-modifier-border);
}
.opencode-obsidian-tabs-container {
display: flex;
gap: 6px;
overflow-x: auto;
padding-bottom: 4px;
}
.opencode-obsidian-tab {
display: flex;
align-items: center;
gap: 6px;
padding: 4px 8px;
border-radius: 6px;
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
cursor: pointer;
white-space: nowrap;
}
.opencode-obsidian-tab.active {
background-color: var(--interactive-accent);
border-color: var(--interactive-accent);
color: var(--text-on-accent);
}
.opencode-obsidian-tab-content {
display: flex;
flex-direction: column;
gap: 2px;
}
.opencode-obsidian-tab-metadata {
font-size: 11px;
color: var(--text-muted);
}
.opencode-obsidian-tab-close {
margin-left: 6px;
opacity: 0.6;
}
.opencode-obsidian-tab:hover .opencode-obsidian-tab-close {
opacity: 1;
}
.opencode-obsidian-tab-new,
.opencode-obsidian-tab-sync {
font-weight: 600;
}
.opencode-obsidian-tab-disabled {
opacity: 0.6;
pointer-events: none;
}
.opencode-obsidian-no-conversations {
color: var(--text-muted);
padding: 8px 0;
}
/* Message list */
.opencode-obsidian-messages {
flex: 1;
overflow: auto;
padding: 10px;
display: flex;
flex-direction: column;
gap: 10px;
}
.opencode-obsidian-message {
padding: 8px 10px;
border-radius: 8px;
border: 1px solid var(--background-modifier-border);
background-color: var(--background-secondary);
}
.opencode-obsidian-message-user {
align-self: flex-end;
background-color: var(--background-modifier-hover);
}
.opencode-obsidian-message-header {
display: flex;
justify-content: space-between;
font-size: 11px;
color: var(--text-muted);
margin-bottom: 4px;
}
.opencode-obsidian-message-content {
font-size: 13px;
line-height: 1.4;
}
.opencode-obsidian-message-images img {
border-radius: 6px;
margin-top: 6px;
}
.opencode-obsidian-message-actions {
display: flex;
gap: 6px;
margin-top: 6px;
}
.opencode-obsidian-message-action {
font-size: 11px;
color: var(--text-muted);
cursor: pointer;
}
.opencode-obsidian-message-action:hover {
color: var(--text-normal);
}
.opencode-obsidian-empty-messages {
color: var(--text-muted);
text-align: center;
padding: 20px 0;
}
.opencode-obsidian-reverted-indicator {
padding: 8px 10px;
border-radius: 6px;
background-color: var(--background-secondary);
border: 1px dashed var(--background-modifier-border);
font-size: 12px;
color: var(--text-muted);
}
.opencode-obsidian-unrevert-button {
margin-left: 8px;
}
/* Input area */
.opencode-obsidian-input {
border-top: 1px solid var(--background-modifier-border);
padding: 8px 10px;
background-color: var(--background-secondary);
}
.opencode-obsidian-input-container {
display: flex;
flex-direction: column;
gap: 6px;
}
.opencode-obsidian-input-toolbar {
display: flex;
align-items: center;
gap: 8px;
}
.opencode-obsidian-agent-select {
max-width: 200px;
}
.opencode-obsidian-input-textarea {
width: 100%;
min-height: 60px;
resize: none;
}
.opencode-obsidian-input-status {
display: flex;
justify-content: space-between;
font-size: 11px;
color: var(--text-muted);
}
.opencode-obsidian-streaming {
color: var(--text-accent);
}
.opencode-obsidian-input-buttons {
display: flex;
justify-content: flex-end;
gap: 6px;
}
/* Command suggestions */
.opencode-obsidian-command-suggestions {
position: relative;
}
.opencode-obsidian-command-suggestions-list {
position: absolute;
left: 0;
right: 0;
bottom: calc(100% + 6px);
max-height: 200px;
overflow: auto;
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
display: none;
z-index: 20;
}
.opencode-obsidian-command-suggestions.is-visible .opencode-obsidian-command-suggestions-list {
display: block;
}
.opencode-obsidian-command-suggestion {
padding: 6px 8px;
cursor: pointer;
}
.opencode-obsidian-command-suggestion.is-selected {
background-color: var(--background-modifier-hover);
}
.opencode-obsidian-command-suggestion-description {
display: block;
font-size: 11px;
color: var(--text-muted);
}
.opencode-obsidian-command-suggestion-empty {
color: var(--text-muted);
}
/* Loading and spinners */
.opencode-obsidian-loading-overlay {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
color: var(--text-muted);
}
.opencode-obsidian-loading-message {
display: flex;
align-items: center;
gap: 8px;
}
.opencode-obsidian-spinner {
width: 14px;
height: 14px;
border: 2px solid var(--background-modifier-border);
border-top-color: var(--interactive-accent);
border-radius: 50%;
animation: opencode-obsidian-spin 0.8s linear infinite;
}
.opencode-obsidian-spinner-large {
width: 18px;
height: 18px;
border-width: 3px;
}
@keyframes opencode-obsidian-spin {
to {
transform: rotate(360deg);
}
}
/* Context menu */
.opencode-obsidian-context-menu {
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
padding: 4px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.opencode-obsidian-context-menu-item {
padding: 6px 8px;
cursor: pointer;
border-radius: 4px;
}
.opencode-obsidian-context-menu-item:hover {
background-color: var(--background-modifier-hover);
}
.opencode-obsidian-context-menu-item-danger {
color: var(--text-error);
}
/* Todo list */
.opencode-obsidian-todo-container {
padding: 10px;
display: flex;
flex-direction: column;
gap: 10px;
}
.opencode-obsidian-todo-header {
font-size: 14px;
font-weight: 600;
}
.opencode-obsidian-todo-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.opencode-obsidian-todo-item {
padding: 8px 10px;
border: 1px solid var(--background-modifier-border);
border-radius: 8px;
background-color: var(--background-secondary);
}
.opencode-obsidian-todo-title {
font-weight: 600;
}
.opencode-obsidian-todo-meta {
font-size: 11px;
color: var(--text-muted);
}
.opencode-obsidian-todo-actions {
display: flex;
gap: 6px;
margin-top: 6px;
}
.opencode-obsidian-todo-empty {
color: var(--text-muted);
padding: 8px 0;
}
/* Modals */
.opencode-obsidian-drop-zone {
border: 1px dashed var(--background-modifier-border);
padding: 12px;
text-align: center;
border-radius: 8px;
}
.opencode-obsidian-drop-zone-hover {
background-color: var(--background-modifier-hover);
}
.opencode-obsidian-permission-buttons {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 12px;
}
.opencode-obsidian-code-preview {
font-family: var(--font-monospace);
font-size: 12px;
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
padding: 8px;
border-radius: 6px;
white-space: pre-wrap;
}
-4
View File
@@ -1,4 +0,0 @@
{
"installed_at": 1767584812062,
"last_version": "4.1.7"
}
File diff suppressed because one or more lines are too long
-10
View File
@@ -1,10 +0,0 @@
{
"id": "smart-connections",
"name": "Smart Connections",
"author": "Brian Petro",
"description": "Chat with your notes & see links to related content with Local or Remote models.",
"minAppVersion": "1.1.0",
"authorUrl": "https://smartconnections.app",
"isDesktopOnly": false,
"version": "4.1.7"
}
-909
View File
@@ -1,909 +0,0 @@
/* deprecated positioning, use bottom bar instead */
.view-content > .sc-brand {
position: fixed;
bottom: 0;
right: 0;
background-color: var(--titlebar-background);
}
.sc-brand {
> svg,
> p {
display: inline;
margin: 0 0.1rem 0 0.3rem;
color: var(--text-muted);
font-size: var(--font-smallest);
line-height: 1;
height: 0.88rem;
width: auto;
}
> p > a {
color: var(--text-muted);
}
}
.sc-list {
padding-bottom: 20px;
.tree-item-self {
cursor: pointer;
small {
color: var(--color-gray-40);
}
}
> .sc-collapsed ul {
display: none;
}
> .sc-collapsed span svg {
transform: rotate(-90deg);
}
> :not(.sc-collapsed) span svg {
transform: rotate(0deg);
}
> div {
span svg {
height: auto;
margin: auto 0.5em auto 0;
flex: none;
}
> span {
display: inline-flex;
width: 100%;
padding-left: 0;
}
ul {
margin: 0;
padding-left: 1.3rem;
}
> a {
display: block;
}
> ul > li {
display: block;
}
}
.sc-result {
> ul {
list-style: none;
padding-left: 0;
}
}
.sc-result.sc-result-plaintext {
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
background-color: var(--search-result-background);
border-radius: var(--radius-s);
overflow: hidden;
margin: var(--size-4-1) 0 var(--size-4-2);
color: var(--text-muted);
box-shadow: 0 0 0 1px var(--background-modifier-border);
& > * li {
cursor: var(--cursor);
position: relative;
padding: var(--size-4-2) var(--size-4-5) var(--size-4-2) var(--size-4-3);
white-space: pre-wrap;
width: 100%;
border-bottom: 1px solid var(--background-modifier-border);
}
}
.sc-result:not(.sc-result-plaintext) {
cursor: pointer;
padding: var(--nav-item-padding);
padding-left: 0;
margin-bottom: 1px;
align-items: baseline;
border-radius: var(--radius-s);
font-weight: var(--nav-item-weight);
&:hover {
color: var(--nav-item-color-active);
background-color: var(--nav-item-background-active);
font-weight: var(--nav-item-weight-active);
}
span {
color: var(--h5-color);
}
small {
color: var(--h5-color);
font-size: 0.8rem;
font-weight: 500;
}
p {
margin-top: 0.3rem;
margin-bottom: 0.3rem;
}
ul > li {
h1 {
font-size: 1.3rem;
}
h2 {
font-size: 1.25rem;
}
h3 {
font-size: 1.2rem;
}
h4 {
font-size: 1.15rem;
}
h5 {
font-size: 1.1rem;
}
h6 {
font-size: 1.05rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-block-start: calc(var(--p-spacing)/2);
margin-block-end: calc(var(--p-spacing)/2);
}
}
}
} /* end .sc-list */
/* Only on right sidebar */
.mod-right-split .sc-list .sc-result {
font-size: var(--font-text-size);
font-size: 0.88rem;
}
.sc-top-bar {
display: flex;
width: 100%;
justify-content: end;
.sc-context {
color: var(--nav-item-color);
font-size: var(--nav-item-size);
margin: 0.5em 0.5em 1em;
width: 100%;
}
}
/* Chat */
.sc-chat-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
height: 100%;
.sc-top-bar-container {
align-self: flex-end;
display: flex;
width: 100%;
.sc-chat-name-input {
flex-grow: 1;
min-width: 20px;
}
}
.sc-thread {
display: flex;
flex-direction: column;
align-items: flex-start;
height: 100%;
width: 100%;
overflow: hidden;
user-select: text;
overflow-y: auto;
.sc-message-container {
border: 1px solid var(--divider-color);
border-radius: 10px;
margin: 0.5rem 0;
display: flex;
flex-direction: column;
align-items: flex-start;
width: 100%;
height: 100%;
overflow-y: auto;
background-color: var(--background-primary-alt);
.sc-message {
max-width: 90ch;
width: 90%;
margin: 10px;
padding: 10px;
border-radius: 1.5rem;
word-break: break-word;
&.user {
align-self: flex-end;
color: var(--text-normal);
background-color: var(--background-primary);
}
&.assistant,
&.system {
background-color: var(--background-primary-alt);
color: var(--text-normal);
}
.sc-message-content {
margin: 0;
padding: 1rem;
> * p {
margin: 0;
}
}
}
}
.sc-chat-form {
display: flex;
padding: 0 10px 1rem 0;
width: 100%;
max-height: 50%;
.sc-chat-input {
flex-grow: 1;
padding: 0.88rem;
border: none;
border-radius: 1.5rem;
resize: none;
height: auto;
min-height: 4.2lh;
max-height: 100%;
background-color: var(--background-primary);
color: var(--text-normal);
margin-right: -2.7rem;
padding-right: 3rem;
}
.sc-btn-container {
width: 2rem;
height: 2rem;
margin: auto;
> button.send-button {
border-radius: 99999px;
cursor: pointer;
outline: 2px solid transparent;
padding: 0;
outline-offset: 2px;
background: none !important;
&:focus-visible {
outline-color: var(--text-faint);
box-shadow: none;
}
> svg {
> circle {
fill: var(--text-faint);
}
> path {
fill: var(--background-primary);
}
}
}
}
}
}
#settings {
display: flex;
flex-direction: column;
max-width: 100%;
width: 100%;
}
}
.sc-system {
align-self: center;
font-style: italic;
color: var(--text-faint);
}
.sc-msg-button {
cursor: pointer;
float: right;
margin-left: 5px;
opacity: 0.8;
&.cycle-branch {
float: left;
display: flex;
}
&:hover {
opacity: 1;
}
}
#sc-abort-button {
cursor: pointer;
padding: 10px;
border-radius: 5px;
&:hover {
background-color: var(--background-primary);
}
}
.markdown-source-view.mod-cm6 .cm-embed-block:not(.cm-table-widget):hover:has(.sc-change) {
overflow: unset;
box-shadow: unset;
cursor: unset;
}
.notice .sc-notice-actions {
display: flex;
justify-content: space-between;
flex-direction: row-reverse;
}
.sc-chat-container {
#settings {
display: flex;
flex-direction: column;
max-width: 100%;
width: 100%;
}
.sc-config-error-notice {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
background-color: #ffcccc;
border: 1px solid #ff0000;
border-radius: 5px;
margin: 10px 0;
font-size: 14px;
font-weight: bold;
color: #ff0000;
width: 100%;
span {
flex-grow: 1;
}
button {
margin-left: 10px;
}
}
}
.sc-bottom-bar {
position: absolute;
bottom: 0;
right: 0;
left: 0;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
background-color: var(--titlebar-background);
padding: 0 0.5rem;
.sc-brand {
flex-shrink: 0;
}
.sc-context {
flex-grow: 1;
font-size: var(--font-smallest);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.setting-component[data-setting*="/"][data-setting*="api_key"] {
display: none;
}
.setting-component[data-setting*="gpu"]:not([data-setting*="/"]) {
display: none;
}
/* SINCE COMPONENT PATTERN SETTINGS */
.setting-component[data-setting="smart_change.active"] {
display: none;
}
.group-header {
display: flex;
text-wrap: nowrap;
flex-wrap: wrap;
align-items: baseline;
> h2 {
width: 100%;
margin-bottom: 0;
}
> * {
flex-grow: 1;
margin-bottom: 10px;
}
}
/* SMART CHAT v2 */
.sc-context-list {
list-style: none;
margin: 0;
padding: 0 1rem 1rem;
display: none;
flex-direction: column;
gap: 0.5rem;
}
.sc-context-header[aria-expanded="true"] + .sc-context-list {
display: flex;
}
.sc-context-header[aria-expanded="false"] + .sc-context-list {
display: none;
}
.sc-context-toggle-icon {
margin-left: 0.5rem;
transition: transform 0.3s ease;
}
.sc-context-header[aria-expanded="true"] .sc-context-toggle-icon {
transform: rotate(180deg);
}
.sc-context-container {
border: 1px solid var(--divider-color);
border-radius: 10px;
margin: 0.5rem 0;
background-color: var(--background-primary-alt);
overflow: auto;
max-width: 95%;
margin: 10px;
flex-shrink: 0;
.sc-context-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.88rem 1rem;
background-color: var(--background-primary);
color: var(--text-muted);
font-weight: var(--font-medium);
cursor: pointer;
user-select: none;
&:hover {
background-color: var(--background-primary-hover);
}
&:focus {
outline: 2px solid var(--text-muted);
outline-offset: 2px;
}
}
}
.sc-context-item {
padding: 0.5rem;
border-radius: var(--radius-s);
background-color: var(--background-secondary);
color: var(--text-normal);
display: flex;
justify-content: space-between;
align-items: baseline;
font-size: var(--font-smallest);
flex-wrap: wrap;
&:hover {
background-color: var(--background-secondary-hover);
}
}
.sc-context-item-path {
font-weight: var(--font-medium);
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: 70%;
}
.sc-context-item-score {
font-size: var(--font-small);
color: var(--color-gray-40);
}
/* Tool Calls Component Styles */
.sc-tool-calls-container {
border: 1px solid var(--divider-color);
border-radius: 10px;
margin: 0.5rem 0;
background-color: var(--background-primary-alt);
overflow: auto;
max-width: 95%;
margin: 10px;
flex-shrink: 0;
}
.sc-tool-call {
margin-bottom: 0.5rem;
&:last-child {
margin-bottom: 0;
}
}
.sc-tool-call-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.88rem 1rem;
background-color: var(--background-primary);
color: var(--text-muted);
font-weight: var(--font-medium);
cursor: pointer;
user-select: none;
&:hover {
background-color: var(--background-primary-hover);
}
&:focus {
outline: 2px solid var(--text-muted);
outline-offset: 2px;
}
&[aria-expanded="true"] .sc-tool-call-toggle-icon {
transform: rotate(180deg);
}
}
.sc-tool-call-content {
padding: 0.5rem 1rem;
background-color: var(--background-secondary);
font-size: var(--font-smallest);
pre {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
}
code {
font-family: var(--font-monospace);
}
}
/* Hide content when collapsed */
.sc-tool-call-header[aria-expanded="false"] + .sc-tool-call-content {
display: none;
}
/* Show content when expanded */
.sc-tool-call-header[aria-expanded="true"] + .sc-tool-call-content {
display: block;
}
/* System Message Styles */
.sc-system-message-container {
margin: 1rem 0;
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
background: var(--background-secondary);
flex-shrink: 0;
}
.sc-system-message-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.75rem 1rem;
cursor: pointer;
font-weight: 500;
border-bottom: 1px solid transparent;
transition: background-color 0.2s ease;
&:hover {
background: var(--background-modifier-hover);
}
span {
display: flex;
align-items: center;
gap: 0.5rem;
}
.sc-system-message-toggle-icon {
transition: transform 0.2s ease;
}
&[aria-expanded="true"] {
border-bottom-color: var(--background-modifier-border);
}
}
.sc-system-message-content {
padding: 1rem;
position: relative;
background: var(--background-primary);
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
.sc-system-message-text {
font-family: var(--font-monospace);
white-space: pre-wrap;
word-break: break-word;
margin-right: 2rem;
}
.sc-system-message-copy {
position: absolute;
top: 1rem;
right: 1rem;
padding: 0.4rem;
background: transparent;
border: none;
cursor: pointer;
opacity: 0.6;
transition: opacity 0.2s ease;
&:hover {
opacity: 1;
}
&.sc-copied {
color: var(--text-accent);
}
}
}
.sc-chat-container {
.smart-chat-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: var(--background-primary-alt);
z-index: 100;
overflow: auto;
.smart-chat-overlay-header {
display: flex;
justify-content: flex-end;
}
.setting-item {
flex-direction: column;
align-items: flex-start;
}
}
}
.sc-typing-indicator {
display: flex;
align-items: center;
padding: 12px 16px;
display: none;
&.visible {
display: flex;
}
.sc-typing-dots {
display: flex;
gap: 4px;
.sc-typing-dot {
width: 8px;
height: 8px;
background: var(--text-muted);
border-radius: 50%;
animation: typing-bounce 1.4s infinite ease-in-out;
&:nth-child(1) {
animation-delay: 0s;
}
&:nth-child(2) {
animation-delay: 0.2s;
}
&:nth-child(3) {
animation-delay: 0.4s;
}
}
}
}
/* keyframes must be at root level */
@keyframes typing-bounce {
0%,
80%,
100% {
transform: scale(0.6);
}
40% {
transform: scale(1);
}
}
/* Lookup */
#sc-lookup-view {
.sc-container {
.sc-textarea-container {
display: flex;
padding: 0 10px 1rem 0;
width: 100%;
max-height: 50%;
> textarea {
flex-grow: 1;
padding: 0.88rem;
border: none;
border-radius: 1.5rem;
resize: none;
height: auto;
min-height: 4.2lh;
max-height: 100%;
background-color: var(--background-primary);
color: var(--text-normal);
margin-right: -2.7rem;
padding-right: 3rem;
}
.sc-textarea-btn-container {
width: 2rem;
height: 2rem;
margin: auto;
> button.send-button {
border-radius: 99999px;
cursor: pointer;
outline: 2px solid transparent;
padding: 0;
outline-offset: 2px;
background: none !important;
&:focus-visible {
outline-color: var(--text-faint);
box-shadow: none;
}
> svg {
> circle {
fill: var(--text-faint);
}
> path {
fill: var(--background-primary);
}
}
}
}
}
}
}
/* Side Panes */
div.workspace-leaf-content[data-type^="smart-"] {
> .view-content {
display: flex;
flex-direction: column;
}
}
.sc-inline-confirm-row {
margin-top: 10px;
padding: 6px;
border: 1px solid var(--interactive-normal);
}
.sc-inline-confirm-row-buttons {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 10px;
& .sc-inline-confirm-yes {
font-weight: bold;
}
& .sc-inline-confirm-cancel {
font-weight: normal;
}
}
.sc-story-modal {
width: 80% !important;
height: 80% !important;
}
.sc-story-container {
display: flex;
flex-direction: column;
height: 100%;
}
.sc-other-plugins {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 20px;
button {
padding: 10px;
border-radius: var(--radius-s);
background-color: var(--background-primary);
color: var(--text-normal);
border: none;
cursor: pointer;
font-size: var(--font-small);
&:hover {
background-color: var(--background-primary-hover);
}
}
}
/* Connections results */
a.sc-result-file-title {
text-decoration: none !important;
}
a.sc-result-file-title > .sc-score {
display: inline-block;
width: 4.5ch;
height: 1.7em;
line-height: 1.7em;
text-align: center;
font-weight: 600 !important;
font-size: .8em !important;
color: var(--nav-item-color) !important;
background: var(--background-modifier-hover);
border-radius: 6px;
}
a.sc-result-file-title > .sc-path {
margin-right: -3px;
}
a.sc-result-file-title > .sc-path,
a.sc-result-file-title > .sc-title {
font-weight: bold !important;
text-decoration: underline;
}
a.sc-result-file-title > .sc-breadcrumb:not(.sc-path, .sc-title, .sc-score) {
font-style: italic;
}
a.sc-result-file-title > .sc-breadcrumb-separator {
color: color-mix(in srgb, var(--text-normal) 50%, transparent) !important;
}
@@ -0,0 +1,164 @@
---
title: "VectifyAI/PageIndex: 📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG"
source: "https://github.com/VectifyAI/PageIndex"
author:
- "[[rejojer]]"
published:
created: 2026-01-20
description: "📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG - VectifyAI/PageIndex"
tags:
- "clippings"
- "webclipper"
---
> [!info] Source
> URL: https://github.com/VectifyAI/PageIndex
> Title: VectifyAI/PageIndex: 📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG
> Clipped:
**[PageIndex](https://github.com/VectifyAI/PageIndex)** Public
📑 PageIndex: Document Index for Vectorless, Reasoning-based RAG
[pageindex.ai](https://pageindex.ai/ "https://pageindex.ai")
[MIT license](https://github.com/VectifyAI/PageIndex/blob/main/LICENSE)
[Open in github.dev](https://github.dev/) [Open in a new github.dev tab](https://github.dev/) [Open in codespace](https://github.com/codespaces/new/VectifyAI/PageIndex?resume=1)
[![PageIndex Banner](https://private-user-images.githubusercontent.com/13518252/474974981-46201e72-675b-43bc-bfbd-081cc6b65a1d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njg4NzI2MzYsIm5iZiI6MTc2ODg3MjMzNiwicGF0aCI6Ii8xMzUxODI1Mi80NzQ5NzQ5ODEtNDYyMDFlNzItNjc1Yi00M2JjLWJmYmQtMDgxY2M2YjY1YTFkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTIwVDAxMjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA2OTBlNGQ5OTY3NjljYzQ0MTZiZjA1NTA1ZTVlMjE3NWM5NDdjZTgwZGRhMDMzMDcyYzQ1OTBhY2E5ZTZlNGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MYpYzCx3WDx7RmyRYnT9k62hAj0j4zutV7Yfz8t25x0)](https://vectify.ai/pageindex)
[![VectifyAI%2FPageIndex | Trendshift](https://camo.githubusercontent.com/62b2c1c71f903121cb378334c98ab301cc540e0f76cdcd64497b4d2367fcaf07/68747470733a2f2f7472656e6473686966742e696f2f6170692f62616467652f7265706f7369746f726965732f3134373336)](https://trendshift.io/repositories/14736)
**Reasoning-based RAG ◦ No Vector DB ◦ No Chunking ◦ Human-like Retrieval**
**🔥 Releases:**
- [**PageIndex Chat**](https://chat.pageindex.ai/): The first human-like document-analysis agent [platform](https://chat.pageindex.ai/) built for professional long documents. Can also be integrated via [MCP](https://pageindex.ai/mcp) or [API](https://docs.pageindex.ai/quickstart) (beta).
**📝 Articles:**
- [**PageIndex Framework**](https://pageindex.ai/blog/pageindex-intro): Introduces the PageIndex framework — an *agentic, in-context* *tree index* that enables LLMs to perform *reasoning-based*, *human-like retrieval* over long documents, without vector DB or chunking.
**🧪 Cookbooks:**
- [Vectorless RAG](https://docs.pageindex.ai/cookbook/vectorless-rag-pageindex): A minimal, hands-on example of reasoning-based RAG using PageIndex. No vectors, no chunking, and human-like retrieval.
- [Vision-based Vectorless RAG](https://docs.pageindex.ai/cookbook/vision-rag-pageindex): OCR-free, vision-only RAG with PageIndex's reasoning-native retrieval workflow that works directly over PDF page images.
---
Are you frustrated with vector database retrieval accuracy for long professional documents? Traditional vector-based RAG relies on semantic *similarity* rather than true *relevance*. But **similarity ≠ relevance** — what we truly need in retrieval is **relevance**, and that requires **reasoning**. When working with professional documents that demand domain expertise and multi-step reasoning, similarity search often falls short.
Inspired by AlphaGo, we propose **[PageIndex](https://vectify.ai/pageindex)** — a **vectorless**, **reasoning-based RAG** system that builds a **hierarchical tree index** from long documents and uses LLMs to **reason** *over that index* for **agentic, context-aware retrieval**. It simulates how *human experts* navigate and extract knowledge from complex documents through *tree search*, enabling LLMs to *think* and *reason* their way to the most relevant document sections. PageIndex performs retrieval in two steps:
1. Generate a “Table-of-Contents” **tree structure index** of documents
2. Perform reasoning-based retrieval through **tree search**
[![](https://camo.githubusercontent.com/e9c3f93a4039fa4743b0655dc7a08eddd0eeb24ed1bfddfb03b6a0bf3c87cbdc/68747470733a2f2f646f63732e70616765696e6465782e61692f696d616765732f636f6f6b626f6f6b2f766563746f726c6573732d7261672e706e67)](https://pageindex.ai/blog/pageindex-intro "The PageIndex Framework")
### 🎯 Features
Compared to traditional vector-based RAG, **PageIndex** features:
- **No Vector DB**: Uses document structure and LLM reasoning for retrieval, instead of vector similarity search.
- **No Chunking**: Documents are organized into natural sections, not artificial chunks.
- **Human-like Retrieval**: Simulates how human experts navigate and extract knowledge from complex documents.
- **Better Explainability and Traceability**: Retrieval is based on reasoning — traceable and interpretable, with page and section references. No more opaque, approximate vector search (“vibe retrieval”).
PageIndex powers a reasoning-based RAG system that achieved **state-of-the-art** [98.7% accuracy](https://github.com/VectifyAI/Mafin2.5-FinanceBench) on FinanceBench, demonstrating superior performance over vector-based RAG solutions in professional document analysis (see our [blog post](https://vectify.ai/blog/Mafin2.5) for details).
To learn more, please see a detailed introduction of the [PageIndex framework](https://pageindex.ai/blog/pageindex-intro). Check out this GitHub repo for open-source code, and the [cookbooks](https://docs.pageindex.ai/cookbook), [tutorials](https://docs.pageindex.ai/tutorials), and [blog](https://pageindex.ai/blog) for additional usage guides and examples.
The PageIndex service is available as a ChatGPT-style [chat platform](https://chat.pageindex.ai/), or can be integrated via [MCP](https://pageindex.ai/mcp) or [API](https://docs.pageindex.ai/quickstart).
- Self-host — run locally with this open-source repo.
- Cloud Service — try instantly with our [Chat Platform](https://chat.pageindex.ai/), or integrate with [MCP](https://pageindex.ai/mcp) or [API](https://docs.pageindex.ai/quickstart).
- *Enterprise* — private or on-prem deployment. [Contact us](https://ii2abc2jejf.typeform.com/to/tK3AXl8T) or [book a demo](https://calendly.com/pageindex/meet) for more details.
- Try the [**Vectorless RAG**](https://github.com/VectifyAI/PageIndex/blob/main/cookbook/pageindex_RAG_simple.ipynb) notebook — a *minimal*, hands-on example of reasoning-based RAG using PageIndex.
- Experiment with [*Vision-based Vectorless RAG*](https://github.com/VectifyAI/PageIndex/blob/main/cookbook/vision_RAG_pageindex.ipynb) — no OCR; a minimal, reasoning-native RAG pipeline that works directly over page images.
---
PageIndex can transform lengthy PDF documents into a semantic **tree structure**, similar to a *"table of contents"* but optimized for use with Large Language Models (LLMs). It's ideal for: financial reports, regulatory filings, academic textbooks, legal or technical manuals, and any document that exceeds LLM context limits.
Below is an example PageIndex tree structure. Also see more example [documents](https://github.com/VectifyAI/PageIndex/tree/main/tests/pdfs) and generated [tree structures](https://github.com/VectifyAI/PageIndex/tree/main/tests/results).
You can generate the PageIndex tree structure with this open-source repo, or use our [API](https://docs.pageindex.ai/quickstart)
---
You can follow these steps to generate a PageIndex tree from a PDF document.
```
pip3 install --upgrade -r requirements.txt
```
Create a `.env` file in the root directory and add your API key:
```
CHATGPT_API_KEY=your_openai_key_here
```
```
python3 run_pageindex.py --pdf_path /path/to/your/document.pdf
```
**Optional parameters**
You can customize the processing with additional optional arguments:
```
--model OpenAI model to use (default: gpt-4o-2024-11-20)
--toc-check-pages Pages to check for table of contents (default: 20)
--max-pages-per-node Max pages per node (default: 10)
--max-tokens-per-node Max tokens per node (default: 20000)
--if-add-node-id Add node ID (yes/no, default: yes)
--if-add-node-summary Add node summary (yes/no, default: yes)
--if-add-doc-description Add doc description (yes/no, default: yes)
```
**Markdown support**
We also provide markdown support for PageIndex. You can use the \`-md\_path\` flag to generate a tree structure for a markdown file.
```
python3 run_pageindex.py --md_path /path/to/your/document.md
```
> Note: in this function, we use "#" to determine node heading and their levels. For example, "##" is level 2, "###" is level 3, etc. Make sure your markdown file is formatted correctly. If your Markdown file was converted from a PDF or HTML, we don't recommend using this function, since most existing conversion tools cannot preserve the original hierarchy. Instead, use our [PageIndex OCR](https://pageindex.ai/blog/ocr), which is designed to preserve the original hierarchy, to convert the PDF to a markdown file and then use this function.
---
[Mafin 2.5](https://vectify.ai/mafin) is a reasoning-based RAG system for financial document analysis, powered by **PageIndex**. It achieved a state-of-the-art [**98.7% accuracy**](https://vectify.ai/blog/Mafin2.5) on the [FinanceBench](https://arxiv.org/abs/2311.11944) benchmark, significantly outperforming traditional vector-based RAG systems.
PageIndex's hierarchical indexing and reasoning-driven retrieval enable precise navigation and extraction of relevant context from complex financial reports, such as SEC filings and earnings disclosures.
Explore the full [benchmark results](https://github.com/VectifyAI/Mafin2.5-FinanceBench) and our [blog post](https://vectify.ai/blog/Mafin2.5) for detailed comparisons and performance metrics.
[![](https://private-user-images.githubusercontent.com/8255061/440120069-571aa074-d803-43c7-80c4-a04254b782a3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njg4NzI2MzYsIm5iZiI6MTc2ODg3MjMzNiwicGF0aCI6Ii84MjU1MDYxLzQ0MDEyMDA2OS01NzFhYTA3NC1kODAzLTQzYzctODBjNC1hMDQyNTRiNzgyYTMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDEyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAxMjBUMDEyNTM2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDFiMzJiMzgxYWU5NjhkZmQzOTVlMzkzN2I1ZmRlMWQxOGQ2ZDlmYjJjYjBmZDA2NDQ4NDc4YjMyOTU3Yjk3NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.oiuAlY5zkAAemIDf-jl1jf89HL7uW6YBvZQHn-i-8VI)](https://github.com/VectifyAI/Mafin2.5-FinanceBench)
---
## 🧭 Resources
- 🧪 [Cookbooks](https://docs.pageindex.ai/cookbook/vectorless-rag-pageindex): hands-on, runnable examples and advanced use cases.
- 📖 [Tutorials](https://docs.pageindex.ai/doc-search): practical guides and strategies, including *Document Search* and *Tree Search*.
- 📝 [Blog](https://pageindex.ai/blog): technical articles, research insights, and product updates.
- 🔌 [MCP setup](https://pageindex.ai/mcp#quick-setup) & [API docs](https://docs.pageindex.ai/quickstart): integration details and configuration options.
---
Leave us a star 🌟 if you like our project. Thank you!
[![](https://private-user-images.githubusercontent.com/13518252/481667856-eae4ff38-48ae-4a7c-b19f-eab81201d794.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njg4NzI2MzYsIm5iZiI6MTc2ODg3MjMzNiwicGF0aCI6Ii8xMzUxODI1Mi80ODE2Njc4NTYtZWFlNGZmMzgtNDhhZS00YTdjLWIxOWYtZWFiODEyMDFkNzk0LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTIwVDAxMjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyNzA4ZDQxMmI2MjhiOGVkODU3MTMxOWFhNTE0Mjg4MzdkOWI3N2Q4ZmY4MTY2MDk3NDZlZjE1YzcwNWJlZjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pSfTU0Lp63eIF6U3IbkEbdIwr2_U4ZL708xLqslt8uQ)](https://private-user-images.githubusercontent.com/13518252/481667856-eae4ff38-48ae-4a7c-b19f-eab81201d794.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njg4NzI2MzYsIm5iZiI6MTc2ODg3MjMzNiwicGF0aCI6Ii8xMzUxODI1Mi80ODE2Njc4NTYtZWFlNGZmMzgtNDhhZS00YTdjLWIxOWYtZWFiODEyMDFkNzk0LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAxMjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMTIwVDAxMjUzNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyNzA4ZDQxMmI2MjhiOGVkODU3MTMxOWFhNTE0Mjg4MzdkOWI3N2Q4ZmY4MTY2MDk3NDZlZjE1YzcwNWJlZjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pSfTU0Lp63eIF6U3IbkEbdIwr2_U4ZL708xLqslt8uQ)
---
© 2025 [Vectify AI](https://vectify.ai/)
## Releases
No releases published
## Packages
No packages published
## Languages
- [Python 100.0%](https://github.com/VectifyAI/PageIndex/search?l=python)
@@ -0,0 +1,46 @@
---
title: Obsidian Agent Refactor
date: 2026-01-10
status: Active
---
# Obsidian Agent Refactor
## Project Overview
**Start Date**: 2026-01-10
**Target Completion**:
**Status**: Active
## Objectives
- [ ]
- [ ]
- [ ]
## Context
<!-- Why this project? What problem does it solve? -->
## Success Criteria
<!-- How will we know this is complete? -->
## Key Resources
<!-- Links to relevant notes, documents, people -->
## Progress Log
<!-- Claude Code will help maintain this -->
### 2026-01-10 - Project Initiated
- Set up project structure
- Initial research phase
## Open Questions
<!-- Track what we need to figure out -->
-
-
## Next Actions
<!-- Immediate next steps -->
- [ ]
- [ ]
---
*Using Claude Code? Say: "I'm working on Obsidian Agent Refactor in thinking mode. Let's explore."*
@@ -5,3 +5,5 @@ release token:
``` ```
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 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
``` ```
+56
View File
@@ -0,0 +1,56 @@
```json
[
{
"domain": "totheglory.im",
"expirationDate": 1784653502.154572,
"hostOnly": true,
"httpOnly": true,
"name": "pass",
"path": "/",
"sameSite": null,
"secure": true,
"session": false,
"storeId": null,
"value": "3d0fca9b34a18a2bc0e2074b9a3b13e0"
},
{
"domain": "totheglory.im",
"expirationDate": 1784653502.154605,
"hostOnly": true,
"httpOnly": false,
"name": "laccess",
"path": "/",
"sameSite": null,
"secure": true,
"session": false,
"storeId": null,
"value": "1768885499"
},
{
"domain": "totheglory.im",
"expirationDate": 1784653502.154492,
"hostOnly": true,
"httpOnly": true,
"name": "uid",
"path": "/",
"sameSite": null,
"secure": true,
"session": false,
"storeId": null,
"value": "17052"
},
{
"domain": "totheglory.im",
"expirationDate": 1803445491.342117,
"hostOnly": true,
"httpOnly": false,
"name": "user_info_hash",
"path": "/",
"sameSite": null,
"secure": true,
"session": false,
"storeId": null,
"value": "e0de221dfdaee86bbbf4d69b451f5941"
}
]
```
@@ -1,123 +0,0 @@
---
title: Templater 快速参考
created: 2026-01-05
updated: 2026-01-05
tags:
- obsidian
- templater
- quick-reference
- reference
type: reference
---
# Templater 快速参考
> 📌 **快速指南**:Templater 插件常用语法和命令速查表
## 🔥 常用语法(复制即用)
### 日期时间
```templater
今天:<% tp.date.now("YYYY-MM-DD") %>
现在:<% tp.date.now("HH:mm") %>
明天:<% tp.date.tomorrow("YYYY-MM-DD") %>
昨天:<% tp.date.yesterday("YYYY-MM-DD") %>
本周一:<% tp.date.weekday("YYYY-MM-DD", 1) %>
```
### 文件信息
```templater
文件名:<% tp.file.title %>
文件夹:<% tp.file.folder() %>
创建时间:<% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
```
### 用户交互
```templater
输入框:<% tp.system.prompt("提示文字") %>
下拉选择:<% tp.system.suggester(["选项1", "选项2"], ["值1", "值2"]) %>
光标位置:<% tp.file.cursor() %>
```
### 文件操作
```javascript
// 创建新笔记
<%* await tp.file.create_new("模板名", "文件名", false, "文件夹") %>
// 移动文件
<%* await tp.file.move("新路径/新文件名") %>
// 包含其他文件
<% tp.file.include("[[笔记名]]") %>
```
## ⌨️ 快捷键(需要先设置)
| 功能 | 推荐快捷键 |
|------|-----------|
| 从模板创建新笔记 | `Ctrl/Cmd + Shift + N` |
| 插入模板到当前笔记 | `Ctrl/Cmd + T` |
| 执行模板代码 | `Ctrl/Cmd + R` |
## 📁 模板文件位置
```
06_Metadata/Templates/
├── daily-note.md # 每日笔记
├── project.md # 项目管理
├── meeting.md # 会议记录
├── quick-note.md # 快速笔记
├── book-note.md # 读书笔记
└── person.md # 人脉管理
```
## 🎯 三步使用流程
1. **按快捷键** `Ctrl/Cmd + Shift + N`(或 `Ctrl/Cmd + P` → 搜索 "Templater"
2. **选择模板**(如 `daily-note.md`
3. **输入文件名**,完成!
## 🛠️ 配置检查清单
- [ ] 设置模板文件夹:`06_Metadata/Templates`
- [ ] 启用 "Trigger Templater on new file creation"
- [ ] 启用 "Enable Folder Templates"
- [ ] 配置文件夹模板映射
- [ ] 设置快捷键
## 💡 实用代码片段
### 自动生成今日链接
```
[[<% tp.date.now("YYYY-MM-DD") %>]]
```
### 带提示的项目笔记
```markdown
---
project: <% tp.system.prompt("项目名称") %>
created: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.system.prompt("项目名称") %>
```
### 智能状态选择
```javascript
<%*
const status = await tp.system.suggester(
["🟢 进行中", "🟡 计划中", "🔴 已完成"],
["active", "planned", "completed"]
);
tR += status;
%>
```
## 🔗 相关文档
- [[Templater-Setup-Guide|Templater Setup Guide]]
- [[Templater-User-Guide|Templater User Guide]]
---
**提示**:将这个笔记固定在侧边栏,随时查阅!
@@ -1,170 +0,0 @@
---
title: Templater 配置步骤
created: 2026-01-05
updated: 2026-01-05
tags:
- obsidian
- templater
- setup
- guide
- reference
type: reference
---
# Templater 配置步骤
## 🎯 快速开始(3步完成配置)
### 第 1 步:配置模板文件夹
1. 打开 Obsidian 设置(`Ctrl/Cmd + ,`
2. 在左侧找到 **Templater** 插件
3. 在 "Template folder location" 中输入:`06_Metadata/Templates`
4. ✅ 勾选 "Trigger Templater on new file creation"(创建新文件时自动触发)
### 第 2 步:设置文件夹模板(可选但推荐)
在 Templater 设置中:
1. ✅ 勾选 "Enable Folder Templates"
2. 点击 "Add New" 添加文件夹模板映射
3. 推荐的映射:
| 文件夹 | 模板文件 | 说明 |
|--------|---------|------|
| `00_Inbox` | `06_Metadata/Templates/quick-note.md` | 收件箱快速笔记 |
| `01_Projects` | `06_Metadata/Templates/project.md` | 项目笔记 |
| `03_Resources/Books` | `06_Metadata/Templates/book-note.md` | 读书笔记 |
**配置方法**
- **Folder**:输入文件夹路径(如 `00_Inbox`
- **Template**:选择模板文件(如 `06_Metadata/Templates/quick-note.md`
### 第 3 步:设置快捷键(推荐)
1. 打开 Obsidian 设置 → **快捷键**
2. 搜索 "Templater"
3. 为以下命令设置快捷键:
| 命令 | 推荐快捷键 | 功能 |
|------|-----------|------|
| `Templater: Create new note from template` | `Ctrl/Cmd + Shift + N` | 从模板创建新笔记 |
| `Templater: Insert Template` | `Ctrl/Cmd + T` | 在当前笔记插入模板 |
| `Templater: Replace templates in the active file` | `Ctrl/Cmd + R` | 执行当前文件中的模板代码 |
## 📚 已创建的模板
你的 vault 中现在有以下模板可用:
1. **daily-note.md** - 每日笔记模板
- 适合:日记、每日计划、工作日志
- 包含:任务列表、笔记区、想法记录
2. **project.md** - 项目管理模板
- 适合:项目规划、OKR 跟踪
- 包含:目标、时间线、团队成员、进展记录
3. **meeting.md** - 会议记录模板
- 适合:各类会议记录
- 包含:议程、讨论内容、行动项
4. **quick-note.md** - 快速笔记模板
- 适合:临时想法、收件箱笔记
- 包含:基本元数据和时间戳
5. **book-note.md** - 读书笔记模板
- 适合:书籍阅读记录
- 包含:书籍信息、核心观点、读书笔记
6. **person.md** - 人脉管理模板
- 适合:联系人信息管理
- 包含:基本信息、互动记录
## 🚀 如何使用模板
### 方法 1:命令面板(推荐新手)
1. 按 `Ctrl/Cmd + P` 打开命令面板
2. 输入 "Templater"
3. 选择 "Templater: Create new note from template"
4. 选择你想使用的模板
5. 输入新文件名
### 方法 2:快捷键(推荐熟练用户)
1. 按你设置的快捷键(如 `Ctrl/Cmd + Shift + N`
2. 选择模板
3. 输入文件名
### 方法 3:自动应用(需要配置文件夹模板)
1. 在指定的文件夹中创建新笔记
2. 模板会自动应用(如果你在第2步配置了文件夹模板)
### 方法 4:在现有笔记中插入
1. 打开一个现有笔记
2. 按 `Ctrl/Cmd + T`(或你设置的快捷键)
3. 选择要插入的模板
## 🎨 自定义模板
### 修改现有模板
1. 打开 `06_Metadata/Templates/` 文件夹
2. 编辑任何 `.md` 模板文件
3. 保存后立即生效
### 创建新模板
1. 在 `06_Metadata/Templates/` 创建新的 `.md` 文件
2. 使用 Templater 语法编写模板
3. 参考 [[Templater-User-Guide|Templater User Guide]] 了解语法
## 💡 实用技巧
### 技巧 1:动态文件名
创建新笔记时,使用日期作为文件名:
```
<% tp.date.now("YYYY-MM-DD") %>-<% tp.system.prompt("笔记标题") %>
```
### 技巧 2:智能提示
在模板中使用下拉选择:
```javascript
<% tp.system.suggester(["高", "中", "低"], ["high", "medium", "low"]) %>
```
### 技巧 3:包含其他模板
在一个模板中包含另一个模板的内容:
```
<% tp.file.include("[[06_Metadata/Templates/common-header]]") %>
```
## ❓ 常见问题
### Q: 模板中的代码没有执行?
**A**: 确保你使用了正确的触发命令:
- 创建新笔记:使用 "Create new note from template"
- 执行现有文件:使用 "Replace templates in the active file"
### Q: 想要每天自动创建日记?
**A**: 结合 **Calendar****Periodic Notes** 插件,设置每日笔记模板为 `daily-note.md`
### Q: 如何查看所有可用的 Templater 函数?
**A**: 阅读 [[Templater-User-Guide|Templater User Guide]] 或访问官方文档
## 📖 延伸阅读
- [[Templater-User-Guide|Templater User Guide]]
- [[Templater-Quick-Reference|Templater Quick Reference]]
- 官方文档:https://silentvoid13.github.io/Templater/
---
**提示**:配置完成后,建议先测试一下 `quick-note.md` 模板,熟悉流程后再使用其他模板。
**创建日期**2026-01-05