增加 .gitignore 文件忽视 .trash/ 和 attachments/

增加 .obsidian 配置文件
增加第三方插件:ai-providers、dataview、local-gpt、templater-obsidian
This commit is contained in:
心平气和 2025-12-27 19:31:30 +08:00
parent d5f09b7bac
commit f2c17a64ce
24 changed files with 52224 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.trash/
attachments/

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

@ -0,0 +1,8 @@
{
"newFileLocation": "folder",
"newFileFolderPath": "note",
"attachmentFolderPath": "attachments",
"showLineNumber": true,
"trashOption": "local",
"promptDelete": false
}

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

@ -0,0 +1 @@
{}

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

@ -0,0 +1,3 @@
{
"backlinkInDocument": true
}

6
.obsidian/canvas.json vendored Normal file
View File

@ -0,0 +1,6 @@
{
"snapToObjects": true,
"snapToGrid": true,
"newFileLocation": "folder",
"newFileFolderPath": "attachments"
}

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

@ -0,0 +1 @@
[]

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": true,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": true,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": true,
"random-note": true,
"outline": true,
"word-count": true,
"slides": true,
"audio-recorder": true,
"workspaces": true,
"file-recovery": true,
"publish": false,
"sync": false,
"bases": true,
"webviewer": false
}

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": false
}

196
.obsidian/plugins/ai-providers/data.json vendored Normal file
View File

