This commit is contained in:
2026-02-04 17:04:00 +08:00
commit d2fb4d02f4
770 changed files with 61502 additions and 0 deletions

3
.obsidian/app.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"promptDelete": false
}

1
.obsidian/appearance.json vendored Normal file
View File

@@ -0,0 +1 @@
{}

7
.obsidian/community-plugins.json vendored Normal file
View File

@@ -0,0 +1,7 @@
[
"obsidian-livesync",
"smart-connections",
"smart-connections-visualizer",
"copilot",
"obsidian-git"
]

33
.obsidian/core-plugins.json vendored Normal file
View File

@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"bases": true,
"webviewer": false
}

3
.obsidian/daily-notes.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"folder": "00工作/日志"
}

4
.obsidian/file-recovery.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"intervalMinutes": 5,
"keepDays": 365
}

22
.obsidian/graph.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}

10
.obsidian/hotkeys.json vendored Normal file
View File

@@ -0,0 +1,10 @@
{
"editor:insert-horizontal-rule": [
{
"modifiers": [
"Mod"
],
"key": "-"
}
]
}

Binary file not shown.

403
.obsidian/plugins/copilot/data.json vendored Normal file
View File

@@ -0,0 +1,403 @@
{
"userId": "e572115e-d8b0-4e05-8429-22e068d87f08",
"isPlusUser": false,
"plusLicenseKey": "",
"openAIApiKey": "",
"openAIOrgId": "",
"huggingfaceApiKey": "",
"cohereApiKey": "",
"anthropicApiKey": "",
"azureOpenAIApiKey": "",
"azureOpenAIApiInstanceName": "",
"azureOpenAIApiDeploymentName": "",
"azureOpenAIApiVersion": "",
"azureOpenAIApiEmbeddingDeploymentName": "",
"googleApiKey": "",
"openRouterAiApiKey": "",
"xaiApiKey": "",
"mistralApiKey": "",
"deepseekApiKey": "",
"amazonBedrockApiKey": "",
"amazonBedrockRegion": "",
"siliconflowApiKey": "",
"githubCopilotAccessToken": "",
"githubCopilotToken": "",
"githubCopilotTokenExpiresAt": 0,
"defaultChainType": "llm_chain",
"defaultModelKey": "QWEN3-VL:30B|ollama",
"embeddingModelKey": "text-embedding-3-small|openai",
"temperature": 0.1,
"maxTokens": 6000,
"contextTurns": 15,
"userSystemPrompt": "",
"openAIProxyBaseUrl": "",
"openAIEmbeddingProxyBaseUrl": "",
"stream": true,
"defaultSaveFolder": "copilot/copilot-conversations",
"defaultConversationTag": "copilot-conversation",
"autosaveChat": true,
"generateAIChatTitleOnSave": true,
"autoAddActiveContentToContext": true,
"defaultOpenArea": "view",
"defaultSendShortcut": "enter",
"customPromptsFolder": "copilot/copilot-custom-prompts",
"indexVaultToVectorStore": "ON MODE SWITCH",
"qaExclusions": "copilot",
"qaInclusions": "",
"chatNoteContextPath": "",
"chatNoteContextTags": [],
"enableIndexSync": true,
"debug": false,
"enableEncryption": false,
"maxSourceChunks": 15,
"enableInlineCitations": true,
"groqApiKey": "",
"activeModels": [
{
"name": "copilot-plus-flash",
"provider": "copilot-plus",
"enabled": true,
"isBuiltIn": true,
"core": true,
"plusExclusive": true,
"projectEnabled": false,
"capabilities": [
"vision"
]
},
{
"name": "google/gemini-2.5-flash-lite",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "google/gemini-2.5-flash",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "google/gemini-2.5-pro",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-5",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-5-mini",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-4.1",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gpt-4.1-mini",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"core": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "openai/gpt-4.1",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "openai/gpt-4.1-mini",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "grok-4-fast",
"provider": "xai",
"enabled": true,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "x-ai/grok-4-fast",
"provider": "openrouterai",
"enabled": true,
"isBuiltIn": true,
"core": false,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "claude-sonnet-4-20250514",
"provider": "anthropic",
"enabled": true,
"isBuiltIn": true,
"capabilities": [
"vision",
"reasoning"
]
},
{
"name": "gemini-2.5-flash",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gemini-2.5-flash-lite",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "gemini-2.5-pro",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"projectEnabled": true,
"capabilities": [
"vision"
]
},
{
"name": "azure-openai",
"provider": "azure openai",
"enabled": true,
"isBuiltIn": true
},
{
"name": "deepseek-chat",
"provider": "deepseek",
"enabled": true,
"isBuiltIn": true
},
{
"name": "deepseek-reasoner",
"provider": "deepseek",
"enabled": true,
"isBuiltIn": true,
"capabilities": [
"reasoning"
]
},
{
"name": "deepseek-ai/DeepSeek-V3",
"provider": "siliconflow",
"enabled": false,
"isBuiltIn": false,
"baseUrl": "https://api.siliconflow.com/v1"
},
{
"name": "deepseek-ai/DeepSeek-R1",
"provider": "siliconflow",
"enabled": false,
"isBuiltIn": false,
"baseUrl": "https://api.siliconflow.com/v1",
"capabilities": [
"reasoning"
]
},
{
"name": "QWEN3-VL:30B",
"provider": "ollama",
"baseUrl": "http://100.120.93.125:11434",
"enabled": true
}
],
"activeEmbeddingModels": [
{
"name": "copilot-plus-small",
"provider": "copilot-plus",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true
},
{
"name": "copilot-plus-large",
"provider": "copilot-plus-jina",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true,
"believerExclusive": true,
"dimensions": 1024
},
{
"name": "copilot-plus-multilingual",
"provider": "copilot-plus-jina",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"plusExclusive": true,
"dimensions": 512
},
{
"name": "text-embedding-3-small",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "gemini-embedding-001",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true
},
{
"name": "Qwen/Qwen3-Embedding-0.6B",
"provider": "siliconflow",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true,
"core": true,
"baseUrl": "https://api.siliconflow.com/v1"
},
{
"name": "text-embedding-3-large",
"provider": "openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "embed-multilingual-light-v3.0",
"provider": "cohereai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "text-embedding-004",
"provider": "google",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
},
{
"name": "azure-openai",
"provider": "azure openai",
"enabled": true,
"isBuiltIn": true,
"isEmbeddingModel": true
}
],
"embeddingRequestsPerMin": 60,
"embeddingBatchSize": 16,
"disableIndexOnMobile": true,
"showSuggestedPrompts": true,
"showRelevantNotes": true,
"numPartitions": 1,
"lexicalSearchRamLimit": 100,
"promptUsageTimestamps": {},
"promptSortStrategy": "timestamp",
"chatHistorySortStrategy": "recent",
"projectListSortStrategy": "recent",
"defaultConversationNoteName": "{$topic}@{$date}_{$time}",
"inlineEditCommands": [],
"projectList": [],
"lastDismissedVersion": null,
"passMarkdownImages": true,
"enableAutonomousAgent": true,
"enableCustomPromptTemplating": true,
"enableSemanticSearchV3": false,
"enableLexicalBoosts": true,
"suggestedDefaultCommands": false,
"autonomousAgentMaxIterations": 4,
"autonomousAgentEnabledToolIds": [
"localSearch",
"readNote",
"webSearch",
"pomodoro",
"youtubeTranscription",
"writeToFile",
"replaceInFile",
"updateMemory"
],
"reasoningEffort": "low",
"verbosity": "medium",
"memoryFolderName": "copilot/memory",
"enableRecentConversations": true,
"maxRecentConversations": 30,
"enableSavedMemory": true,
"quickCommandIncludeNoteContext": true,
"autoIncludeTextSelection": false,
"autoAddSelectionToContext": false,
"autoAcceptEdits": false,
"diffViewMode": "split",
"userSystemPromptsFolder": "copilot/system-prompts",
"defaultSystemPromptTitle": "",
"autoCompactThreshold": 128000
}

