vault backup: 2026-05-28 18:30:17

This commit is contained in:
2026-05-28 18:30:17 -04:00
parent e42491a238
commit 67d3358c86
47 changed files with 1708 additions and 144 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "easy-copy",
"name": "Easy Copy",
"version": "1.6.4",
"version": "1.7.1",
"minAppVersion": "1.8.7",
"description": "Easily copy the text within inline code, bold text (and many other formats), or quickly generate an elegant link to a heading.",
"author": "Moy",
+8
View File
@@ -0,0 +1,8 @@
/*!
* Inline Spoilers for Obsidian
* https://github.com/logonoff/obsidian-inline-spoilers
* SPDX-License-Identifier: GPL-3.0-or-later
*/
"use strict";var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var C=(t,e)=>{for(var i in e)u(t,i,{get:e[i],enumerable:!0})},_=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of N(e))!A.call(t,o)&&o!==i&&u(t,o,{get:()=>e[o],enumerable:!(s=y(e,o))||s.enumerable});return t};var v=t=>_(u({},"__esModule",{value:!0}),t);var H={};C(H,{default:()=>g});module.exports=v(H);var D=require("@codemirror/language"),x=require("@codemirror/state"),c=require("@codemirror/view"),n=require("obsidian"),P=/\|\|(.+?)\|\|/g,M="p, li, h1, h2, h3, h4, h5, h6, blockquote, em, strong, b, i, a, th, td",T=t=>{if(t.nodeType===Node.TEXT_NODE){if(!t.textContent||!t.parentNode)return;let e=t.textContent.split(/(\|\|[^|]+\|\|)/g),i=document.createDocumentFragment();for(let s of e)if(P.test(s)){let o=s.slice(2,-2),l=createSpan({cls:"inline_spoilers-spoiler",text:o});i.appendChild(l)}else{let o=document.createTextNode(s);i.appendChild(o)}t.parentNode.replaceChild(i,t)}else t.nodeType===Node.ELEMENT_NODE&&Array.from(t.childNodes).forEach(T)},w=(t,e)=>{let i=t.findAll(M);for(let o of i)Array.from(o.childNodes).forEach(T);let s=t.findAll(".inline_spoilers-spoiler");for(let o of s)e.registerDomEvent(o,"click",()=>{o.classList.toggle("inline_spoilers-revealed")})},V=t=>{let e=Array.from(t.containerEl.querySelectorAll(".inline_spoilers-spoiler"));for(let i of e){let s=i.parentNode,o=document.createTextNode(`||${i.innerText}||`);s&&s.replaceChild(o,i)}},L=c.Decoration.mark({class:"inline_spoilers-editor-spoiler",tagName:"span"}),R=c.Decoration.mark({class:"inline_spoilers-editor-spoiler-delimiter",tagName:"span"}),m=class{constructor(e){this.decorations=this.buildDecorations(e)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=this.buildDecorations(e.view))}destroy(){}buildDecorations(e){let i=new x.RangeSetBuilder,s=[];for(let{from:o,to:l}of e.visibleRanges)(0,D.syntaxTree)(e.state).iterate({from:o,to:l,enter(E){let k=e.state.sliceDoc(E.from,E.to),h;for(;(h=P.exec(k))!==null;){let a=h.index,p=a+h[0].length,S=e.state.sliceDoc(a,p);!S.startsWith("||")&&!S.endsWith("||")||(s.push({from:a,to:a+2,isDelimiter:!0}),s.push({from:a+2,to:p-2,isDelimiter:!1}),s.push({from:p-2,to:p,isDelimiter:!0}))}}});s.sort((o,l)=>o.from-l.from);for(let o of s)i.add(o.from,o.to,o.isDelimiter?R:L);return i.finish()}},I={decorations:t=>t.decorations},d=c.ViewPlugin.fromClass(m,I),r=[],O=t=>{r.includes(d)||r.push(d),t.updateOptions()},b=t=>{let e=r.indexOf(d);e!==-1&&r.splice(e,1),t.updateOptions()},W={showAllSpoilers:!1,enableEditorMode:!1},f=class extends n.PluginSettingTab{constructor(e,i){super(e,i),this.plugin=i}display(){let{containerEl:e}=this;e.empty(),new n.Setting(e).setName("Reveal all spoilers").setDesc("Always show all inline spoilers, regardless of whether they are clicked or not.").addToggle(i=>i.setValue(this.plugin.settings.showAllSpoilers).onChange(async s=>{this.plugin.settings.showAllSpoilers=s,this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",s),await this.plugin.saveSettings()})),new n.Setting(e).setName("Hide spoilers in editor view (experimental)").setDesc("Hide spoilers in the editor until your cursor is on the same line as the spoiler.").addToggle(i=>i.setValue(this.plugin.settings.enableEditorMode).onChange(async s=>{this.plugin.settings.enableEditorMode=s,s?O(this.app.workspace):b(this.app.workspace),await this.plugin.saveSettings()}))}},g=class extends n.Plugin{async onload(){await this.loadSettings();let e=this.app.workspace.containerEl.querySelector(".markdown-reading-view");e&&w(e,this),this.registerMarkdownPostProcessor(i=>{w(i,this)}),this.addCommand({id:"create-spoiler",name:"Create spoiler",editorCallback:i=>{let s=i.getSelection();i.replaceSelection(`||${s}||`)}}),this.registerEditorExtension(r),this.addSettingTab(new f(this.app,this))}onunload(){this.app.workspace.containerEl.classList.remove("inline_spoilers-revealed"),V(this.app.workspace),b(this.app.workspace)}async loadSettings(){this.settings=Object.assign({},W,await this.loadData()),this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",this.settings.showAllSpoilers),this.settings.enableEditorMode&&r.push(d)}async saveSettings(){await this.saveData(this.settings)}};
/* nosourcemap */
+10
View File
@@ -0,0 +1,10 @@
{
"id": "inline-spoilers",
"name": "Inline spoilers",
"version": "1.2.5",
"minAppVersion": "1.6.5",
"description": "Adds Discord-like syntax for inline spoilers.",
"author": "logonoff",
"authorUrl": "https://logonoff.co",
"isDesktopOnly": false
}
+72
View File
@@ -0,0 +1,72 @@
/*!
* Inline Spoilers for Obsidian
* https://github.com/logonoff/obsidian-inline-spoilers
* SPDX-License-Identifier: GPL-3.0-or-later
*/
body {
--inline-spoilers-hidden-foreground: transparent;
--inline-spoilers-hidden-background: var(--interactive-accent);
--inline-spoilers-revealed-foreground: var(--text-accent);
--inline-spoilers-revealed-background: hsla(var(--color-accent-hsl), 0.075);
--inline-spoilers-spoiler-radius: var(--radius-s);
}
/* spoiler bar */
.inline_spoilers-spoiler,
.inline_spoilers-editor-spoiler,
.inline_spoilers-editor-spoiler-delimiter {
/* obscured */
background-color: var(--inline-spoilers-hidden-background) !important;
color: var(--inline-spoilers-hidden-foreground) !important;
}
/** used when a hidden spoiler is revealed by clicking in reader mode */
.inline_spoilers-spoiler.inline_spoilers-revealed,
/** used when a hidden spoiler is revealed in editor mode */
.cm-active .inline_spoilers-editor-spoiler,
.cm-active .inline_spoilers-editor-spoiler-delimiter,
/** used when a hidden spoiler is revealed using "Reveal all spoilers" */
.inline_spoilers-revealed .inline_spoilers-spoiler,
.inline_spoilers-revealed .inline_spoilers-editor-spoiler,
.inline_spoilers-revealed .inline_spoilers-editor-spoiler-delimiter {
/* revealed */
background-color: var(--inline-spoilers-revealed-background) !important;
color: var(--inline-spoilers-revealed-foreground) !important;
}
/* reader */
.inline_spoilers-spoiler {
border-radius: var(--inline-spoilers-spoiler-radius);
}
/* editor */
.is-live-preview .inline_spoilers-editor-spoiler {
border-radius: var(--inline-spoilers-spoiler-radius);
}
.is-live-preview .cm-active .inline_spoilers-editor-spoiler {
/* contiguous border radius with the delimiter */
border-radius: 0em;
}
/* delimiter */
.cm-line .inline_spoilers-editor-spoiler-delimiter {
&:has(+ .inline_spoilers-editor-spoiler) {
border-radius: var(--inline-spoilers-spoiler-radius) 0 0 var(--inline-spoilers-spoiler-radius);
}
&:is(.inline_spoilers-editor-spoiler + .inline_spoilers-editor-spoiler-delimiter) {
border-radius: 0 var(--inline-spoilers-spoiler-radius) var(--inline-spoilers-spoiler-radius) 0;
}
}
.is-live-preview .inline_spoilers-editor-spoiler-delimiter {
display: none;
}
.is-live-preview .cm-active .inline_spoilers-editor-spoiler-delimiter {
display: unset;
}
+3 -1
View File
@@ -85,7 +85,7 @@
"pageTransclusionCharLimit": 200,
"wordWrappingDefault": 0,
"removeTransclusionQuoteSigns": true,
"iframelyAllowed": true,
"oEmbedAllowed": false,
"pngExportScale": 1,
"exportWithTheme": true,
"exportWithBackground": true,
@@ -99,6 +99,7 @@
"embedType": "excalidraw",
"embedMarkdownCommentLinks": true,
"embedWikiLink": true,
"embedPlaceholderImage": true,
"syncExcalidraw": false,
"experimentalFileType": false,
"experimentalFileTag": "✏️",
@@ -111,6 +112,7 @@
"zoteroCompatibility": false,
"fieldSuggester": true,
"enableOnloadScripts": false,
"enableCommandLinks": false,
"compatibilityMode": false,
"drawingOpenCount": 0,
"library": "deprecated",
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,12 +1,12 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.23.3",
"minAppVersion": "1.5.7",
"version": "2.23.7",
"minAppVersion": "1.8.7",
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
"author": "Zsolt Viczian",
"authorUrl": "https://excalidraw-obsidian.online",
"fundingUrl": "https://ko-fi.com/zsolt",
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
"isDesktopOnly": false
}
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "obsidian-quiet-outline",
"name": "Quiet Outline",
"version": "0.5.14",
"minAppVersion": "1.7.2",
"description": "Make outline quiet and more powerful, including no-auto-expand, rendering heading as markdown, and search support.",
"author": "the_tree",
"authorUrl": "",
"fundingUrl": "https://www.buymeacoffee.com/thtree",
"isDesktopOnly": false
}
+430
View File
@@ -0,0 +1,430 @@
.quiet-outline .n-tree {
padding-top: 5px;
}
/* RTL language support */
.quiet-outline .n-tree .n-tree-node-content :is(p, h1, h2, h3, h4, h5) {
unicode-bidi: var(--f4d4e7c4);
}
/* ============ */
/* 彩虹大纲线 */
/* rainbow line */
/* ============ */
.quiet-outline .n-tree .n-tree-node-indent {
content: "";
height: unset;
align-self: stretch;
}
.quiet-outline .n-tree-node-indent {
position: relative;
}
.quiet-outline .n-tree-node-indent::after {
content: "";
position: absolute;
height: 100%;
right: 8px;
}
:is(
.quiet-outline .level-2 .n-tree-node-indent:first-child,
.quiet-outline .level-3 .n-tree-node-indent:first-child,
.quiet-outline .level-4 .n-tree-node-indent:first-child,
.quiet-outline .level-5 .n-tree-node-indent:first-child,
.quiet-outline .level-6 .n-tree-node-indent:first-child
)::after {
border-right: var(--nav-indentation-guide-width) solid var(--v04832a3a);
/* border-right: 2px solid rgb(253, 139, 31, 0.6); */
}
:is(
.quiet-outline .level-3 .n-tree-node-indent:nth-child(2),
.quiet-outline .level-4 .n-tree-node-indent:nth-child(2),
.quiet-outline .level-5 .n-tree-node-indent:nth-child(2),
.quiet-outline .level-6 .n-tree-node-indent:nth-child(2)
)::after {
border-right: var(--nav-indentation-guide-width) solid var(--v04832a38);
/* border-right: 2px solid rgb(255, 223, 0, 0.6); */
}
:is(
.quiet-outline .level-4 .n-tree-node-indent:nth-child(3),
.quiet-outline .level-5 .n-tree-node-indent:nth-child(3),
.quiet-outline .level-6 .n-tree-node-indent:nth-child(3)
)::after {
border-right: var(--nav-indentation-guide-width) solid var(--v04832a36);
/* border-right: 2px solid rgb(7, 235, 35, 0.6); */
}
:is(
.quiet-outline .level-5 .n-tree-node-indent:nth-child(4),
.quiet-outline .level-6 .n-tree-node-indent:nth-child(4)
)::after {
border-right: var(--nav-indentation-guide-width) solid var(--v04832a34);
/* border-right: 2px solid rgb(45, 143, 240, 0.6); */
}
.quiet-outline .level-6 .n-tree-node-indent:nth-child(5)::after {
border-right: var(--nav-indentation-guide-width) solid var(--v04832a32);
/* border-right: 2px solid rgb(188, 1, 226, 0.6); */
}
/* located heading*/
.n-tree-node.located p {
color: var(--v1c14051a);
}
/* adjust indent */
/* .quiet-outline .n-tree .n-tree-node .n-tree-node-content {
padding-left: 0;
} */
.quiet-outline .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__prefix {
margin-right: 0;
}
.quiet-outline .n-tree .n-tree-node .n-tree-node-content .n-tree-node-content__prefix > *:last-child {
margin-right: 8px;
}
.n-tree-node-switcher__icon {
display: flex;
align-items: center;
justify-content: center;
}
/* Tab Styles */
/* Custom Style Variables */
.quiet-outline {
--custom-font-size: var(--nav-item-size);
--custom-font-family: inherit;
--custom-font-weight: inherit;
--custom-line-height: 1.6em;
--custom-line-gap: 0px;
--h1-color: inherit;
--h2-color: inherit;
--h3-color: inherit;
--h4-color: inherit;
--h5-color: inherit;
--h6-color: inherit;
}
/* ConfirmModal: improve spacing/typography for a cleaner layout */
.quiet-outline-confirm-modal {
/* Slightly increase line-height for multi-line warnings */
line-height: 1.5;
}
/* Title spacing */
.quiet-outline-confirm-modal .modal-title {
margin-bottom: 8px;
}
/* Paragraph spacing (supports multi-paragraph messages) */
.quiet-outline-confirm-modal p {
margin: 0;
}
/* Spacing between paragraphs */
.quiet-outline-confirm-modal p + p {
margin-top: 10px;
}
/* ConfirmModal: right-aligned buttons with spacing + vertically centered icons */
.quiet-outline-confirm-modal .quiet-outline-confirm-modal__buttons {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 14px;
}
/* Make buttons feel consistent and aligned */
.quiet-outline-confirm-modal .quiet-outline-confirm-modal__buttons button {
display: inline-flex;
align-items: center;
min-height: 30px;
}
/* Add spacing between icon and label, and keep the icon vertically centered */
.quiet-outline-confirm-modal .quiet-outline-confirm-modal__btn-icon {
display: inline-flex;
align-items: center;
justify-content: center;
margin-right: 6px;
}
/* Fix SVG baseline alignment so it appears visually centered inside the button */
.quiet-outline-confirm-modal .quiet-outline-confirm-modal__btn-icon svg {
display: block;
}
.quiet-outline-tabs {
display: flex;
border-bottom: 1px solid var(--background-modifier-border);
margin-bottom: 16px;
}
.quiet-outline-tabs button {
background: none;
border: none;
padding: 8px 16px;
cursor: pointer;
color: var(--text-muted);
border-bottom: 2px solid transparent;
transition: all 0.2s ease;
font-size: var(--font-ui-medium);
}
.quiet-outline-tabs button:hover {
color: var(--text-normal);
background-color: var(--background-modifier-hover);
}
.quiet-outline-tabs button.active {
color: var(--text-accent);
border-bottom-color: var(--text-accent);
font-weight: var(--font-semibold);
}
.quiet-outline-export-format-input {
width: 100%;
}
.quiet-outline-tab-content {
min-height: 400px;
}
.quiet-outline .n-tree {
font-size: var(--custom-font-size);
font-family: var(--custom-font-family);
font-weight: var(--custom-font-weight);
}
.quiet-outline .n-tree-node-wrapper {
padding: 0px;
}
.quiet-outline .n-tree-node.n-tree-node--selectable {
align-items: center;
}
/* heading的间距,通过行高来设置 */
/* heading line spacing */
.quiet-outline .n-tree-node .n-tree-node-content {
line-height: var(--custom-line-height);
min-height: 10px;
margin-bottom: var(--custom-line-gap);
}
.quiet-outline .n-tree-node-content__text p {
margin: 0;
}
/* ellipsis */
.quiet-outline .n-tree.ellipsis {
overflow-x: hidden;
}
.quiet-outline .n-tree.ellipsis .n-tree-node .n-tree-node-content p {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.quiet-outline .n-tree.ellipsis .n-tree-node-content__text {
overflow: hidden;
}
.quiet-outline .n-tree.ellipsis .n-tree-node-content {
overflow: hidden;
flex: 1;
}
.quiet-outline
.n-tree.n-tree--block-line
.n-tree-node:not(.n-tree-node--disabled).n-tree-node--pending {
background-color: unset;
}
/* 悬浮时的背景颜色 */
.quiet-outline
.n-tree.n-tree--block-line
.n-tree-node:not(.n-tree-node--disabled):hover {
color: var(--nav-item-color-active);
background-color: var(--nav-item-background-active);
font-weight: var(--nav-item-weight-active);
}
/* 功能栏 */
.quiet-outline .function-bar {
display: flex;
align-items: center;
padding: 0px;
margin-bottom: 5px;
}
.quiet-outline .function-bar .n-button {
margin-right: 5px;
text-align: center;
}
.quiet-outline .function-bar .n-input {
flex: 1;
min-width: 10px;
}
/* avoid <input> style overriding by theme */
.quiet-outline .function-bar input[type="text"] {
&:hover,
&:focus {
background-color: transparent;
box-shadow: none;
border: none;
}
background-color: transparent;
box-shadow: none;
border: none;
}
/* 图标大小 */
.quiet-outline .n-button__icon {
--n-icon-size: 22px;
font-size: 22px;
}
.quiet-outline .n-tree-node-content .n-input {
.n-input-wrapper {
padding: 0px;
/*padding-left: 4px;
padding-right: 4px;*/
}
.n-input__input-el {
line-height: var(--custom-line-height);
font-size: var(--custom-font-size);
height: var(--custom-line-height);
}
}
.quiet-outline code {
/* color:var(--text-color-code, var(--code-normal)); */
font-weight: bold;
/* font-size: var(--font-size-code, var(--code-size)); */
font-family: var(--font-monospace);
background-color: var(--code-background);
border-radius: var(--radius-s);
}
.quiet-outline a.tag {
white-space: nowrap;
padding: 0.2em 0.6em;
}
.quiet-outline a:not(.tag) {
color: var(--link-external-color);
}
.quiet-outline span.internal-link {
color: var(--link-color);
}
.quiet-outline mark {
background-color: var(--text-highlight-bg);
color: var(--text-normal);
}
/* ===================== */
/* 对不同级别标题进行设置 */
/* ===================== */
.n-tree .n-tree-node-switcher {
height: 0px;
}
/* 设置除一级标题之外的所有标题 */
/* setting h2-h6 */
.quiet-outline [class*="level-"]:not(.level-1) .n-tree-node-content {
/*
color: red;
font-weight:bold;
*/
font-size: 1em;
}
/* Custom font colors for different heading levels */
.quiet-outline .level-1 .n-tree-node-content {
color: var(--h1-color);
}
.quiet-outline .level-2 .n-tree-node-content {
color: var(--h2-color);
}
.quiet-outline .level-3 .n-tree-node-content {
color: var(--h3-color);
}
.quiet-outline .level-4 .n-tree-node-content {
color: var(--h4-color);
}
.quiet-outline .level-5 .n-tree-node-content {
color: var(--h5-color);
}
.quiet-outline .level-6 .n-tree-node-content {
color: var(--h6-color);
}
/* location */
.n-tree-node.located {
font-weight: bold !important;
:is(a) {
font-weight: bold !important;
}
}
/* .n-tree-node code {
font-weight: 500 !important;
} */
.n-tree-node.located code {
font-weight: 1000 !important;
}
.n-tree-node.located mjx-math {
font-weight: bold;
}
.n-tree.n-tree--block-line
.n-tree-node-wrapper
.n-tree-node:not(.n-tree-node--disabled).n-tree-node--selected {
background-color: transparent;
}
.n-tree.n-tree--block-line:focus
.n-tree-node:not(.n-tree-node--disabled).n-tree-node--selected {
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
}
.view-content:has(.quiet-outline) {
padding-bottom: 0px;
}
.quiet-outline .n-tree.n-tree--block-node.n-tree--block-line {
padding-bottom: var(--size-4-8);
}
/* 固定功能栏 */
.quiet-outline {
height: 100%;
}
.quiet-outline .n-config-provider {
display: flex;
flex-direction: column;
height: 100%;
}
.quiet-outline .n-tree {
overflow: auto;
padding-inline: 2px;
}
/*remove 'no data'*/
.n-tree__empty {
display: none;
}
/*fix content blur in canvas embed markdown*/
.canvas-node .markdown-embed-content .is-flashing {
mix-blend-mode: normal;
}
/* experimental */
/*$vite$:1*/
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.20.4",
"version": "2.20.5",
"description": "Advanced templating and automation using handlebars-like syntax.",
"minAppVersion": "1.12.2",
"author": "SilentVoid",