@ -0,0 +1,196 @@
{
"_version": 1,
"debugLogging": false,
"useNativeFetch": false,
"providers": [
{
"id": "id-1766815906291",
"name": "OpenAI",
"apiKey": "sk-00717039aff94da698a217b5abc2380e",
"url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"type": "openai",
"model": "qwen3-max-preview",
"availableModels": [
"qwen-flash",
"z-image-turbo",
"qwen3-vl-plus-2025-12-19",
"qwen3-tts-vd-realtime-2025-12-16",
"qwen-image-edit-plus-2025-12-15",
"deepseek-v3.2",
"qwen3-omni-flash-2025-12-01",
"qwen3-omni-flash-realtime-2025-12-01",
"qwen3-livetranslate-flash-2025-12-01",
"qwen3-livetranslate-flash",
"qwen-plus-2025-12-01",
"qwen3-tts-vc-realtime-2025-11-27",
"qwen3-tts-flash-2025-11-27",
"qwen3-tts-flash-realtime-2025-11-27",
"qwen-plus-2025-11-05",
"qwen-mt-lite",
"qwen-vl-ocr-2025-11-20",
"kimi-k2-thinking",
"qwen-mt-flash",
"gui-plus",
"qwen-image-edit-plus-2025-10-30",
"qwen-image-edit-plus",
"qwen-deep-search-planning",
"qwen3-asr-flash-realtime-2025-10-27",
"qwen3-asr-flash-realtime",
"qwen3-vl-flash",
"qwen3-vl-flash-2025-10-15",
"qwen3-tts-flash",
"qwen3-tts-flash-2025-09-18",
"qwen3-tts-flash-realtime-2025-09-18",
"qwen3-tts-flash-realtime",
"qwen3-omni-flash-realtime",
"qwen3-omni-flash",
"qwen3-omni-flash-2025-09-15",
"qwen3-omni-flash-realtime-2025-09-15",
"qwen3-s2s-flash-realtime-2025-09-22",
"qwen3-livetranslate-flash-realtime",
"qwen3-livetranslate-flash-realtime-2025-09-22",
"qwen2.5-14b-instruct-1m",
"qwen2.5-7b-instruct-1m",
"qwen-max-2025-01-25",
"qwen-turbo-2024-11-01",
"qwen-plus-2025-01-25",
"qwq-plus-2025-03-05",
"qwq-plus",
"qwen2.5-vl-32b-instruct",
"qvq-max",
"qwen-omni-turbo",
"qwen-turbo-2025-04-28",
"qwen-plus-2025-04-28",
"qwen-vl-max-2025-04-08",
"qwen-vl-plus-2025-01-25",
"qwen-vl-plus-latest",
"qwen-vl-max-latest",
"qwen-vl-plus-2025-05-07",
"qwen-turbo-2025-07-15",
"qwen3-235b-a22b-instruct-2507",
"qwen3-235b-a22b-thinking-2507",
"qwen3-30b-a3b-thinking-2507",
"qwen3-30b-a3b-instruct-2507",
"qwen3-coder-flash",
"qwen3-coder-plus-2025-09-23",
"qwen3-max-2025-09-23",
"qwen3-vl-plus",
"qwen3-vl-plus-2025-09-23",
"qwen-plus-2025-09-11",
"qwen3-next-80b-a3b-thinking",
"qwen3-next-80b-a3b-instruct",
"qwen3-max-preview",
"deepseek-v3.1",
"qwen-vl-plus-2025-08-15",
"qwen3-coder-plus",
"qwen3-coder-plus-2025-07-22",
"qwen-plus-2025-07-14",
"qwen3-coder-480b-a35b-instruct",
"qwen-mt-turbo",
"qwen-mt-plus",
"qwen-tts-2025-05-22",
"qvq-plus",
"qvq-plus-2025-05-15",
"qvq-max-2025-05-15",
"qwen3-4b",
"qwen3-32b",
"qwen3-30b-a3b",
"qwen3-235b-a22b",
"qwen3-14b",
"qwen3-1.7b",
"qwen3-0.6b",
"qwen3-8b",
"qwen-vl-max-2025-04-02",
"deepseek-v3",
"deepseek-r1-distill-llama-70b",
"deepseek-r1-distill-qwen-32b",
"deepseek-r1-distill-qwen-14b",
"deepseek-r1-distill-llama-8b",
"deepseek-r1-distill-qwen-1.5b",
"deepseek-r1-distill-qwen-7b",
"deepseek-r1",
"qwen1.5-7b-chat",
"qwen-vl-ocr-latest",
"qwen-vl-ocr",
"qwen-coder-plus-1106",
"qwen-coder-plus",
"qwen-coder-plus-latest",
"qwen2.5-coder-3b-instruct",
"qwen2.5-coder-0.5b-instruct",
"qwen2.5-coder-14b-instruct",
"qwen2.5-coder-32b-instruct",
"qwen-coder-turbo",
"qwen2.5-math-7b-instruct",
"qwen2.5-coder-7b-instruct",
"qwen2.5-72b-instruct",
"qwen2.5-32b-instruct",
"qwen2.5-math-1.5b-instruct",
"qwen2.5-1.5b-instruct",
"qwen-turbo-latest",
"qwen-plus-0919",
"qwen-max-latest",
"qwen-turbo-0919",
"qwen-math-turbo-0919",
"qwen-coder-turbo-latest",
"qwen2.5-math-72b-instruct",
"qwen2.5-7b-instruct",
"qwen2.5-14b-instruct",
"qwen2.5-0.5b-instruct",
"qwen-math-plus",
"qwen-max-0919",
"qwen-math-turbo-latest",
"qwen-math-turbo",
"qwen-math-plus-latest",
"qwen-math-plus-0919",
"qwen-coder-turbo-0919",
"qwen-plus-latest",
"qwen2.5-3b-instruct",
"qwen2-57b-a14b-instruct",
"qwen2-7b-instruct",
"qwen2-0.5b-instruct",
"qwen2-1.5b-instruct",
"qwen-long",
"qwen-vl-max",
"qwen-vl-plus",
"qwen-max-0428",
"qwen1.5-110b-chat",
"qwen1.5-0.5b-chat",
"codeqwen1.5-7b-chat",
"qwen-72b-chat",
"qwen-1.8b-chat",
"qwen-7b-chat",
"qwen-1.8b-longcontext-chat",
"qwen-14b-chat",
"qwen-max-1201",
"qwen-max-longcontext",
"qwen1.5-1.8b-chat",
"qwen1.5-14b-chat",
"qwen1.5-32b-chat",
"qwen1.5-72b-chat",
"qwen-plus",
"qwen-max-0107",
"qwen-turbo",
"qwen-max-0403",
"qwen-max"
]
},
{
"id": "id-1766822455151",
"name": "Ollama",
"apiKey": "",
"url": "https://efhjzk-nfodwe-8434.app.cloudstudio.work",
"type": "ollama",
"model": "deepseek-r1:8b",
"availableModels": [
"qwen2.5:7b",
"qwen2.5:1.5b-instruct-q4_0",
"llama3.2:1b-instruct-q2_K",
"deepseek-r1:1.5b",
"deepseek-r1:14b",
"deepseek-r1:7b",
"deepseek-r1:8b",
"bge-m3:latest"
]
}
]
}

85
.obsidian/plugins/ai-providers/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"id": "ai-providers",
"name": "AI Providers",
"version": "1.8.0",
"minAppVersion": "0.15.0",
"description": "A hub for setting AI providers (OpenAI-like, Ollama and more) in one place.",
"author": "Pavel Frankov",
"authorUrl": "https://github.com/pfrankov",
"isDesktopOnly": false
}

View File