3492
.obsidian/plugins/copilot/main.js vendored Normal file

File diff suppressed because one or more lines are too long

13
.obsidian/plugins/copilot/manifest.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"id": "copilot",
"name": "Copilot",
"version": "3.1.5",
"minAppVersion": "0.15.0",
"description": "Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.",
"author": "Logan Yang",
"authorUrl": "https://twitter.com/logancyang",
"fundingUrl": {
"Buy Me a Coffee": "https://www.buymeacoffee.com/logancyang",
"GitHub Sponsor": "https://github.com/sponsors/logancyang"
}
}

1
.obsidian/plugins/copilot/styles.css vendored Normal file

File diff suppressed because one or more lines are too long

442
.obsidian/plugins/obsidian-git/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.36.1"
}

View File

@@ -0,0 +1,23 @@
#!/bin/sh
PROMPT="$1"
TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT"
cleanup() {
rm -f "$TEMP_FILE" "$TEMP_FILE.response"
}
trap cleanup EXIT
echo "$PROMPT" > "$TEMP_FILE"
while [ ! -e "$TEMP_FILE.response" ]; do
if [ ! -e "$TEMP_FILE" ]; then
echo "Trigger file got removed: Abort" >&2
exit 1
fi
sleep 0.1
done
RESPONSE=$(cat "$TEMP_FILE.response")
echo "$RESPONSE"

View File