@ -0,0 +1 @@
.ai-providers-model-pill{display:inline-block;padding:2px 6px;margin-top:4px;border-radius:var(--radius-s);background-color:var(--background-modifier-border);color:var(--text-muted);font-size:var(--font-smallest);opacity:.8;text-shadow:var(--background-primary) 0 0 1px,var(--background-primary) 0 0 1px}.ai-providers-provider-icon{display:inline-flex;align-items:center;margin-right:6px;vertical-align:text-top}.ai-providers-provider-icon svg{width:16px;height:16px;fill:var(--text-muted)}.ai-providers-developer-settings-toggle{margin-top:1.5em;border:0}.ai-providers-developer-settings{margin-top:.75em;padding:1em;border:1px solid var(--background-modifier-border);border-radius:var(--radius-m)}.ai-providers-notice{margin:0 -1em 1em;padding:1em;border:1px solid var(--background-modifier-border);border-radius:var(--radius-m);background-color:var(--background-secondary)}.ai-providers-notice-content{color:var(--text-muted);font-size:var(--font-small);line-height:var(--line-height-tight)}.ai-providers-model-dropdown{max-width:65%}.ai-providers-model-dropdown select{width:100%;text-overflow:ellipsis}.ai-providers-main-interface .setting-item,.ai-providers-main-interface .setting-item-info{overflow:hidden}.ai-providers-main-interface .setting-item-description{max-width:100%}

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

File diff suppressed because one or more lines are too long

View File

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

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

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

57
.obsidian/plugins/local-gpt/data.json vendored Normal file
View File

@ -0,0 +1,57 @@
{
"aiProviders": {
"main": "id-1766822455151",
"embedding": "id-1766822455151",
"vision": null
},
"defaults": {
"creativity": "low",
"contextLimit": "local"
},
"actions": [
{
"name": "文档归档",
"prompt": "",
"system": "你是一个专业的文字工作者。能够平衡文档的完整性和读者的理解性。将文档进行整理排版归档,作为知识库供未来人工/程序检索查询。",
"replace": false
},
{
"name": "Hotfix助手",
"prompt": "",
"system": "你是一个专业的hotfix人员专业技能完全值得信赖",
"replace": false
},
{
"name": "🪄 General help",
"prompt": "",
"system": "You are an assistant helping a user write more content in a document based on a prompt. Output in markdown format. Do not use links. Do not include literal content from the original document."
},
{
"name": "✍️ Continue writing",
"prompt": "Act as a professional editor with many years of experience as a writer. Carefully finalize the following text, add details, use facts and make sure that the meaning and original style are preserved. Purposely write in detail, with examples, so that your reader is comfortable, even if they don't understand the specifics. Don't use clericalisms, evaluations without proof with facts, passive voice. Use Markdown markup language for formatting. Answer only content and nothing else, no introductory words, only substance.",
"system": "You are an AI assistant that follows instruction extremely well. Help as much as you can."
},
{
"name": "🍭 Summarize",
"prompt": "Make a concise summary of the key points of the following text.",
"system": "You are an AI assistant that follows instruction extremely well. Help as much as you can."
},
{
"name": "📖 Fix spelling and grammar",
"prompt": "Proofread the below for spelling and grammar.",
"system": "You are an AI assistant that follows instruction extremely well. Help as much as you can.",
"replace": true
},
{
"name": "✅ Find action items",
"prompt": "Act as an assistant helping find action items inside a document. An action item is an extracted task or to-do found inside of an unstructured document. Use Markdown checkbox format: each line starts with \"- [ ] \"",
"system": "You are an AI assistant that follows instruction extremely well. Help as much as you can."
},
{
"name": "🧠 New System Prompt",
"prompt": "",
"system": "You are a highly skilled AI prompt engineer with expertise in creating tailored prompts for a wide range of professional roles. You have a deep knowledge of how to craft prompts that effectively guide the language model to produce high-quality, contextually appropriate responses.\n\nYour task is to generate a custom system prompt for different roles based on user input. This involves understanding the specific requirements of each role, the context in which the prompt will be used, and the desired output format. You are skilled in structuring prompts that ensure clarity, relevance, and utility.\n\nCreate a custom system prompt for an LLM to assist users in generating contextually appropriate and highly effective responses for various roles. The prompt should provide clear instructions to the LLM on how to handle specific scenarios related to the role, including the tone and format of the response.\n\nStart by providing a role \"You are...\" and context as a summary of the situation or background information relevant to the prompt. Define the main objective, outlining what the LLM needs to accomplish.\n\nInclude instructions on the appropriate style and tone (e.g., formal, casual, technical, empathetic) based on the role and audience. Identify the target audience to tailor the LLM's output effectively. Specify the format of the response, whether it should be a narrative, bullet points, step-by-step guide, code, or another format. Avoid using headings or examples; the prompt should read as a continuous, cohesive set of instructions.\nANSWER PROMPT AND NOTHING ELSE!"
}
],
"_version": 8
}

29671
.obsidian/plugins/local-gpt/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,13 @@
{
"id": "local-gpt",
"name": "Local GPT",
"version": "3.6.0",
"minAppVersion": "0.15.0",
"description": "Local GPT assistance for maximum privacy and offline access",
"author": "Pavel Frankov",
"authorUrl": "https://github.com/pfrankov",
"isDesktopOnly": false,
"css": [
"styles.css"
]
}

569
.obsidian/plugins/local-gpt/styles.css vendored Normal file
View File

@ -0,0 +1,569 @@
/* node_modules/@obsidian-ai-providers/sdk/dist/styles.css */
.ai-providers-notice {
margin: 0 -1em 1em;
padding: 1em;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background-color: var(--background-secondary);
color: var(--text-muted);
font-size: var(--font-small);
line-height: var(--line-height-tight);
}
.ai-providers-notice p {
margin: 0;
margin-bottom: 0.5em;
}
.ai-providers-notice p:last-child {
margin-bottom: 0;
}
.ai-providers-select > .setting-item-info {
flex-grow: 1;
flex-shrink: 1;
}
.ai-providers-select > .setting-item-control {
flex-grow: 0;
flex-shrink: 1;
flex-basis: 50%;
max-width: 50%;
}
.ai-providers-select > .setting-item-control .dropdown {
max-width: 100%;
}
/* styles.css */
.local-gpt-settings-separator {
margin: 1em 0;
height: 1em;
}
.local-gpt-advanced-toggle {
margin-top: 1.5em;
border: 0;
}
.local-gpt-advanced-group {
margin-top: 0.75em;
padding: 1em;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
}
.local-gpt-advanced-group > h4 {
margin: 0 0 0.75em;
font-weight: 700;
}
.local-gpt-advanced-group .setting-item {
border-top: 1px solid var(--background-modifier-border);
margin-top: 0.5em;
padding-top: 0.5em;
}
.local-gpt-content {
color: var(--text-faint);
display: block;
white-space: pre-wrap;
word-break: break-word;
}
.local-gpt-content > span:last-child {
display: inline;
background-image: linear-gradient(to right, var(--text-faint) 0%, var(--interactive-accent) 100%);
background-clip: text;
-webkit-text-fill-color: transparent;
box-decoration-break: slice;
}
.local-gpt-loading {
display: inline-block;
overflow: hidden;
height: 1.3em;
line-height: 1.5em;
vertical-align: text-bottom;
margin: -0.3em 0.3em 0;
}
.local-gpt-thinking-container {
display: block;
opacity: 0;
animation: local-gpt-fadeIn 0.1s ease-out forwards;
}
@keyframes local-gpt-fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.local-gpt-thinking {
position: relative;
display: inline-block;
color: var(--interactive-accent);
font-style: italic;
animation: local-gpt-pulse 1.7s ease-in-out infinite;
}
.local-gpt-thinking::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
color: var(--interactive-accent-hover);
display: inline-block;
white-space: nowrap;
filter: blur(2px);
mask-image: linear-gradient(to right, transparent 30%, black 50%, transparent 70%);
mask-size: 200% 100%;
mask-position: -50% 0;
animation: local-gpt-maskMove 1.7s linear infinite reverse;
mix-blend-mode: color-dodge;
}
.local-gpt-thinking::after {
content: "";
display: inline-block;
width: 1em;
text-align: left;
animation: local-gpt-dots 1.7s infinite;
opacity: 1;
}
.cm-editor .local-gpt-action-palette-container {
position: relative;
display: block;
padding: 0;
text-indent: 0;
}
.markdown-source-view.mod-cm6 .cm-content > .local-gpt-action-palette-container[contenteditable=false] {
contain: none !important;
overflow: visible;
margin: 0.3rem -10px 1.5rem !important;
}
.cm-editor .local-gpt-action-palette-shell {
display: inline-flex;
width: 100%;
padding: var(--size-2-1) 0;
position: relative;
z-index: var(--layer-popover);
}
.cm-editor .local-gpt-action-palette {
width: 100%;
box-sizing: border-box;
padding: var(--size-4-2) var(--size-4-2);
border-radius: var(--radius-m);
border: 2px solid var(--background-modifier-border);
background: var(--background-primary);
color: var(--text-normal);
font: inherit;
outline: none;
box-shadow: var(--shadow-s);
transition: border-color var(--anim-duration-moderate) ease, box-shadow var(--anim-duration-moderate) ease;
min-height: var(--line-height-normal);
line-height: var(--line-height-normal);
z-index: var(--layer-popover);
}
.cm-editor .local-gpt-action-palette[contenteditable=true]:empty::before {
content: attr(data-placeholder);
color: var(--text-faint);
pointer-events: none;
}
.cm-editor .local-gpt-action-palette .file-mention {
background: var(--interactive-accent);
color: var(--text-on-accent);
padding: var(--size-2-1) var(--size-4-2);
border-radius: var(--radius-s);
cursor: pointer;
user-select: none;
transition: background-color var(--anim-duration-fast) ease;
margin: 0 var(--size-2-1);
display: inline-block;
}
.cm-editor .local-gpt-action-palette .file-mention:hover {
background: var(--interactive-accent-hover);
}
.cm-editor .local-gpt-action-palette .file-mention:active {
background: var(--interactive-accent-hover);
transform: translateY(var(--size-2-1));
}
.local-gpt-dropdown {
position: absolute;
top: 100%;
left: 0;
right: 0;
margin-top: calc(var(--line-height-normal) * -1em);
padding-top: calc(var(--line-height-normal) * 1em);
background: var(--background-primary);
border: var(--border-width) solid var(--background-modifier-border);
border-radius: 0 0 var(--radius-l) var(--radius-l);
box-shadow: var(--shadow-l);
max-height: 240px;
overflow-y: auto;
scroll-behavior: smooth;
z-index: 1;
}
.local-gpt-dropdown-item {
display: grid;
padding: var(--size-4-2) var(--size-4-3);
cursor: pointer;
border-bottom: var(--border-width) solid var(--background-modifier-border-hover);
transition: background-color var(--anim-duration-fast) ease;
font-size: var(--font-ui-small);
line-height: var(--line-height-tight);
}
.local-gpt-dropdown-item:last-child {
border-bottom: none;
}
.local-gpt-dropdown-item:hover,
.local-gpt-dropdown-item.local-gpt-selected {
background: var(--background-modifier-hover);
}
.local-gpt-dropdown-item.local-gpt-selected {
background: var(--interactive-accent);
color: var(--text-on-accent);
}
.local-gpt-file-name {
display: block;
font-weight: var(--font-ui-medium);
margin-bottom: var(--size-2-1);
}
.local-gpt-file-path {
display: block;
font-size: var(--font-ui-smaller);
color: var(--text-faint);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.local-gpt-dropdown-item.local-gpt-selected .local-gpt-file-path {
color: var(--text-on-accent);
opacity: 0.8;
}
.local-gpt-command-name {
display: block;
font-weight: var(--font-ui-medium);
margin-bottom: var(--size-2-1);
}
.local-gpt-command-description {
display: block;
font-size: var(--font-ui-smaller);
color: var(--text-faint);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.local-gpt-dropdown-item.local-gpt-selected .local-gpt-command-description {
color: var(--text-on-accent);
opacity: 0.8;
}
.cm-editor .local-gpt-action-palette .command-mention {
background: var(--color-accent);
color: var(--text-on-accent);
padding: var(--size-2-1) var(--size-4-2);
border-radius: var(--radius-s);
cursor: pointer;
user-select: none;
transition: background-color var(--anim-duration-fast) ease;
margin: 0 var(--size-2-1);
display: inline-block;
}
.cm-editor .local-gpt-action-palette .command-mention:hover {
background: var(--color-accent-hover);
}
.cm-editor .local-gpt-action-palette .command-mention:active {
background: var(--color-accent-hover);
transform: translateY(var(--size-2-1));
}
.cm-editor .local-gpt-action-palette:focus {
border-color: var(--interactive-accent);
box-shadow: 0 0 0 2px var(--interactive-accent), var(--shadow-s);
}
.cm-editor .local-gpt-fake-selection {
box-shadow: inset 0 0 0 9999px var(--text-selection), 0 0 0 calc((var(--line-height-normal) - 1) / 4 * 1em) var(--text-selection);
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
@keyframes local-gpt-dots {
0% {
content: "";
opacity: 1;
}
59% {
content: "";
opacity: 1;
}
60% {
content: ".";
opacity: 1;
}
70% {
content: "..";
opacity: 1;
}
80% {
content: "...";
opacity: 1;
}
100% {
opacity: 0.5;
content: "...";
}
}
@keyframes local-gpt-pulse {
0% {
opacity: 0.8;
}
50% {
opacity: 1;
}
100% {
opacity: 0.8;
}
}
.local-gpt-loading::after {
display: inline-table;
white-space: pre;
text-align: left;
}
.local-gpt-loading.local-gpt-dots::after {
content: "\280b\a\2819\a\2839\a\2838\a\283c\a\2834\a\2826\a\2827\a\2807\a\280f";
animation: local-gpt-spin10 1s steps(10) infinite;
}
.local-gpt-status {
position: relative;
}
.local-gpt-status::before {
content: attr(data-text);
background-image: linear-gradient(to right, var(--status-bar-text-color) 30%, var(--interactive-accent-hover) 50%, var(--status-bar-text-color) 70%);
background-clip: text;
-webkit-text-fill-color: transparent;
box-decoration-break: slice;
display: inline-block;
overflow: hidden;
white-space: nowrap;
animation: local-gpt-expandText 0.3s ease-out forwards, local-gpt-gradientMove 1.7s linear infinite;
background-size: 200% 100%;
background-position: -50% 0;
}
.local-gpt-status::after {
content: attr(data-text);
position: absolute;
padding: 10px;
margin-left: -10px;
color: var(--interactive-accent-hover);
display: inline-block;
white-space: nowrap;
filter: blur(1px);
mask-image: linear-gradient(to right, transparent 30%, black 50%, transparent 70%);
mask-size: 200% 100%;
mask-position: -50% 0;
animation: local-gpt-maskMove 1.7s linear infinite;
mix-blend-mode: color-dodge;
}
@keyframes local-gpt-spin10 {
to {
transform: translateY(-15em);
}
}
@keyframes local-gpt-expandText {
from {
max-width: 0;
}
to {
max-width: 100%;
}
}
@keyframes local-gpt-gradientMove {
0% {
background-position: -50% 0;
}
100% {
background-position: 150% 0;
}
}
@keyframes local-gpt-maskMove {
0% {
mask-position: -50% 0;
}
100% {
mask-position: 150% 0;
}
}
.local-gpt-provider-name {
display: block;
font-weight: var(--font-ui-medium);
margin-bottom: var(--size-2-1);
}
.local-gpt-provider-url {
display: block;
font-size: var(--font-ui-smaller);
color: var(--text-faint);
white-space: nowrap;
max-width: 50%;
overflow: hidden;
text-overflow: ellipsis;
}
.local-gpt-dropdown-item.local-gpt-selected .local-gpt-provider-url {
color: var(--text-on-accent);
opacity: 0.8;
}
.cm-editor .local-gpt-provider-badge {
position: absolute;
left: 0;
right: 0;
bottom: calc(var(--line-height-normal) * -1em);
padding: var(--size-2-1) var(--size-4-2);
border-radius: var(--radius-m);
color: var(--text-muted);
background: var(--background-secondary);
border: var(--border-width) solid var(--background-modifier-border);
font-size: var(--font-ui-medium);
font-weight: var(--font-light);
pointer-events: none;
z-index: 0;
display: grid;
align-items: end;
justify-items: end;
height: 3em;
}
.cm-editor .local-gpt-provider-badge-label {
justify-self: end;
align-self: end;
font-size: var(--font-smallest);
line-height: var(--line-height-normal);
color: var(--text-faint);
text-shadow: var(--background-primary) 0 0 1px, var(--background-primary) 0 0 1px;
transition: color 250ms ease-in-out, text-shadow 250ms ease-in-out;
transition-delay: 0s;
}
.cm-editor .local-gpt-provider-badge-label.local-gpt-badge-highlight {
color: var(--text-accent);
text-shadow:
0 0 1px var(--background-primary),
0 0 2px var(--background-primary),
0 0 4px var(--color-accent-2);
transition-delay: 0.5s;
}
.local-gpt-provider-header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: var(--size-2-2);
margin-bottom: var(--size-2-1);
}
.local-gpt-provider-model {
display: block;
font-size: var(--font-ui-smaller);
color: var(--text-faint);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.local-gpt-dropdown-item.local-gpt-selected .local-gpt-provider-model {
color: var(--text-on-accent);
opacity: 0.9;
}
.local-gpt-action-row {
display: flex;
align-items: center;
cursor: grab;
}
.local-gpt-drag-handle {
display: flex;
align-items: center;
margin-inline-end: var(--size-4-2);
color: var(--text-faint);
}
.local-gpt-drag-handle:hover {
color: var(--text-muted);
}
.local-gpt-sortable-chosen,
.local-gpt-sortable-drag {
background: var(--background-primary);
border-radius: var(--radius-m);
cursor: grabbing;
}
.local-gpt-sortable-ghost {
opacity: 0;
}
.local-gpt-actions-container .setting-item:first-child {
padding-top: var(--size-4-2);
}
.setting-item > .local-gpt-drag-handle {
margin-inline-end: var(--size-4-2);
}
.local-gpt-drop-animate {
position: relative;
transform-origin: center;
animation: local-gpt-goo-in var(--anim-duration-moderate) ease-out both;
will-change: transform;
}
.local-gpt-drop-animate::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: var(--background-modifier-hover);
opacity: 0;
pointer-events: none;
animation: local-gpt-goo-glow var(--anim-duration-moderate) ease-out both;
}
@keyframes local-gpt-goo-in {
0% {
transform: translateY(-6px) scaleY(0.96);
}
35% {
transform: translateY(2px) scaleY(1.04);
}
60% {
transform: translateY(-2px) scaleY(0.99);
}
100% {
transform: translateY(0) scaleY(1);
}
}
.local-gpt-sortable-drag {
position: relative;
transform-origin: center;
box-shadow: var(--shadow-m);
z-index: var(--layer-popover);
will-change: transform;
}
.local-gpt-sortable-drag::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: var(--background-modifier-hover);
opacity: 0.25;
pointer-events: none;
}
.local-gpt-drop-neighbor-prev {
animation: local-gpt-goo-nudge-prev var(--anim-duration-fast) ease-out both;
will-change: transform;
}
.local-gpt-drop-neighbor-next {
animation: local-gpt-goo-nudge-next var(--anim-duration-fast) ease-out both;
will-change: transform;
}
@keyframes local-gpt-goo-nudge-prev {
0% {
transform: translateY(0);
}
30% {
transform: translateY(-3px);
}
100% {
transform: translateY(0);
}
}
@keyframes local-gpt-goo-nudge-next {
0% {
transform: translateY(0);
}
30% {
transform: translateY(3px);
}
100% {
transform: translateY(0);
}
}
@keyframes local-gpt-goo-glow {
0% {
opacity: 0.35;
}
100% {
opacity: 0;
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,11 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.16.4",
"description": "Create and use templates",
"minAppVersion": "1.5.0",
"author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13",
"helpUrl": "https://silentvoid13.github.io/Templater/",
"isDesktopOnly": false
}

View File

@ -0,0 +1,226 @@
.templater_search {
width: calc(100% - 20px);
}
.templater_div {
border-top: 1px solid var(--background-modifier-border);
}
.templater_div > .setting-item {
border-top: none !important;
align-self: center;
}
.templater_div > .setting-item > .setting-item-control {
justify-content: space-around;
padding: 0;
width: 100%;
}
.templater_div
> .setting-item
> .setting-item-control
> .setting-editor-extra-setting-button {
align-self: center;
}
.templater_donating {
margin: 10px;
}
.templater_title {
margin: 0;
padding: 0;
margin-top: 5px;
text-align: center;
}
.templater_template {
align-self: center;
margin-left: 5px;
margin-right: 5px;
width: 70%;
}
.templater_cmd {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.templater_div2 > .setting-item {
align-content: center;
justify-content: center;
}
.templater-prompt-div,
.templater-multisuggester-div {
display: flex;
}
.templater-prompt-form {
display: flex;
flex-grow: 1;
}
.templater-prompt-input,
.templater-multisuggester-input {
flex-grow: 1;
}
.templater-button-div {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 1rem;
}
textarea.templater-prompt-input {
height: 10rem;
}
textarea.templater-prompt-input:focus {
border-color: var(--interactive-accent);
}
.templater-multisuggester-list {
margin: 1.5em 0;
}
.cm-s-obsidian .templater-command-bg {
left: 0px;
right: 0px;
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command {
font-size: 0.85em;
font-family: var(--font-monospace);
line-height: 1.3;
}
.cm-s-obsidian .templater-inline .cm-templater-command {
background-color: var(--background-primary-alt);
}
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
font-weight: bold;
}
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
color: var(--code-property, #008bff);
}
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
color: var(--code-function, #c0d700);
}
.cm-s-obsidian .cm-templater-command.cm-keyword {
color: var(--code-keyword, #00a7aa);
font-weight: normal;
}
.cm-s-obsidian .cm-templater-command.cm-atom {
color: var(--code-normal, #f39b35);
}
.cm-s-obsidian .cm-templater-command.cm-value,
.cm-s-obsidian .cm-templater-command.cm-number,
.cm-s-obsidian .cm-templater-command.cm-type {
color: var(--code-value, #a06fca);
}
.cm-s-obsidian .cm-templater-command.cm-def,
.cm-s-obsidian .cm-templater-command.cm-type.cm-def {
color: var(--code-normal, var(--text-normal));
}
.cm-s-obsidian .cm-templater-command.cm-property,
.cm-s-obsidian .cm-templater-command.cm-property.cm-def,
.cm-s-obsidian .cm-templater-command.cm-attribute {
color: var(--code-function, #98e342);
}
.cm-s-obsidian .cm-templater-command.cm-variable,
.cm-s-obsidian .cm-templater-command.cm-variable-2,
.cm-s-obsidian .cm-templater-command.cm-variable-3,
.cm-s-obsidian .cm-templater-command.cm-meta {
color: var(--code-property, #d4d4d4);
}
.cm-s-obsidian .cm-templater-command.cm-callee,
.cm-s-obsidian .cm-templater-command.cm-operator,
.cm-s-obsidian .cm-templater-command.cm-qualifier,
.cm-s-obsidian .cm-templater-command.cm-builtin {
color: var(--code-operator, #fc4384);
}
.cm-s-obsidian .cm-templater-command.cm-tag {
color: var(--code-tag, #fc4384);
}
.cm-s-obsidian .cm-templater-command.cm-comment,
.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag,
.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
color: var(--code-comment, #696d70);
}
.cm-s-obsidian .cm-templater-command.cm-string,
.cm-s-obsidian .cm-templater-command.cm-string-2 {
color: var(--code-string, #e6db74);
}
.cm-s-obsidian .cm-templater-command.cm-header,
.cm-s-obsidian .cm-templater-command.cm-hr {
color: var(--code-keyword, #da7dae);
}
.cm-s-obsidian .cm-templater-command.cm-link {
color: var(--code-normal, #696d70);
}
.cm-s-obsidian .cm-templater-command.cm-error {
border-bottom: 1px solid #c42412;
}
.CodeMirror-hints {
position: absolute;
z-index: 10;
overflow: hidden;
list-style: none;
margin: 0;
padding: 2px;
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
border-radius: 3px;
border: 1px solid silver;
background: white;
font-size: 90%;
font-family: monospace;
max-height: 20em;
overflow-y: auto;
}
.CodeMirror-hint {
margin: 0;
padding: 0 4px;
border-radius: 2px;
white-space: pre;
color: black;
cursor: pointer;
}
li.CodeMirror-hint-active {
background: #08f;
color: white;
}

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

@ -0,0 +1,231 @@
{
"main": {
"id": "12b4064ee8da62c7",
"type": "split",
"children": [
{
"id": "bcc68500aa57ead2",
"type": "tabs",
"children": [
{
"id": "929d66922c9fed66",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "README.md",
"mode": "source",
"source": false,
"backlinks": true,
"backlinkOpts": {
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
},
"icon": "lucide-file",
"title": "README"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "336d2a6b274ef719",
"type": "split",
"children": [
{
"id": "aa680c35a6a2a492",
"type": "tabs",
"children": [
{
"id": "4fd243e680befac5",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "文件列表"
}
},
{
"id": "87214c8d838ba29e",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "搜索"
}
},
{
"id": "b49f5e211b74c5c6",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "书签"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "bcd5a1ddf3bf1e55",
"type": "split",
"children": [
{
"id": "de6382cd433e8416",
"type": "tabs",
"children": [
{
"id": "5c938eb0880f619c",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "README.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "README 的反向链接列表"
}
},
{
"id": "efac76290bc96c26",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "README.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "README 的出链列表"
}
},
{
"id": "7999a438f18b01e7",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "标签"
}
},
{
"id": "f6d74e23774b6a7c",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "添加笔记属性"
}
},
{
"id": "e033c7e7c3201a5a",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "README.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "README 的大纲"
}
},
{
"id": "ed4ec91565ef0c9b",
"type": "leaf",
"state": {
"type": "footnotes",
"state": {
"file": "README.md"
},
"icon": "lucide-file-signature",
"title": "脚注"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"bases:创建新数据库": false,
"workspaces:管理工作区布局": false,
"audio-recorder:开始/结束录音": false,
"random-note:开始漫游笔记": false,
"zk-prefixer:创建时间戳笔记": false
}
},
"active": "929d66922c9fed66",
"lastOpenFiles": [
"202512271849.md",
"未命名 3.md",
"README.md",
"未命名 4.md",
"未命名 5.md",
"未命名 2.md",
"未命名 1.md",
"未命名.md",
"attachments/Recording 20251227184533.m4a",
"attachments/Recording 20251227184524.m4a",
"未命名",
"202512271845.md",
"202512271846.md",
"attachments",
"202512271844.md",
"未命名.base"
]
}

4
.obsidian/workspaces.json vendored Normal file
View File

@ -0,0 +1,4 @@
{
"workspaces": {},
"active": "2"
}