@@ -0,0 +1,705 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.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 {
border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s);
}
.workspace-leaf-content[data-type="git-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.workspace-leaf-content[data-type="git-history-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.loading {
overflow: hidden;
}
.loading > svg {
animation: 2s linear infinite loading;
transform-origin: 50% 50%;
display: inline-block;
}
.obsidian-git-center {
margin: auto;
text-align: center;
width: 50%;
}
.obsidian-git-textarea {
display: block;
margin-left: auto;
margin-right: auto;
}
.obsidian-git-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
}
.tooltip.mod-left {
overflow-wrap: break-word;
}
.tooltip.mod-right {
overflow-wrap: break-word;
}
/* Limits the scrollbar to the view body */
.git-view {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
.git-tools {
display: flex;
margin-left: auto;
}
.git-tools .type {
padding-left: var(--size-2-1);
display: flex;
align-items: center;
justify-content: center;
width: 11px;
}
.git-tools .type[data-type="M"] {
color: orange;
}
.git-tools .type[data-type="D"] {
color: red;
}
.git-tools .buttons {
display: flex;
}
.git-tools .buttons > * {
padding: 0 0;
height: auto;
}
.workspace-leaf-content[data-type="git-view"] .tree-item-self,
.workspace-leaf-content[data-type="git-history-view"] .tree-item-self {
align-items: center;
}
.workspace-leaf-content[data-type="git-view"]
.tree-item-self:hover
.clickable-icon,
.workspace-leaf-content[data-type="git-history-view"]
.tree-item-self:hover
.clickable-icon {
color: var(--icon-color-hover);
}
/* Highlight an item as active if it's diff is currently opened */
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
/* ====== diff2html ======
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:
https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.theme-dark,
.theme-light {
--git-delete-bg: #ff475040;
--git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
--git-insert-hl: #23c02350;
--git-change-bg: #ffd55840;
--git-selected: #3572b0;
--git-delete: #c33;
--git-insert: #399839;
--git-change: #d0b44c;
--git-move: #3572b0;
}
.git-diff {
.d2h-d-none {
display: none;
}
.d2h-wrapper {
text-align: left;
border-radius: 0.25em;
overflow: auto;
}
.d2h-file-header.d2h-file-header {
background-color: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
font-family:
Source Sans Pro,
Helvetica Neue,
Helvetica,
Arial,
sans-serif;
height: 35px;
padding: 5px 10px;
}
.d2h-file-header,
.d2h-file-stats {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.d2h-file-header {
display: none;
}
.d2h-file-stats {
font-size: 14px;
margin-left: auto;
}
.d2h-lines-added {
border: 1px solid var(--color-green);
border-radius: 5px 0 0 5px;
color: var(--color-green);
padding: 2px;
text-align: right;
vertical-align: middle;
}
.d2h-lines-deleted {
border: 1px solid var(--color-red);
border-radius: 0 5px 5px 0;
color: var(--color-red);
margin-left: 1px;
padding: 2px;
text-align: left;
vertical-align: middle;
}
.d2h-file-name-wrapper {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 15px;
width: 100%;
}
.d2h-file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
font-size: var(--h5-size);
}
.d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
margin-bottom: 1em;
max-height: 100%;
}
.d2h-file-collapse {
-webkit-box-pack: end;
-ms-flex-pack: end;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
cursor: pointer;
display: none;
font-size: 12px;
justify-content: flex-end;
padding: 4px 8px;
}
.d2h-file-collapse.d2h-selected {
background-color: var(--git-selected);
}
.d2h-file-collapse-input {
margin: 0 4px 0 0;
}
.d2h-diff-table {
border-collapse: collapse;
font-family: var(--font-monospace);
font-size: var(--code-size);
width: 100%;
}
.d2h-files-diff {
width: 100%;
}
.d2h-file-diff {
/*
overflow-y: scroll;
*/
border-radius: 5px;
font-size: var(--font-text-size);
line-height: var(--line-height-normal);
}
.d2h-file-side-diff {
display: inline-block;
margin-bottom: -8px;
margin-right: -4px;
overflow-x: scroll;
overflow-y: hidden;
width: 50%;
}
.d2h-code-line {
padding-left: 6em;
padding-right: 1.5em;
}
.d2h-code-line,
.d2h-code-side-line {
display: inline-block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 100%;
}
.d2h-code-side-line {
/* needed to be changed */
padding-left: 0.5em;
padding-right: 0.5em;
}
.d2h-code-line-ctn {
word-wrap: normal;
background: none;
display: inline-block;
padding: 0;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
vertical-align: middle;
width: 100%;
/* only works for line-by-line */
white-space: pre-wrap;
}
.d2h-code-line del,
.d2h-code-side-line del {
background-color: var(--git-delete-hl);
color: var(--text-normal);
}
.d2h-code-line del,
.d2h-code-line ins,
.d2h-code-side-line del,
.d2h-code-side-line ins {
border-radius: 0.2em;
display: inline-block;
margin-top: -1px;
text-decoration: none;
vertical-align: middle;
}
.d2h-code-line ins,
.d2h-code-side-line ins {
background-color: var(--git-insert-hl);
text-align: left;
}
.d2h-code-line-prefix {
word-wrap: normal;
background: none;
display: inline;
padding: 0;
white-space: pre;
}
.line-num1 {
float: left;
}
.line-num1,
.line-num2 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
/*
padding: 0 0.5em;
*/
text-overflow: ellipsis;
width: 2.5em;
padding-left: 0;
}
.line-num2 {
float: right;
}
.d2h-code-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
display: inline-block;
position: absolute;
text-align: right;
width: 5.5em;
}
.d2h-code-linenumber:after {
content: "\200b";
}
.d2h-code-side-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
overflow: hidden;
padding: 0 0.5em;
text-align: right;
text-overflow: ellipsis;
width: 4em;
/* needed to be changed */
display: table-cell;
position: relative;
}
.d2h-code-side-linenumber:after {
content: "\200b";
}
.d2h-code-side-emptyplaceholder,
.d2h-emptyplaceholder {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
}
.d2h-code-line-prefix,
.d2h-code-linenumber,
.d2h-code-side-linenumber,
.d2h-emptyplaceholder {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.d2h-code-linenumber,
.d2h-code-side-linenumber {
direction: rtl;
}
.d2h-del {
background-color: var(--git-delete-bg);
border-color: var(--git-delete-hl);
}
.d2h-ins {
background-color: var(--git-insert-bg);
border-color: var(--git-insert-hl);
}
.d2h-info {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
color: var(--text-faint);
}
.d2h-del,
.d2h-ins,
.d2h-file-diff .d2h-change {
color: var(--text-normal);
}
.d2h-file-diff .d2h-del.d2h-change {
background-color: var(--git-change-bg);
}
.d2h-file-diff .d2h-ins.d2h-change {
background-color: var(--git-insert-bg);
}
.d2h-file-list-wrapper {
a {
text-decoration: none;
cursor: default;
-webkit-user-drag: none;
}
svg {
display: none;
}
}
.d2h-file-list-header {
text-align: left;
}
.d2h-file-list-title {
display: none;
}
.d2h-file-list-line {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
text-align: left;
}
.d2h-file-list {
}
.d2h-file-list > li {
border-bottom: 1px solid var(--background-modifier-border);
margin: 0;
padding: 5px 10px;
}
.d2h-file-list > li:last-child {
border-bottom: none;
}
.d2h-file-switch {
cursor: pointer;
display: none;
font-size: 10px;
}
.d2h-icon {
fill: currentColor;
margin-right: 10px;
vertical-align: middle;
}
.d2h-deleted {
color: var(--git-delete);
}
.d2h-added {
color: var(--git-insert);
}
.d2h-changed {
color: var(--git-change);
}
.d2h-moved {
color: var(--git-move);
}
.d2h-tag {
background-color: var(--background-secondary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.d2h-deleted-tag {
border: 1px solid var(--git-delete);
}
.d2h-added-tag {
border: 1px solid var(--git-insert);
}
.d2h-changed-tag {
border: 1px solid var(--git-change);
}
.d2h-moved-tag {
border: 1px solid var(--git-move);
}
/* needed for line-by-line*/
.d2h-diff-tbody {
position: relative;
}
}
/* ====================== Line Authoring Information ====================== */
.cm-gutterElement.obs-git-blame-gutter {
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
border-width: 0px 2px 0.2px 2px;
border-style: solid;
border-color: var(--background-secondary);
background-color: var(--background-secondary);
}
.cm-gutterElement.obs-git-blame-gutter > div,
.line-author-settings-preview {
/* delegate text color to settings */
color: var(--obs-git-gutter-text);
font-family: monospace;
height: 100%; /* ensure, that age-based background color occupies entire parent */
text-align: right;
padding: 0px 6px 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
}
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
}
/* Override styling of Codemirror merge view "collapsed lines" indicator */
.git-split-diff-view .ͼ2 .cm-collapsedLines {
background: var(--interactive-normal);
border-radius: var(--radius-m);
color: var(--text-accent);
font-size: var(--font-small);
padding: var(--size-4-1) var(--size-4-1);
}
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
background: var(--interactive-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;
}

View File

@@ -0,0 +1,159 @@
{
"remoteType": "",
"useCustomRequestHandler": false,
"couchDB_URI": "",
"couchDB_USER": "",
"couchDB_PASSWORD": "",
"couchDB_DBNAME": "",
"liveSync": true,
"syncOnSave": false,
"syncOnStart": false,
"savingDelay": 200,
"lessInformationInLog": false,
"gcDelay": 0,
"versionUpFlash": "",
"minimumChunkSize": 20,
"longLineThreshold": 250,
"showVerboseLog": false,
"suspendFileWatching": false,
"trashInsteadDelete": true,
"periodicReplication": false,
"periodicReplicationInterval": 60,
"syncOnFileOpen": false,
"encrypt": true,
"passphrase": "",
"usePathObfuscation": false,
"doNotDeleteFolder": false,
"resolveConflictsByNewerFile": false,
"batchSave": false,
"batchSaveMinimumDelay": 5,
"batchSaveMaximumDelay": 60,
"deviceAndVaultName": "",
"usePluginSettings": false,
"showOwnPlugins": false,
"showStatusOnEditor": true,
"showStatusOnStatusbar": true,
"showOnlyIconsOnEditor": false,
"hideFileWarningNotice": false,
"usePluginSync": false,
"autoSweepPlugins": false,
"autoSweepPluginsPeriodic": false,
"notifyPluginOrSettingUpdated": false,
"checkIntegrityOnSave": false,
"batch_size": 25,
"batches_limit": 25,
"useHistory": true,
"disableRequestURI": true,
"skipOlderFilesOnSync": true,
"checkConflictOnlyOnOpen": false,
"showMergeDialogOnlyOnActive": false,
"syncInternalFiles": false,
"syncInternalFilesBeforeReplication": false,
"syncInternalFilesIgnorePatterns": "\\/node_modules\\/, \\/\\.git\\/, \\/obsidian-livesync\\/",
"syncInternalFilesTargetPatterns": "",
"syncInternalFilesInterval": 60,
"additionalSuffixOfDatabaseName": "2b78761de14f9fb5",
"ignoreVersionCheck": false,
"lastReadUpdates": 25,
"deleteMetadataOfDeletedFiles": false,
"syncIgnoreRegEx": "",
"syncOnlyRegEx": "",
"customChunkSize": 0,
"readChunksOnline": true,
"watchInternalFileChanges": true,
"automaticallyDeleteMetadataOfDeletedFiles": 0,
"disableMarkdownAutoMerge": false,
"writeDocumentsIfConflicted": false,
"useDynamicIterationCount": false,
"syncAfterMerge": false,
"configPassphraseStore": "",
"encryptedPassphrase": "%$3j9ejrfvn+dXsCn2HLQ8giLieeuPxhNA/WRksI8fmCbDmblkopqq8oP7mcRch0rsz8eB7o+ho4Ui/jnyzG8M6Nh4q+OAjIkFKmdSmRFkjzQD2jyvr2D8rWQssAVz57kpEe1FNK/6f2s=",
"encryptedCouchDBConnection": "%$3j9ejrfvn+dXsCn2HLQ8giLieeuPxhNA/WRksI8fmCbiOLk0sJx7AyzNbvn8IGqQKhdrGZglqBBAqqF0d9WLJ1mDQr19HDV92BB4NAYWUc2HNZJD46mv8RjHRfWhfGIjuKi2wtHqhKyPGIB01vhInWrFepuAHNghICnIXrRnxHA7cQ0RdVkxI9hjxhBDoOB10jXAh3S9wK3YLLabIDZHqgWPI5cpDHBpW8U9vU4MsGJwcATNjNrSi3pzi4XM3vCIBzw+/lbDyggHslKboF3qdIkv3gh3zPBYBVh+lqKO1KSjksaeQWXDM2hVglWLXU5gKQhxYiT0I+/xWvjD/O05UflEQ+FlRY9UKPm8+FmCJmoblIQkyFeAbosADql0jtmaJrp21VM1j9DdqGj6twFdSTUkUX/AjAIwTXZ7YJlzTNMQEVzfxlmzgWjXaEbuoMwCYO8Q07AqZKPEo6uViV+S+kQ9ybEKelHtUKy+yl/G8zadFXDmHX5f3Q8NOGobHwRdKr+LvgL6x+z+9+jk17tLk2+3a21BQ05CmnTnag3hDpOZfx8zl0ogG3Hn3tRKczLrdcnnozNiWOPJHAu9M8I298zQhm2Sy1i8LrSjPHDoDY+atfGweqkfj4RzGxpvZYqideh3E7LqPWfgiVRoaJ4gRWL3fVijgdxEe23+xqXWATX02JPN7O7RMXSxBCjF",
"permitEmptyPassphrase": false,
"useIndexedDBAdapter": false,
"useTimeouts": false,
"writeLogToTheFile": false,
"doNotPaceReplication": false,
"hashCacheMaxCount": 300,
"hashCacheMaxAmount": 50,
"concurrencyOfReadChunksOnline": 40,
"minimumIntervalOfReadChunksOnline": 50,
"hashAlg": "xxhash64",
"suspendParseReplicationResult": false,
"doNotSuspendOnFetching": false,
"useIgnoreFiles": false,
"ignoreFiles": ".gitignore",
"syncOnEditorSave": false,
"pluginSyncExtendedSetting": {},
"syncMaxSizeInMB": 50,
"settingSyncFile": "",
"writeCredentialsForSettingSync": false,
"notifyAllSettingSyncFile": false,
"isConfigured": true,
"settingVersion": 10,
"enableCompression": false,
"accessKey": "",
"bucket": "",
"endpoint": "",
"region": "",
"secretKey": "",
"useEden": false,
"maxChunksInEden": 10,
"maxTotalLengthInEden": 1024,
"maxAgeInEden": 10,
"disableCheckingConfigMismatch": false,
"displayLanguage": "zh",
"enableChunkSplitterV2": false,
"disableWorkerForGeneratingChunks": false,
"processSmallFilesInUIThread": false,
"notifyThresholdOfRemoteStorageSize": 0,
"usePluginSyncV2": false,
"usePluginEtc": false,
"doNotUseFixedRevisionForChunks": true,
"showLongerLogInsideEditor": false,
"sendChunksBulk": false,
"sendChunksBulkMaxSize": 1,
"useSegmenter": false,
"useAdvancedMode": true,
"usePowerUserMode": true,
"useEdgeCaseMode": false,
"enableDebugTools": false,
"suppressNotifyHiddenFilesChange": false,
"syncMinimumInterval": 2000,
"P2P_Enabled": false,
"P2P_AutoAccepting": 0,
"P2P_AppID": "self-hosted-livesync",
"P2P_roomID": "",
"P2P_passphrase": "",
"P2P_relays": "wss://exp-relay.vrtmrz.net/",
"P2P_AutoBroadcast": false,
"P2P_AutoStart": false,
"P2P_AutoSyncPeers": "",
"P2P_AutoWatchPeers": "",
"P2P_SyncOnReplication": "",
"P2P_RebuildFrom": "",
"P2P_AutoAcceptingPeers": "",
"P2P_AutoDenyingPeers": "",
"P2P_IsHeadless": false,
"P2P_DevicePeerName": "",
"P2P_turnServers": "",
"P2P_turnUsername": "",
"P2P_turnCredential": "",
"doctorProcessedVersion": "0.25.27",
"bucketCustomHeaders": "",
"couchDB_CustomHeaders": "",
"useJWT": false,
"jwtAlgorithm": "",
"jwtKey": "",
"jwtKid": "",
"jwtSub": "",
"jwtExpDuration": 5,
"useRequestAPI": false,
"bucketPrefix": "",
"chunkSplitterVersion": "",
"E2EEAlgorithm": "v2",
"processSizeMismatchedFiles": false,
"forcePathStyle": true,
"syncInternalFileOverwritePatterns": "",
"useOnlyLocalChunk": false
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-livesync",
"name": "Self-hosted LiveSync",
"version": "0.25.38",
"minAppVersion": "0.9.12",
"description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"author": "vorotamoroz",
"authorUrl": "https://github.com/vrtmrz",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,481 @@
.added {
color: var(--text-on-accent);
background-color: var(--text-accent);
}
.normal {
color: var(--text-normal);
}
.deleted {
color: var(--text-on-accent);
background-color: var(--text-muted);
}
.conflict-dev-name {
display: inline-block;
min-width: 5em;
}
.op-scrollable {
overflow-y: scroll;
/* min-height: 280px; */
max-height: 280px;
user-select: text;
-webkit-user-select: text;
}
.op-pre {
white-space: pre-wrap;
}
.op-warn {
border: 1px solid salmon;
padding: 2px;
border-radius: 4px;
}
.op-warn::before {
content: "Warning";
font-weight: bold;
color: salmon;
position: relative;
display: block;
}
.op-warn-info {
border: 1px solid rgb(255, 209, 81);
padding: 2px;
border-radius: 4px;
}
.op-warn-info::before {
content: "Notice";
font-weight: bold;
color: rgb(255, 209, 81);
position: relative;
display: block;
}
.syncstatusbar {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
.tcenter {
text-align: center;
}
.sls-plugins-wrap {
display: flex;
flex-grow: 1;
max-height: 50vh;
overflow-y: scroll;
}
.sls-plugins-tbl {
border: 1px solid var(--background-modifier-border);
width: 100%;
max-height: 80%;
}
.divider th {
border-top: 1px solid var(--background-modifier-border);
}
.sls-header-button {
margin-left: 2em;
}
.sls-hidden {
display: none;
}
:root {
--sls-log-text: "";
}
.sls-troubleshoot-preview {
max-width: max-content;
}
.sls-troubleshoot-preview img {
max-width: 100%;
}
.sls-setting-tab {
display: none;
}
div.sls-setting-menu-btn {
color: var(--text-normal);
background-color: var(--background-secondary-alt);
border-radius: 8px;
padding: 6px 10px;
cursor: pointer;
margin-right: 2px;
font-family: "Inter", sans-serif;
outline: none;
user-select: none;
flex-grow: 1;
text-align: center;
flex-shrink: 1;
}
.sls-setting-label.selected {
/* order: 1; */
flex-grow: 1;
/* width: 100%; */
}
.sls-setting-tab:hover~div.sls-setting-menu-btn,
.sls-setting-label.selected .sls-setting-tab:checked~div.sls-setting-menu-btn {
background-color: var(--interactive-accent);
color: var(--text-on-accent);
}
.sls-setting-menu-wrapper {
display: flex;
flex-direction: column;
flex-grow: 1;
position: sticky;
top: 0;
backdrop-filter: blur(15px);
padding: 4px;
border-radius: 10px;
z-index: 10;
}
.sls-setting-menu {
display: flex;
flex-direction: row;
overflow-x: auto;
}
body {
--sls-col-transparent: transparent;
--sls-col-warn: rgba(var(--background-modifier-error-rgb), 0.1);
--sls-col-warn-stripe1: var(--sls-col-transparent);
--sls-col-warn-stripe2: var(--sls-col-warn);
}
.sls-setting-menu-buttons {
border: 1px solid var(--sls-col-warn);
padding: 2px;
margin: 1px;
border-radius: 4px;
background-image: linear-gradient(-45deg,
var(--sls-col-warn-stripe1) 25%, var(--sls-col-warn-stripe2) 25%, var(--sls-col-warn-stripe2) 50%,
var(--sls-col-warn-stripe1) 50%, var(--sls-col-warn-stripe1) 75%, var(--sls-col-warn-stripe2) 75%, var(--sls-col-warn-stripe2));
background-size: 30px 30px;
display: flex;
flex-direction: row;
justify-content: flex-end;
padding: 0.5em 0.25em;
justify-content: center;
align-items: center;
/* transition: background-position 1s; */
animation: sls-scroll-warn 1s linear 0s infinite;
}
@keyframes sls-scroll-warn {
0% {
background-position: 0 0;
}
100% {
background-position: 30px 0;
}
}
.sls-setting-menu-buttons label {
margin-right: auto;
flex-grow: 1;
color: var(--text-warning);
}
.sls-setting-label {
flex-grow: 1;
display: inline-flex;
justify-content: center;
}
.setting-collapsed {
display: none;
}
.sls-plugins-tbl-buttons {
text-align: right;
}
.sls-plugins-tbl-buttons button {
flex-grow: 0;
padding: 6px 10px;
}
.sls-plugins-tbl-device-head {
background-color: var(--background-secondary-alt);
color: var(--text-accent);
}
.op-flex {
display: flex;
}
.op-flex input {
display: inline-flex;
flex-grow: 1;
margin-bottom: 8px;
}
.op-info {
display: inline-flex;
flex-grow: 1;
border-bottom: 1px solid var(--background-modifier-border);
width: 100%;
margin-bottom: 4px;
padding-bottom: 4px;
}
.history-added {
color: var(--text-on-accent);
background-color: var(--text-accent);
}
.history-normal {
color: var(--text-normal);
}
.history-deleted {
color: var(--text-on-accent);
background-color: var(--text-muted);
text-decoration: line-through;
}
.ob-btn-config-fix label {
margin-right: 40px;
}
.ob-btn-config-info {
border: 1px solid salmon;
padding: 2px;
margin: 1px;
border-radius: 4px;
}
.ob-btn-config-head {
padding: 2px;
margin: 1px;
border-radius: 4px;
}
.isWizard .wizardHidden {
display: none;
}
.sls-setting:not(.isWizard) .wizardOnly {
display: none;
}
.sls-item-dirty::before {
content: "✏";
}
.sls-item-dirty-help::after {
content: " ❓";
}
.sls-item-invalid-value {
background-color: rgba(var(--background-modifier-error-rgb), 0.3) !important;
}
.sls-setting-disabled input[type=text],
.sls-setting-disabled input[type=number],
.sls-setting-disabled input[type=password] {
filter: brightness(80%);
color: var(--text-muted);
}
.sls-setting-hidden {
display: none;
}
.sls-setting-obsolete {
background-image: linear-gradient(-45deg,
var(--sls-col-warn-stripe1) 25%, var(--sls-col-warn-stripe2) 25%, var(--sls-col-warn-stripe2) 50%,
var(--sls-col-warn-stripe1) 50%, var(--sls-col-warn-stripe1) 75%, var(--sls-col-warn-stripe2) 75%, var(--sls-col-warn-stripe2));
background-image: linear-gradient(-45deg,
transparent 25%, rgba(var(--background-secondary), 0.1) 25%, rgba(var(--background-secondary), 0.1) 50%, transparent 50%, transparent 75%, rgba(var(--background-secondary), 0.1) 75%, rgba(var(--background-secondary), 0.1));
background-size: 60px 60px;
}
.password-input>.setting-item-control>input {
-webkit-text-security: disc;
}
span.ls-mark-cr::after {
user-select: none;
content: "↲";
color: var(--text-muted);
font-size: 0.8em;
}
.deleted span.ls-mark-cr::after {
color: var(--text-on-accent);
}
.ls-imgdiff-wrap {
display: flex;
justify-content: center;
align-items: center;
}
.ls-imgdiff-wrap .overlay {
position: relative;
}
.ls-imgdiff-wrap .overlay .img-base {
position: relative;
top: 0;
left: 0;
}
.ls-imgdiff-wrap .overlay .img-overlay {
-webkit-filter: invert(100%) opacity(50%);
filter: invert(100%) opacity(50%);
position: absolute;
top: 0;
left: 0;
animation: ls-blink-diff 0.5s cubic-bezier(0.4, 0, 1, 1) infinite alternate;
}
@keyframes ls-blink-diff {
0% {
opacity: 0;
}
50% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.livesync-status {
user-select: none;
pointer-events: none;
height: auto;
min-height: 1em;
position: absolute;
background-color: transparent;
width: 100%;
padding: 10px;
padding-right: 16px;
top: var(--header-height);
z-index: calc(var(--layer-cover) + 1);
font-variant-numeric: tabular-nums;
tab-size: 4;
text-align: right;
white-space: pre-wrap;
display: inline-block;
color: var(--text-normal);
font-size: 80%;
}
div.workspace-leaf-content[data-type=bases] .livesync-status {
top: calc(var(--bases-header-height) + var(--header-height));
padding: 5px;
padding-right: 18px;
}
.is-mobile div.workspace-leaf-content[data-type=bases] .livesync-status {
top: calc(var(--bases-header-height) + var(--view-header-height));
padding: 6px;
padding-right: 18px;
}
.livesync-status div {
opacity: 0.6;
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
.livesync-status .livesync-status-loghistory {
text-align: left;
opacity: 0.4;
}
.livesync-status div.livesync-status-messagearea:empty {
display: none;
}
.livesync-status div.livesync-status-messagearea:not(:empty) {
opacity: 0.6;
color: var(--text-on-accent);
border: 1px solid var(--background-modifier-error);
background-color: rgba(var(--background-modifier-error-rgb), 0.2);
-webkit-filter: unset;
filter: unset;
width: fit-content;
margin-left: auto;
}
.menu-setting-poweruser-disabled .sls-setting-poweruser {
display: none;
}
.menu-setting-advanced-disabled .sls-setting-advanced {
display: none;
}
.menu-setting-edgecase-disabled .sls-setting-edgecase {
display: none;
}
.sls-setting-panel-title {
position: sticky;
font-size: medium;
top: 2.5em;
background-color: var(--background-secondary-alt);
border-radius: 10px;
padding: 0.5em 1.0em;
}
.active-pane .sls-setting-panel-title {
border: 1px solid var(--interactive-accent);
}
.sls-dialogue-note-wrapper {
display: flex;
justify-content: flex-end;
align-items: center;
}
.sls-dialogue-note-countdown {
font-size: 0.8em;
}
.sls-qr {
display: flex;
justify-content: center;
align-items: center;
max-width: max-content;
}
.sls-keypair pre {
max-width: 100%;
overflow-x: auto;
white-space: pre-wrap;
word-break: break-all;
}

View File

@@ -0,0 +1,4 @@
{
"last_version": "3.0.80",
"installed_at": 1769737427898
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"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://wfhbrian.com",
"isDesktopOnly": false,
"version": "3.0.80"
}

View File

@@ -0,0 +1,868 @@
/* 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: 10px;
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);
}
}
}

View File

@@ -0,0 +1,17 @@
{
"relevanceScoreThreshold": 0.5,
"nodeSize": 6.78,
"repelForce": 206,
"linkForce": 1,
"linkDistance": 60,
"centerForce": 0.1,
"textFadeThreshold": 0.1,
"minLinkThickness": 0.76,
"maxLinkThickness": 10,
"maxLabelCharacters": 18,
"linkLabelSize": 7,
"nodeLabelSize": 6,
"connectionType": "block",
"noteFillColor": "#7c8594",
"blockFillColor": "#926ec9"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{
"id": "smart-connections-visualizer",
"name": "Smart Connections Visualizer",
"version": "1.0.27",
"minAppVersion": "0.15.0",
"description": "View your Smart Connections in a visualized format.",
"author": "Evan Moscoso",
"authorUrl": "https://github.com/mossy1022",
"fundingUrl": "https://buymeacoffee.com/evansoasis",
"isDesktopOnly": true
}

View File

@@ -0,0 +1,239 @@
.smart-connections-visualizer-link {
stroke: var(--background-modifier-border);
stroke-opacity: 1;
cursor: pointer;
}
.smart-connections-visualizer-label {
pointer-events: none;
fill: var(--text-normal);
font-family: 'Inter';
}
.smart-connections-visualizer-link-label {
font-family: 'Inter';
}
.smart-connections-visualizer-node:hover {
stroke: #fff;
cursor: pointer;
stroke-width: 0.4px;
}
svg .smart-connections-visualizer-nodes circle {
cursor: pointer;
}
.smart-connections-visualizer-node {
cursor: pointer;
}
.smart-connections-visualizer-settings-icon {
position: absolute;
top: 14px;
right: 14px;
cursor: pointer;
font-size: 24px;
color: #bbb;
z-index: 999; /* Ensure the icon stays above other elements */
}
.sc-visualizer-dropdown-menu {
font-family: 'Cascadia';
display: none;
position: absolute;
top: 13px; /* Position on top of the settings icon */
right: 10px;
background-color: #333;
border: 1px solid #444;
border-radius: 5px;
padding: 10px;
width: 300px;
z-index: 1000; /* Ensure the menu stays above other elements */
}
.sc-visualizer-dropdown-menu {
background-color: rgba(51, 51, 51, 0.9) !important;
}
.sc-visualizer-dropdown-menu.visible {
display: block !important;
}
.sc-visualizer-dropdown-menu.open {
display: block !important;
}
.smart-connections-visualizer-menu-header {
display: flex;
justify-content: flex-end;
margin-bottom: 5px;
font-family: sans-serif;
}
.smart-connections-visualizer-menu-header .smart-connections-visualizer-icon {
cursor: pointer;
font-size: 19px;
color: #bbb;
margin-left: 10px;
margin-top: -2px;
}
.smart-connections-visualizer-menu-header .smart-connections-visualizer-icon:hover {
color: #fff;
}
.smart-connections-visualizer-accordion-item {
margin-bottom: 10px;
color: #a3aecb;
}
.smart-connections-visualizer-slider {
width: 100% !important;
}
.smart-connections-visualizer-slider-container {
margin-bottom: 8px;
}
.smart-connections-visualizer-score-threshold-label {
text-wrap: nowrap;
}
#smart-connections-visualizer-refresh-icon {
font-size: 28px;
margin-top: -2px;
width: 20px;
height: 20px;
display: flex;
}
.smart-connections-visualizer-lucide-x {
height: 24px !important;
width: 24px !important;
}
.smart-connections-visualizer-settings-icon {
-webkit-app-region: no-drag;
background-color: transparent;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
border-radius: 1px;
color: #7c849c;
/* opacity: var(--icon-opacity); */
transition: opacity 0.15s ease-in-out;
height: auto;
border: 1px solid #434851;
position: absolute;
padding: 8px;
top: 14px;
right: 14px;
}
.smart-connections-visualizer-accordion-header {
cursor: pointer;
background-color: #444;
color: #fff;
padding: 10px;
border-radius: 5px;
display: block;
align-items: center;
}
.smart-connections-visualizer-accordion-header:hover {
background-color: #555;
}
.smart-connections-visualizer-accordion-content {
display: none;
padding: 10px;
background-color: #333;
border-radius: 5px;
}
.smart-connections-visualizer-accordion-content.show {
display: block;
}
.smart-connections-visualizer-dropdown-indicator {
width: 16px;
height: 16px;
margin-right: 8px;
vertical-align: middle;
}
.smart-connections-visualizer-radio-container {
margin-top: 10px;
}
.smart-connections-visualizer-radio-container label {
margin-right: 10px;
color: #a3aecb;
}
.smart-connections-visualizer-settings-item-content-label {
margin-right: 20px;
}
.smart-connections-visualizer-selection-box {
stroke: #00f;
stroke-width: 1;
fill: rgba(0, 0, 255, 0.3);
}
/* Styles for the legend container */
.smart-connections-visualizer-legend-container {
width: 295px;
border-collapse: collapse;
background-color: #2d3039; /* Dark background color similar to settings menu */
color: #a3aecb; /* Light text color similar to settings menu */
position: absolute;
top: 14;
left: 10;
}
/* Styles for the legend header */
.smart-connections-visualizer-legend-header {
display: flex;
background-color: #303030; /* Darker background color for header */
text-align: left;
/* border-bottom: 1px solid #ddd; */
}
/* Styles for each header cell in the legend */
.smart-connections-visualizer-legend-header div {
padding: 8px;
}
/* Styles for each row in the legend */
.smart-connections-visualizer-legend-row {
display: flex;
align-items: center;
/* border-bottom: 1px solid #ddd; */
}
/* Alternate row coloring for better readability */
.smart-connections-visualizer-legend-row:nth-child(even) {
background-color: #3d4149; /* Slightly lighter row color for contrast */
}
.smart-connections-visualizer-legend-row:nth-child(odd) {
background-color: #2d3039; /* Same as container background color */
}
/* Styles for each cell in the row */
.smart-connections-visualizer-legend-row div {
padding: 8px;
}
/* Styles for the color picker input */
.smart-connections-visualizer-legend-color-picker {
width: 30px;
height: 30px;
border: none;
cursor: pointer;
}
.smart-connections-visualizer-variable-col {
flex: 2;
}
.smart-connections-visualizer-count-col {
flex: 1;
text-align: center;
}
.smart-connections-visualizer-color-col {
flex: 1;
text-align: center;
}

323
.obsidian/workspace.json vendored Normal file
View File

@@ -0,0 +1,323 @@
{
"main": {
"id": "28f3968c7042f1ec",
"type": "split",
"children": [
{
"id": "90d1bffec098a6a7",
"type": "tabs",
"children": [
{
"id": "52b2664e670bae0f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "00工作/日志/2026-01-29.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "2026-01-29"
}
},
{
"id": "74f5128880bf83cc",
"type": "leaf",
"state": {
"type": "smart-release-notes-view",
"state": {},
"icon": "file-text",
"title": "Release Notes"
}
},
{
"id": "c11bcfcec5aa1056",
"type": "leaf",
"state": {
"type": "smart-chat-view",
"state": {},
"icon": "smart-chat",
"title": "Smart Chat"
}
},
{
"id": "52fde805b9d69159",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "00工作/日志/2026-02-04.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "2026-02-04"
}
}
],
"currentTab": 3
}
],
"direction": "vertical"
},
"left": {
"id": "cdc1e4722af30498",
"type": "split",
"children": [
{
"id": "6b7187613f6e2cf1",
"type": "tabs",
"children": [
{
"id": "564e4c7b2efa9ec8",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "文件列表"
}
},
{
"id": "7d23d178865f0261",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "d0a81bfc003ab0a1",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "b33744e2a1940edd",
"type": "split",
"children": [
{
"id": "bfb0c674269265de",
"type": "tabs",
"children": [
{
"id": "3b9c7743e9f380b9",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "00工作/日志/2026-01-26.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "2026-01-26 的反向链接列表"
}
},
{
"id": "21a724472906c9de",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Welcome.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Welcome"
}
},
{
"id": "ad05f80552cee233",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "1693e18160743387",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "8ce3e6e58b511cdc",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/草稿.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "草稿 的大纲"
}
},
{
"id": "a2bf7d3570308be3",
"type": "leaf",
"state": {
"type": "smart-connections-view",
"state": {},
"icon": "smart-connections",
"title": "Connections"
}
},
{
"id": "8dc1172d7e5d01cf",
"type": "leaf",
"state": {
"type": "smart-connections-visualizer",
"state": {},
"icon": "git-fork",
"title": "Smart connections visualizer"
}
},
{
"id": "6995e71bcab01133",
"type": "leaf",
"state": {
"type": "copilot-chat-view",
"state": {},
"icon": "message-square",
"title": "Copilot"
}
},
{
"id": "98d58247b8cce6c7",
"type": "leaf",
"state": {
"type": "git-view",
"state": {},
"icon": "git-pull-request",
"title": "Source Control"
}
}
],
"currentTab": 8
}
],
"direction": "horizontal",
"width": 428.5
},
"left-ribbon": {
"hiddenItems": {
"obsidian-livesync:P2P Replicator": false,
"obsidian-livesync:Show Log": false,
"obsidian-livesync:Replicate": false,
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"bases:新建数据库": false,
"smart-connections:Open: Smart Chat": false,
"smart-connections:Smart Connections: Open connections view": false,
"smart-connections:Smart Connections: Open random connection": true,
"smart-connections-visualizer:Open smart connections visualizer": false,
"copilot:Open Copilot Chat": false,
"obsidian-livesync:Show Customization sync": false,
"obsidian-git:Open Git source control": false
}
},
"active": "564e4c7b2efa9ec8",
"lastOpenFiles": [
"00工作/日志/2026-02-03.md",
"00工作/日志/2026-02-04.md",
"Pasted image 20260204085903.png",
"00工作/日志/2026-02-02.md",
"00工作/日志/2026-01-29.md",
"00工作/日志/2026-01-28.md",
"00工作/日志/2026-01-27.md",
"00工作/日志/2026-01-26.md",
"00工作/日志/2026-01-25.md",
"00工作/日志/2026-01-23.md",
"copilot/copilot-conversations/9.11_and_9.8,_which_is_bigger@20260203_084349.md",
"02生活/日常折腾/NAS容器服务依存关系.canvas",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/PPK与CPK.md",
"00工作/2026年/工艺研发+工业工程平台建设/3ED23转子动平衡/准备素材.md",
"00工作/2026年/工艺研发+工业工程平台建设/3ED23转子动平衡",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/素材准备.md",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/草稿.md",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/GEMINI.md",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/notebooklm.md",
"00工作/日志/2026-01-30.md",
"03旧笔记本整理/00Trilium/学习/软件/Flexsim/课程/掌控item流向与PF模块/任务执行的实际顺序.md",
"轨道机器人物流仿真flexsim.rar",
"planar_mill.prt",
"03旧笔记本整理/00Trilium/学习/软件/NX/NX-CAM/课堂记录/课堂记录.md",
"03旧笔记本整理/00Trilium/学习/软件/MBD/视图保存时处理的数据.md",
"03旧笔记本整理/00Trilium/学习/软件/MBD/要表达的信息.md",
"03旧笔记本整理/00Trilium/学习/软件/MBD/旧MBD无法实现三维标注的解决方案.md",
"03旧笔记本整理/00Trilium/学习/软件/MBD/平面注释的方向.md",
"03旧笔记本整理/00Trilium/学习/软件/Flexsim/2022年物流仿真.md",
"03旧笔记本整理/00Trilium/学习/软件/Delfoi/复制Geometry.md",
"03旧笔记本整理/00Trilium/学习/软件/Delfoi/OPCUA连接PLC.md",
"00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK",
"00工作/2026年/工艺研发+工业工程平台建设/生产线布局及产能、节拍、工位设计",
"00工作/2026年/工艺研发+工业工程平台建设/生产线布局及产能、节拍、工位设计/Pasted image 20260125120852.png",
"01学习/理论类/专业类/MBA/作业/管理思想前沿",
"01学习/理论类/专业类/MBA/作业",
"01学习/理论类/专业类/MBA",
"01学习/理论类/专业类",
"01学习/理论类",
"01学习/软件类/理论知识/软考高级系统构架师/知识总览.canvas",
"00工作/日志/日志图片缓存/Pasted image 20260126092836.png",
"00工作/日志/日志图片缓存/Pasted image 20260126092805.png",
"00工作/日志/日志图片缓存/Pasted image 20260126092650.png",
"00工作/日志/日志图片缓存/Pasted image 20260126092747.png",
"01学习/软件类/理论知识/软考高级系统构架师/直播课/第二次直播/未命名.canvas",
"01学习/软件类/软件操作/PlantSimulation/培训备课/zz图片缓存/Pasted image 20260125001724.png",
"01学习/软件类/软件操作/PlantSimulation/培训备课/zz图片缓存/Pasted image 20260125001650.png",
"01学习/软件类/软件操作/PlantSimulation/培训备课/zz图片缓存/Pasted image 20260125001517.png",
"01学习/软件类/软件操作/PlantSimulation/培训备课/zz图片缓存/Pasted image 20260125001329.png"
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/2026年/工艺研发+工业工程平台建设/3ED23转子动平衡/未命名.md": null,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/2026年/工艺研发+工业工程平台建设/PPK与CPK/未命名.md": null,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/2026年/工艺研发+工业工程平台建设/工艺研发+工业工程”协同创新.docx": {"path":"00工作/2026年/工艺研发+工业工程平台建设/工艺研发+工业工程”协同创新.docx","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/2026年/工艺研发+工业工程平台建设/生产线布局及产能、节拍、工位设计/Pasted image 20260125120852.png": {"path":"00工作/2026年/工艺研发+工业工程平台建设/生产线布局及产能、节拍、工位设计/Pasted image 20260125120852.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/日志/2026-01-25.md": {"path":"00工作/日志/2026-01-25.md","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":"0","at":1769737998364},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/日志/日志图片缓存/Pasted image 20260126092650.png": {"path":"00工作/日志/日志图片缓存/Pasted image 20260126092650.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/日志/日志图片缓存/Pasted image 20260126092747.png": {"path":"00工作/日志/日志图片缓存/Pasted image 20260126092747.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/日志/日志图片缓存/Pasted image 20260126092805.png": {"path":"00工作/日志/日志图片缓存/Pasted image 20260126092805.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:00工作/日志/日志图片缓存/Pasted image 20260126092836.png": {"path":"00工作/日志/日志图片缓存/Pasted image 20260126092836.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/理论知识/软考高级系统构架师/直播课/未命名.md": {"path":"01学习/软件类/理论知识/软考高级系统构架师/直播课/未命名.md","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":"0","at":1769737998364},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/理论知识/软考高级系统构架师/直播课/第二次直播/未命名.canvas": {"path":"01学习/软件类/理论知识/软考高级系统构架师/直播课/第二次直播/未命名.canvas","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/理论知识/软考高级系统构架师/知识总览.canvas": {"path":"01学习/软件类/理论知识/软考高级系统构架师/知识总览.canvas","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004227.png": {"path":"01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004227.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004236.png": {"path":"01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004236.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004246.png": {"path":"01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004246.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004256.png": {"path":"01学习/软件类/软件操作/Docker/zz图像缓存/Pasted image 20260125004256.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002203.png": {"path":"01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002203.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002432.png": {"path":"01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002432.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002449.png": {"path":"01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002449.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

View File

@@ -0,0 +1,2 @@
"smart_sources:01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002551.png": {"path":"01学习/软件类/软件操作/Flexsim/zz图片缓存/Pasted image 20260125002551.png","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":null,"mtime":0},"class_name":"SmartSource"},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More