Merge remote-tracking branch 'origin/main'

# Conflicts:
#	.obsidian/workspace.json
This commit is contained in:
CrazyJasonwell committed 2025-08-08 17:47:17 +08:00
commit c7b872a34e
88 files changed
+45669 -20334

No files matched your search

BIN
View File
Binary file not shown.
+1 -2
View File
@@ -48,6 +48,5 @@
"podnotes",
"sheet-plus",
"obsidian-excel-to-markdown-table",
"obsidian-clipper",
"obsidian-readwise"
"obsidian-clipper"
]
BIN
View File
Binary file not shown.
+122 -122
View File
@@ -28,29 +28,29 @@ var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
@@ -2320,27 +2320,27 @@ async function runAppleScriptAsync(script) {
return stdout;
}
obsidian.addIcon('DEVONthink-logo-neutral', `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 75 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-24,-28)">
<g>
<path d="M49.214,61.093L27.76,73.903C27.76,73.903 33.326,94.068 60.807,94.212C84.019,94.333 94.959,74.348 95.626,63.402C96.311,52.176 90.679,31.855 69.477,31.855C43.67,31.855 47.178,59.386 49.214,61.093Z" style="fill:none;stroke:currentColor;stroke-width:6px;"/>
<path d="M65.37,59.193C56.43,57.776 60.045,46.29 67.466,46.434C72.172,46.525 77.034,49.196 77.319,57.169C77.529,63.05 73.829,69.654 63.674,69.882C53.519,70.11 49.214,61.093 49.214,61.093C49.214,61.093 55.701,71.918 47.914,78.584C38.756,86.423 27.922,73.893 27.922,73.893" style="fill:none;stroke:currentColor;stroke-width:6px;"/>
</g>
</g>
</svg>
obsidian.addIcon('DEVONthink-logo-neutral', `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 75 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-24,-28)">
<g>
<path d="M49.214,61.093L27.76,73.903C27.76,73.903 33.326,94.068 60.807,94.212C84.019,94.333 94.959,74.348 95.626,63.402C96.311,52.176 90.679,31.855 69.477,31.855C43.67,31.855 47.178,59.386 49.214,61.093Z" style="fill:none;stroke:currentColor;stroke-width:6px;"/>
<path d="M65.37,59.193C56.43,57.776 60.045,46.29 67.466,46.434C72.172,46.525 77.034,49.196 77.319,57.169C77.529,63.05 73.829,69.654 63.674,69.882C53.519,70.11 49.214,61.093 49.214,61.093C49.214,61.093 55.701,71.918 47.914,78.584C38.756,86.423 27.922,73.893 27.922,73.893" style="fill:none;stroke:currentColor;stroke-width:6px;"/>
</g>
</g>
</svg>
`);
obsidian.addIcon('DEVONthink-logo-blue', `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 75 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-24,-28)">
<g>
<path d="M49.214,61.093L27.76,73.903C27.76,73.903 33.326,94.068 60.807,94.212C84.019,94.333 94.959,74.348 95.626,63.402C96.311,52.176 90.679,31.855 69.477,31.855C43.67,31.855 47.178,59.386 49.214,61.093Z" style="fill:none;stroke:#36C6EE;stroke-width:6px;"/>
<path d="M65.37,59.193C56.43,57.776 60.045,46.29 67.466,46.434C72.172,46.525 77.034,49.196 77.319,57.169C77.529,63.05 73.829,69.654 63.674,69.882C53.519,70.11 49.214,61.093 49.214,61.093C49.214,61.093 55.701,71.918 47.914,78.584C38.756,86.423 27.922,73.893 27.922,73.893" style="fill:none;stroke:#36C6EE;stroke-width:6px;"/>
</g>
</g>
</svg>
obsidian.addIcon('DEVONthink-logo-blue', `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 75 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g transform="matrix(1,0,0,1,-24,-28)">
<g>
<path d="M49.214,61.093L27.76,73.903C27.76,73.903 33.326,94.068 60.807,94.212C84.019,94.333 94.959,74.348 95.626,63.402C96.311,52.176 90.679,31.855 69.477,31.855C43.67,31.855 47.178,59.386 49.214,61.093Z" style="fill:none;stroke:#36C6EE;stroke-width:6px;"/>
<path d="M65.37,59.193C56.43,57.776 60.045,46.29 67.466,46.434C72.172,46.525 77.034,49.196 77.319,57.169C77.529,63.05 73.829,69.654 63.674,69.882C53.519,70.11 49.214,61.093 49.214,61.093C49.214,61.093 55.701,71.918 47.914,78.584C38.756,86.423 27.922,73.893 27.922,73.893" style="fill:none;stroke:#36C6EE;stroke-width:6px;"/>
</g>
</g>
</svg>
`);
const DEFAULT_SETTINGS = {
ribbonButtonAction: 'open',
@@ -2431,53 +2431,53 @@ class DEVONlinkPlugin extends obsidian.Plugin {
let currentLinkType = this.settings.linkTypeSetting;
let wikiLinkLine = `"${relatedItemsPrefix}" & "[[" & name of eachRecord & "]]" & return`;
let DEVONthinkLinkLine = `"${relatedItemsPrefix}" & "[" & name of eachRecord & "](" & reference URL of eachRecord & ")" & return`;
let appleScript = `tell application id "DNtp"
if not running then
run
end if
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
set theNoteRecords to (lookup records with file "${noteFilename}" in thisDatabase)
if theNoteRecords is not {} then
set theNoteRecord to the first item in theNoteRecords
try
set seeAlso to compare record theNoteRecord to theNoteRecord's database
set listOfRecords to ""
set maximumItems to ${maximumRelatedItemsSetting}
set itemCount to 0
repeat with eachRecord in seeAlso
if itemCount is not 0 then
if itemCount is greater than maximumItems then
return listOfRecords
else
if ("${currentLinkType}" is equal to "intelligentLinking") then
if eachRecord's type is markdown then
if eachRecord's path contains "${vaultName}" then
set listOfRecords to listOfRecords & ${wikiLinkLine}
else
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
else
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
else if ("${currentLinkType}" is equal to "wikiLinks") then
set listOfRecords to listOfRecords & ${wikiLinkLine}
else if ("${currentLinkType}" is equal to "devonthinkURL") then
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
end if
end if
set itemCount to itemCount + 1
end repeat
return listOfRecords
on error
return "failure"
end try
end if
end repeat
return "failure"
end try
let appleScript = `tell application id "DNtp"
if not running then
run
end if
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
set theNoteRecords to (lookup records with file "${noteFilename}" in thisDatabase)
if theNoteRecords is not {} then
set theNoteRecord to the first item in theNoteRecords
try
set seeAlso to compare record theNoteRecord to theNoteRecord's database
set listOfRecords to ""
set maximumItems to ${maximumRelatedItemsSetting}
set itemCount to 0
repeat with eachRecord in seeAlso
if itemCount is not 0 then
if itemCount is greater than maximumItems then
return listOfRecords
else
if ("${currentLinkType}" is equal to "intelligentLinking") then
if eachRecord's type is markdown then
if eachRecord's path contains "${vaultName}" then
set listOfRecords to listOfRecords & ${wikiLinkLine}
else
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
else
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
else if ("${currentLinkType}" is equal to "wikiLinks") then
set listOfRecords to listOfRecords & ${wikiLinkLine}
else if ("${currentLinkType}" is equal to "devonthinkURL") then
set listOfRecords to listOfRecords & ${DEVONthinkLinkLine}
end if
end if
end if
set itemCount to itemCount + 1
end repeat
return listOfRecords
on error
return "failure"
end try
end if
end repeat
return "failure"
end try
end tell`;
let DEVONlinkResults = yield runAppleScriptAsync(appleScript);
if (DEVONlinkResults == "failure") {
@@ -2511,21 +2511,21 @@ class DEVONlinkPlugin extends obsidian.Plugin {
// let vaultPath = vaultAdapter.getBasePath(); // No longer needed, but leaving it in in case I ever decide to return to try to figure out how to get the path right. It would be a more robust solution than relying on filenames.
// let homeFolderPath = await runAppleScriptAsync('get POSIX path of the (path to home folder)'); // see above
// attempting to get path to work: await runAppleScriptAsync('tell application id "DNtp" to open window for record (first item in (lookup records with path "~' + vaultPath + '/' + notePath + '") in database (get database with uuid "'+ this.settings.databaseUUID + '")) with force'); // see above
let DEVONlinkResults = yield runAppleScriptAsync(`tell application id "DNtp"
activate
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
try
set theNoteRecord to (first item in (lookup records with file "${noteFilename}" in thisDatabase))
set newDEVONthinkWindow to open window for record theNoteRecord with force
activate
return "success"
end try
end repeat
on error
return "failure"
end try
let DEVONlinkResults = yield runAppleScriptAsync(`tell application id "DNtp"
activate
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
try
set theNoteRecord to (first item in (lookup records with file "${noteFilename}" in thisDatabase))
set newDEVONthinkWindow to open window for record theNoteRecord with force
activate
return "success"
end try
end repeat
on error
return "failure"
end try
end tell`);
if (DEVONlinkResults != "success") {
new obsidian.Notice("Sorry, DEVONlink couldn't find a matching record in your DEVONthink databases. Make sure your notes are indexed, the index is up to date, and the DEVONthink database with the indexed notes is open.");
@@ -2552,23 +2552,23 @@ class DEVONlinkPlugin extends obsidian.Plugin {
// let vaultPath = vaultAdapter.getBasePath(); // No longer needed, but leaving it in in case I ever decide to return to try to figure out how to get the path right. It would be a more robust solution than relying on filenames.
// let homeFolderPath = await runAppleScriptAsync('get POSIX path of the (path to home folder)'); // see above
// attempting to get path to work: await runAppleScriptAsync('tell application id "DNtp" to open window for record (first item in (lookup records with path "~' + vaultPath + '/' + notePath + '") in database (get database with uuid "'+ this.settings.databaseUUID + '")) with force'); // see above
let DEVONlinkResults = yield runAppleScriptAsync(`tell application id "DNtp"
activate
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
try
set theNoteRecord to (first item in (lookup records with file "${noteFilename}" in thisDatabase))
set theParentRecord to the first parent of theNoteRecord
set newDEVONthinkWindow to open window for record theParentRecord with force
set newDEVONthinkWindow's selection to theNoteRecord as list
activate
return "success"
end try
end repeat
on error
return "failure"
end try
let DEVONlinkResults = yield runAppleScriptAsync(`tell application id "DNtp"
activate
try
set theDatabases to databases
repeat with thisDatabase in theDatabases
try
set theNoteRecord to (first item in (lookup records with file "${noteFilename}" in thisDatabase))
set theParentRecord to the first parent of theNoteRecord
set newDEVONthinkWindow to open window for record theParentRecord with force
set newDEVONthinkWindow's selection to theNoteRecord as list
activate
return "success"
end try
end repeat
on error
return "failure"
end try
end tell`);
if (DEVONlinkResults != "success") {
new obsidian.Notice("Sorry, DEVONlink couldn't find a matching record in your DEVONthink databases. Make sure your notes are indexed, the index is up to date, and the DEVONthink database with the indexed notes is open.");
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "DEVONlink-obsidian",
"name": "DEVONlink",
"version": "2.2.1",
"minAppVersion": "0.9.12",
"description": "Open or reveal the current note in DEVONthink.",
"author": "ryanjamurphy",
"authorUrl": "https://axle.design",
"isDesktopOnly": true
}
{
"id": "DEVONlink-obsidian",
"name": "DEVONlink",
"version": "2.2.1",
"minAppVersion": "0.9.12",
"description": "Open or reveal the current note in DEVONthink.",
"author": "ryanjamurphy",
"authorUrl": "https://axle.design",
"isDesktopOnly": true
}
Binary file not shown.
+28 -28
View File
@@ -2,34 +2,34 @@
var obsidian = require('obsidian');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
// 'path' module extracted from Node.js v8.11.1 (only the posix part)
+11 -11
View File
@@ -1,11 +1,11 @@
{
"id": "file-tree-alternative",
"name": "File Tree Alternative",
"version": "2.6.0",
"minAppVersion": "0.15.0",
"description": "This plugin allows you to have an alternative file tree view.",
"author": "Ozan Tellioglu",
"authorUrl": "https://www.ozan.pl",
"fundingUrl": "https://ko-fi.com/ozante",
"isDesktopOnly": false
}
{
"id": "file-tree-alternative",
"name": "File Tree Alternative",
"version": "2.6.0",
"minAppVersion": "0.15.0",
"description": "This plugin allows you to have an alternative file tree view.",
"author": "Ozan Tellioglu",
"authorUrl": "https://www.ozan.pl",
"fundingUrl": "https://ko-fi.com/ozante",
"isDesktopOnly": false
}
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "flowershow",
"name": "Flowershow",
"version": "2.0.1",
"minAppVersion": "0.0.1",
"description": "Publish with Flowershow directly from your Obsidian vault.",
"author": "Rufus Pollock",
"authorUrl": "https://flowershow.app/",
"isDesktopOnly": false
}
{
"id": "flowershow",
"name": "Flowershow",
"version": "2.0.1",
"minAppVersion": "0.0.1",
"description": "Publish with Flowershow directly from your Obsidian vault.",
"author": "Rufus Pollock",
"authorUrl": "https://flowershow.app/",
"isDesktopOnly": false
}
+27 -27
View File
@@ -1,28 +1,28 @@
/* FEATURE IN LINE */
.meld-encrypt-inline-reading-marker {
cursor: pointer;
}
.meld-encrypt-decrypt-modal textarea{
width: 100%;
min-height: 3em;
resize: vertical;
}
/* END FEATURE IN LINE */
/* FEATURE ENCRYPTED MD */
div[data-type="meld-encrypted-view"] .view-content {
background-position: center;
background-repeat: no-repeat;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 50 50"><path d="M 25 2 C 17.832484 2 12 7.8324839 12 15 L 12 21 L 8 21 C 6.3550302 21 5 22.35503 5 24 L 5 47 C 5 48.64497 6.3550302 50 8 50 L 42 50 C 43.64497 50 45 48.64497 45 47 L 45 24 C 45 22.35503 43.64497 21 42 21 L 38 21 L 38 15 C 38 7.8324839 32.167516 2 25 2 z M 25 4 C 31.086484 4 36 8.9135161 36 15 L 36 21 L 14 21 L 14 15 C 14 8.9135161 18.913516 4 25 4 z M 8 23 L 42 23 C 42.56503 23 43 23.43497 43 24 L 43 47 C 43 47.56503 42.56503 48 42 48 L 8 48 C 7.4349698 48 7 47.56503 7 47 L 7 24 C 7 23.43497 7.4349698 23 8 23 z M 13 34 A 2 2 0 0 0 11 36 A 2 2 0 0 0 13 38 A 2 2 0 0 0 15 36 A 2 2 0 0 0 13 34 z M 21 34 A 2 2 0 0 0 19 36 A 2 2 0 0 0 21 38 A 2 2 0 0 0 23 36 A 2 2 0 0 0 21 34 z M 29 34 A 2 2 0 0 0 27 36 A 2 2 0 0 0 29 38 A 2 2 0 0 0 31 36 A 2 2 0 0 0 29 34 z M 37 34 A 2 2 0 0 0 35 36 A 2 2 0 0 0 37 38 A 2 2 0 0 0 39 36 A 2 2 0 0 0 37 34 z" fill-opacity="0.02"></path></svg>');
}
.workspace-leaf-content[data-type='meld-encrypted-view'] .view-content {
padding: 0;
overflow: hidden;
}
/* FEATURE IN LINE */
.meld-encrypt-inline-reading-marker {
cursor: pointer;
}
.meld-encrypt-decrypt-modal textarea{
width: 100%;
min-height: 3em;
resize: vertical;
}
/* END FEATURE IN LINE */
/* FEATURE ENCRYPTED MD */
div[data-type="meld-encrypted-view"] .view-content {
background-position: center;
background-repeat: no-repeat;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100" height="100" viewBox="0 0 50 50"><path d="M 25 2 C 17.832484 2 12 7.8324839 12 15 L 12 21 L 8 21 C 6.3550302 21 5 22.35503 5 24 L 5 47 C 5 48.64497 6.3550302 50 8 50 L 42 50 C 43.64497 50 45 48.64497 45 47 L 45 24 C 45 22.35503 43.64497 21 42 21 L 38 21 L 38 15 C 38 7.8324839 32.167516 2 25 2 z M 25 4 C 31.086484 4 36 8.9135161 36 15 L 36 21 L 14 21 L 14 15 C 14 8.9135161 18.913516 4 25 4 z M 8 23 L 42 23 C 42.56503 23 43 23.43497 43 24 L 43 47 C 43 47.56503 42.56503 48 42 48 L 8 48 C 7.4349698 48 7 47.56503 7 47 L 7 24 C 7 23.43497 7.4349698 23 8 23 z M 13 34 A 2 2 0 0 0 11 36 A 2 2 0 0 0 13 38 A 2 2 0 0 0 15 36 A 2 2 0 0 0 13 34 z M 21 34 A 2 2 0 0 0 19 36 A 2 2 0 0 0 21 38 A 2 2 0 0 0 23 36 A 2 2 0 0 0 21 34 z M 29 34 A 2 2 0 0 0 27 36 A 2 2 0 0 0 29 38 A 2 2 0 0 0 31 36 A 2 2 0 0 0 29 34 z M 37 34 A 2 2 0 0 0 35 36 A 2 2 0 0 0 37 38 A 2 2 0 0 0 39 36 A 2 2 0 0 0 37 34 z" fill-opacity="0.02"></path></svg>');
}
.workspace-leaf-content[data-type='meld-encrypted-view'] .view-content {
padding: 0;
overflow: hidden;
}
/* END FEATURE ENCRYPTED MD */
+23 -23
View File
@@ -6,29 +6,29 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "nldates-obsidian",
"name": "Natural Language Dates",
"description": "Create date-links based on natural language",
"version": "0.6.2",
"author": "Argentina Ortega Sainz",
"authorUrl": "https://argentinaos.com/",
"isDesktopOnly": false,
"minAppVersion": "1.0.0"
}
{
"id": "nldates-obsidian",
"name": "Natural Language Dates",
"description": "Create date-links based on natural language",
"version": "0.6.2",
"author": "Argentina Ortega Sainz",
"authorUrl": "https://argentinaos.com/",
"isDesktopOnly": false,
"minAppVersion": "1.0.0"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-annotator",
"name": "Annotator",
"version": "0.2.11",
"minAppVersion": "1.0.3",
"description": "This is a sample plugin for Obsidian. It allows you to open and annotate PDF and EPUB files.",
"author": "Obsidian",
"authorUrl": "https://obsidian.md/about",
"isDesktopOnly": false
}
{
"id": "obsidian-annotator",
"name": "Annotator",
"version": "0.2.11",
"minAppVersion": "1.0.3",
"description": "This is a sample plugin for Obsidian. It allows you to open and annotate PDF and EPUB files.",
"author": "Obsidian",
"authorUrl": "https://obsidian.md/about",
"isDesktopOnly": false
}
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-calibre-plugin",
"name": "Calibre",
"version": "1.0.8",
"minAppVersion": "0.12.0",
"description": "This plugin allows you to access your calibre libraries and read books directly in Obsidian.",
"author": "caronchen",
"authorUrl": "https://github.com/caronchen/obsidian-calibre-plugin",
"isDesktopOnly": true
}
{
"id": "obsidian-calibre-plugin",
"name": "Calibre",
"version": "1.0.8",
"minAppVersion": "0.12.0",
"description": "This plugin allows you to access your calibre libraries and read books directly in Obsidian.",
"author": "caronchen",
"authorUrl": "https://github.com/caronchen/obsidian-calibre-plugin",
"isDesktopOnly": true
}
+22 -22
View File
@@ -1,23 +1,23 @@
.calibre-donation {
width: fit-content;
margin: 25px auto;
text-align: center;
position: absolute;
left: 200px;
right: 0;
bottom: 0;
}
.calibre-donation a.paypal {
display: inline-block;
}
div.workspace-leaf-content[data-type=calibre-view] div.view-content {
overflow: hidden;
}
div.workspace-leaf-content[data-type=calibre-view] iframe {
width: 100%;
height: 100%;
border: 0;
.calibre-donation {
width: fit-content;
margin: 25px auto;
text-align: center;
position: absolute;
left: 200px;
right: 0;
bottom: 0;
}
.calibre-donation a.paypal {
display: inline-block;
}
div.workspace-leaf-content[data-type=calibre-view] div.view-content {
overflow: hidden;
}
div.workspace-leaf-content[data-type=calibre-view] iframe {
width: 100%;
height: 100%;
border: 0;
}
+51 -51
View File
@@ -1,51 +1,51 @@
/* no content */
.checklist-plugin-main {
--checklist-checkboxSize: 20px;
--checklist-checkboxCheckedSize: 12px;
--checklist-checkboxBorder: 2px solid var(--text-muted);
--checklist-checkboxFill: var(--text-muted);
--checklist-listItemBorderRadius: 8px;
--checklist-listItemMargin: 0 0 12px;
--checklist-listItemBackground: var(--interactive-normal);
--checklist-listItemBackground--hover: var(--interactive-hover);
--checklist-listItemMargin--compact: 0 0 8px;
--checklist-listItemBoxShadow: none;
--checklist-headerMargin: 0 0 8px;
--checklist-headerGap: 4px;
--checklist-headerFontSize: 18px;
--checklist-headerFontWeight: 600;
--checklist-iconSize: 24px;
--checklist-iconFill: var(--text-normal);
--checklist-iconFill--accent: #777;
--checklist-textColor: var(--text-muted);
--checklist-accentColor: var(--text-accent);
--checklist-accentColor--active: var(--text-accent-hover);
--checklist-pageMargin: 0 0 4px;
--checklist-loaderSize: 16px;
--checklist-loaderBorderColor: var(--text-muted) var(--text-muted)
var(--text-normal);
--checklist-buttonPadding: 0 5px;
--checklist-buttonBoxShadow: none;
--checklist-countPadding: 0 6px;
--checklist-countBackground: var(--interactive-normal);
--checklist-countFontSize: 13px;
--checklist-togglePadding: 8px 8px 8px 12px;
--checklist-contentPadding: 8px 12px 8px 0;
--checklist-contentPadding--compact: 4px 8px;
--checklist-togglePadding--compact: 4px 8px;
--checklist-countBorderRadius: 4px;
--checklist-tagBaseColor: var(--text-faint);
--checklist-tagSubColor: #bbb;
--checklist-groupMargin: 8px;
--checklist-contentFontSize: var(--editor-font-size);
--checklist-searchBackground: var(--background-primary);
}
.checklist-plugin-main button {
margin: initial;
}
.checklist-plugin-main p {
margin: initial;
word-break: break-word;
}
/* no content */
.checklist-plugin-main {
--checklist-checkboxSize: 20px;
--checklist-checkboxCheckedSize: 12px;
--checklist-checkboxBorder: 2px solid var(--text-muted);
--checklist-checkboxFill: var(--text-muted);
--checklist-listItemBorderRadius: 8px;
--checklist-listItemMargin: 0 0 12px;
--checklist-listItemBackground: var(--interactive-normal);
--checklist-listItemBackground--hover: var(--interactive-hover);
--checklist-listItemMargin--compact: 0 0 8px;
--checklist-listItemBoxShadow: none;
--checklist-headerMargin: 0 0 8px;
--checklist-headerGap: 4px;
--checklist-headerFontSize: 18px;
--checklist-headerFontWeight: 600;
--checklist-iconSize: 24px;
--checklist-iconFill: var(--text-normal);
--checklist-iconFill--accent: #777;
--checklist-textColor: var(--text-muted);
--checklist-accentColor: var(--text-accent);
--checklist-accentColor--active: var(--text-accent-hover);
--checklist-pageMargin: 0 0 4px;
--checklist-loaderSize: 16px;
--checklist-loaderBorderColor: var(--text-muted) var(--text-muted)
var(--text-normal);
--checklist-buttonPadding: 0 5px;
--checklist-buttonBoxShadow: none;
--checklist-countPadding: 0 6px;
--checklist-countBackground: var(--interactive-normal);
--checklist-countFontSize: 13px;
--checklist-togglePadding: 8px 8px 8px 12px;
--checklist-contentPadding: 8px 12px 8px 0;
--checklist-contentPadding--compact: 4px 8px;
--checklist-togglePadding--compact: 4px 8px;
--checklist-countBorderRadius: 4px;
--checklist-tagBaseColor: var(--text-faint);
--checklist-tagSubColor: #bbb;
--checklist-groupMargin: 8px;
--checklist-contentFontSize: var(--editor-font-size);
--checklist-searchBackground: var(--background-primary);
}
.checklist-plugin-main button {
margin: initial;
}
.checklist-plugin-main p {
margin: initial;
word-break: break-word;
}
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-dictionary-plugin",
"name": "Dictionary",
"version": "2.22.0",
"minAppVersion": "0.12.11",
"description": "This is a simple dictionary for the Obsidian Note-Taking Tool.",
"author": "phibr0",
"authorUrl": "https://github.com/phibr0",
"isDesktopOnly": false
}
{
"id": "obsidian-dictionary-plugin",
"name": "Dictionary",
"version": "2.22.0",
"minAppVersion": "0.12.11",
"description": "This is a simple dictionary for the Obsidian Note-Taking Tool.",
"author": "phibr0",
"authorUrl": "https://github.com/phibr0",
"isDesktopOnly": false
}
File diff suppressed because it is too large. Load diff
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-enhancing-mindmap",
"name": "Enhancing Mindmap",
"version": "0.2.5",
"minAppVersion": "0.9.12",
"description": "This is a enhancing mindmap plugin for Obsidian. You can edit mindmap on markdown.",
"author": "Mark",
"authorUrl": "https://github.com/MarkMindCkm/obsidian-enhancing-mindmap",
"isDesktopOnly": false
}
{
"id": "obsidian-enhancing-mindmap",
"name": "Enhancing Mindmap",
"version": "0.2.5",
"minAppVersion": "0.9.12",
"description": "This is a enhancing mindmap plugin for Obsidian. You can edit mindmap on markdown.",
"author": "Mark",
"authorUrl": "https://github.com/MarkMindCkm/obsidian-enhancing-mindmap",
"isDesktopOnly": false
}
+175 -175
View File
@@ -1,175 +1,175 @@
.mm-mindmap {
color: #666;
font-size: 16px;
width: 8000px;
height: 8000px;
}
.theme-dark .mm-node {
color: #f5f5f5;
}
.theme-dark .mm-node.mm-root {
color: #333;
}
.theme-light .mm-node.mm-root .mm-node-content {
color: #fff;
background-color: rgb(0, 170, 255);
}
.mm-node {
position: absolute;
cursor: pointer;
box-sizing: border-box;
}
.mm-node .mm-node-content {
padding: 2px 4px;
max-width: 800px;
word-break: break-word;
}
.mm-node-content > p,
.mm-node-content > h1,
.mm-node-content > h2,
.mm-node-content > h3,
.mm-node-content > h4,
.mm-node-content > h5,
.mm-node-content > h6 {
padding: 0;
margin: 0;
}
.mm-node.mm-root .mm-node-content {
font-size: 1.6em;
padding: 14px 20px;
border-radius: 0.25rem;
background: white;
}
.mm-node.mm-node-second .mm-node-content {
padding: 8px 10px;
font-size: 1.2em;
}
.mm-node.mm-node-select {
border: 2px solid var(--interactive-accent);
border-radius: 0.25rem;
}
.mm-node-bar {
position: absolute;
height: 12px;
width: 12px;
border-radius: 50%;
padding: 0 3px;
bottom: -8px;
box-sizing: border-box;
}
.mm-node-bar:hover {
transform: scale(1.2);
}
.mm-node .mm-node-bar {}
.mm-node-right .mm-node-bar,
.mm-node.mm-root .mm-node-bar {
right: -12px;
}
.mm-root .mm-node-bar,
.mm-node-second .mm-node-bar {
top: 50%;
margin-top: -5px;
bottom: inherit;
}
.mm-node-left .mm-node-bar {
left: -12px;
}
.mm-root .mm-node-bar,
.mm-node-leaf .mm-node-bar {
display: none;
}
.mm-node-collapse .mm-node-bar {
display: block !important;
box-sizing: border-box;
border: 0px;
background-color: #fff !important;
border: 2px solid #ccc;
}
/* node indicate */
.mm-node-layout-indicate {
position: absolute;
left:0;
top:0;
width: 0;
height: 0;
border: 20px solid transparent;
border-bottom: 40px solid var(--interactive-accent);
transform-origin: center center;
z-index:100;
}
.mm-node-layout-indicate.mm-arrow-left{
transform: rotate(-90deg)
}
.mm-node-layout-indicate.mm-arrow-down{
transform: rotate(180deg)
}
.mm-node-layout-indicate.mm-arrow-right{
transform: rotate(-270deg)
}
/* edit node style */
.mm-node.mm-edit-node{
z-index:50;
}
.mm-node.mm-edit-node .mm-node-content{
background-color: #333;
color:white;
}
.theme-light .mm-node.mm-edit-node .mm-node-content{
background-color: white;
color:#333
}
/* menu */
.mm-node-menu{
position:absolute;
background:#333;
border:1px solid #000;
width:56px;
border-radius: 0.25rem;
z-index: 60;
}
.theme-light .mm-node-menu{
background:white;
border:1px solid #666;
}
.mm-node-menu span {
vertical-align: middle;
cursor: pointer;
margin:0 5px
}
.mm-node-menu span svg{
fill:#ccc;
}
.mm-node-menu span svg:hover{
opacity: 0.8;
}
.theme-light .mm-node-menu svg{
fill: #333;
}
.mm-mindmap {
color: #666;
font-size: 16px;
width: 8000px;
height: 8000px;
}
.theme-dark .mm-node {
color: #f5f5f5;
}
.theme-dark .mm-node.mm-root {
color: #333;
}
.theme-light .mm-node.mm-root .mm-node-content {
color: #fff;
background-color: rgb(0, 170, 255);
}
.mm-node {
position: absolute;
cursor: pointer;
box-sizing: border-box;
}
.mm-node .mm-node-content {
padding: 2px 4px;
max-width: 800px;
word-break: break-word;
}
.mm-node-content > p,
.mm-node-content > h1,
.mm-node-content > h2,
.mm-node-content > h3,
.mm-node-content > h4,
.mm-node-content > h5,
.mm-node-content > h6 {
padding: 0;
margin: 0;
}
.mm-node.mm-root .mm-node-content {
font-size: 1.6em;
padding: 14px 20px;
border-radius: 0.25rem;
background: white;
}
.mm-node.mm-node-second .mm-node-content {
padding: 8px 10px;
font-size: 1.2em;
}
.mm-node.mm-node-select {
border: 2px solid var(--interactive-accent);
border-radius: 0.25rem;
}
.mm-node-bar {
position: absolute;
height: 12px;
width: 12px;
border-radius: 50%;
padding: 0 3px;
bottom: -8px;
box-sizing: border-box;
}
.mm-node-bar:hover {
transform: scale(1.2);
}
.mm-node .mm-node-bar {}
.mm-node-right .mm-node-bar,
.mm-node.mm-root .mm-node-bar {
right: -12px;
}
.mm-root .mm-node-bar,
.mm-node-second .mm-node-bar {
top: 50%;
margin-top: -5px;
bottom: inherit;
}
.mm-node-left .mm-node-bar {
left: -12px;
}
.mm-root .mm-node-bar,
.mm-node-leaf .mm-node-bar {
display: none;
}
.mm-node-collapse .mm-node-bar {
display: block !important;
box-sizing: border-box;
border: 0px;
background-color: #fff !important;
border: 2px solid #ccc;
}
/* node indicate */
.mm-node-layout-indicate {
position: absolute;
left:0;
top:0;
width: 0;
height: 0;
border: 20px solid transparent;
border-bottom: 40px solid var(--interactive-accent);
transform-origin: center center;
z-index:100;
}
.mm-node-layout-indicate.mm-arrow-left{
transform: rotate(-90deg)
}
.mm-node-layout-indicate.mm-arrow-down{
transform: rotate(180deg)
}
.mm-node-layout-indicate.mm-arrow-right{
transform: rotate(-270deg)
}
/* edit node style */
.mm-node.mm-edit-node{
z-index:50;
}
.mm-node.mm-edit-node .mm-node-content{
background-color: #333;
color:white;
}
.theme-light .mm-node.mm-edit-node .mm-node-content{
background-color: white;
color:#333
}
/* menu */
.mm-node-menu{
position:absolute;
background:#333;
border:1px solid #000;
width:56px;
border-radius: 0.25rem;
z-index: 60;
}
.theme-light .mm-node-menu{
background:white;
border:1px solid #666;
}
.mm-node-menu span {
vertical-align: middle;
cursor: pointer;
margin:0 5px
}
.mm-node-menu span svg{
fill:#ccc;
}
.mm-node-menu span svg:hover{
opacity: 0.8;
}
.theme-light .mm-node-menu svg{
fill: #333;
}
+11 -11
View File
@@ -1,12 +1,12 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.14.0",
"minAppVersion": "1.5.7",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"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
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.14.0",
"minAppVersion": "1.5.7",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"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
}
@@ -1 +1 @@
+30 -30
View File
@@ -10,36 +10,36 @@ var view = require('@codemirror/view');
var state = require('@codemirror/state');
var language = require('@codemirror/language');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
const iconPacks$1 = {
@@ -1,11 +1,11 @@
{
"id": "obsidian-image-auto-upload-plugin",
"name": "Image auto upload",
"version": "4.1.0",
"minAppVersion": "0.10.7",
"description": "This plugin uploads images from your clipboard by PicGo",
"author": "renmu",
"authorUrl": "https://github.com/renmu123/obsidian-image-auto-upload-plugin",
"isDesktopOnly": true,
"fundingUrl": "https://afdian.com/a/renmu123"
}
{
"id": "obsidian-image-auto-upload-plugin",
"name": "Image auto upload",
"version": "4.1.0",
"minAppVersion": "0.10.7",
"description": "This plugin uploads images from your clipboard by PicGo",
"author": "renmu",
"authorUrl": "https://github.com/renmu123/obsidian-image-auto-upload-plugin",
"isDesktopOnly": true,
"fundingUrl": "https://afdian.com/a/renmu123"
}
File diff suppressed because it is too large. Load diff
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-image-toolkit",
"name": "Image Toolkit",
"version": "1.4.2",
"minAppVersion": "1.0.0",
"description": "This plugin provides some image viewing toolkit.",
"author": "Xiangru",
"authorUrl": "https://github.com/sissilab",
"isDesktopOnly": true
}
{
"id": "obsidian-image-toolkit",
"name": "Image Toolkit",
"version": "1.4.2",
"minAppVersion": "1.0.0",
"description": "This plugin provides some image viewing toolkit.",
"author": "Xiangru",
"authorUrl": "https://github.com/sissilab",
"isDesktopOnly": true
}
File diff suppressed because it is too large. Load diff
+9 -9
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-markmind",
"name": "Markmind",
"version": "3.2.3",
"minAppVersion": "0.9.12",
"description": "This is a mindmap , outline tool for obsidian.",
"author": "Mark",
"authorUrl": "https://github.com/MarkMindCkm/obsidian-markmind",
"isDesktopOnly": false
{
"id": "obsidian-markmind",
"name": "Markmind",
"version": "3.2.3",
"minAppVersion": "0.9.12",
"description": "This is a mindmap , outline tool for obsidian.",
"author": "Mark",
"authorUrl": "https://github.com/MarkMindCkm/obsidian-markmind",
"isDesktopOnly": false
}
File diff suppressed because it is too large. Load diff
+65 -65
View File
@@ -2,71 +2,71 @@
var obsidian = require('obsidian');
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
function _extends() {
+7 -7
View File
@@ -1,8 +1,8 @@
{
"id": "obsidian-mind-map",
"name": "Mind Map",
"version": "1.1.0",
"description": "A plugin to preview notes as Markmap mind maps",
"isDesktopOnly": false,
"js": "main.js"
{
"id": "obsidian-mind-map",
"name": "Mind Map",
"version": "1.1.0",
"description": "A plugin to preview notes as Markmap mind maps",
"isDesktopOnly": false,
"js": "main.js"
}
+30 -30
View File
@@ -5,36 +5,36 @@ var view = require('@codemirror/view');
var language = require('@codemirror/language');
var state = require('@codemirror/state');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
class MoveCursorToPreviousUnfoldedLine {
+10
View File
@@ -0,0 +1,10 @@
{
"syncOnBoot": false,
"autoSyncInterval": 0,
"disableNotifications": false,
"headerTemplatePath": "",
"highlightTemplatePath": "",
"highlightStoragePath": "",
"authorsMappingFilename": "authors.json",
"lastUpdate": 1754645321355
}
+44 -44
View File
@@ -2,29 +2,29 @@
var obsidian = require('obsidian');
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
class ObsidianReadwiseSettingsGenerator {
@@ -6793,27 +6793,27 @@ rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;
/* 14 */
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
// This works if the window reference is available
if(typeof window === "object")
g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
// This works if the window reference is available
if(typeof window === "object")
g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-readwise",
"name": "Readwise Community",
"version": "0.0.9",
"minAppVersion": "0.11.9",
"description": "Sync Readwise highlights into your notes",
"author": "Rene Hernandez",
"authorUrl": "https://renehernandez.io",
"isDesktopOnly": false
}
{
"id": "obsidian-readwise",
"name": "Readwise Community",
"version": "0.0.9",
"minAppVersion": "0.11.9",
"description": "Sync Readwise highlights into your notes",
"author": "Rene Hernandez",
"authorUrl": "https://renehernandez.io",
"isDesktopOnly": false
}
+9 -9
View File
@@ -1,10 +1,10 @@
{
"id": "obsidian-reminder-plugin",
"name": "Reminder",
{
"id": "obsidian-reminder-plugin",
"name": "Reminder",
"version": "1.1.19",
"minAppVersion": "1.0.3",
"description": "Reminder plugin for Obsidian. This plugin adds feature to manage TODOs with reminder.",
"author": "uphy",
"authorUrl": "https://obsidian.md/about",
"isDesktopOnly": false
}
"minAppVersion": "1.0.3",
"description": "Reminder plugin for Obsidian. This plugin adds feature to manage TODOs with reminder.",
"author": "uphy",
"authorUrl": "https://obsidian.md/about",
"isDesktopOnly": false
}
+11 -11
View File
@@ -1,11 +1,11 @@
{
"id": "oz-image-plugin",
"name": "Image in Editor",
"version": "2.2.6",
"minAppVersion": "0.15.0",
"description": "View Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.",
"author": "Ozan Tellioglu",
"authorUrl": "https://ozan.pl/aboutme/",
"fundingUrl": "https://ko-fi.com/ozante",
"isDesktopOnly": false
}
{
"id": "oz-image-plugin",
"name": "Image in Editor",
"version": "2.2.6",
"minAppVersion": "0.15.0",
"description": "View Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.",
"author": "Ozan Tellioglu",
"authorUrl": "https://ozan.pl/aboutme/",
"fundingUrl": "https://ko-fi.com/ozante",
"isDesktopOnly": false
}
+349 -349
View File
@@ -1,349 +1,349 @@
/* @settings
name: Ozan's Image in Editor Plugin
id: oz-image-in-editor-plugin
settings:
-
id: oz-img-in-editor-max-transclusion-height
title: Transclusion Embed Maximum Height
description: Set the max height of transclusion render in editor as px
type: variable-number
default: 600
format: px
-
id: oz-img-in-editor-max-msg-height
title: MSG Embed Maximum Height
description: Set the max height of msg render in editor as px
type: variable-number
default: 300
format: px
-
id: oz-img-in-editor-img-size-xx-small
title: Alt Text "#xx-small" Maximum Image Width
description: Set the max width of images with "#xx-small" alt text
type: variable-number
default: 25
format: "%"
-
id: oz-img-in-editor-img-size-x-small
title: Alt Text "#x-small" Maximum Image Width
description: Set the max width of images with "#x-small" alt text
type: variable-number
default: 50
format: "%"
-
id: oz-img-in-editor-img-size-small
title: Alt Text "#small" Maximum Image Width
description: Set the max width of images with "#small" alt text
type: variable-number
default: 75
format: "%"
*/
.theme-light,
.theme-dark {
--oz-img-in-editor-max-msg-height: 300px;
--oz-img-in-editor-max-transclusion-height: 600px;
--oz-img-in-editor-img-size-xx-small: 25%;
--oz-img-in-editor-img-size-x-small: 50%;
--oz-img-in-editor-img-size-small: 75%;
}
.CodeMirror-linewidget img {
margin-top: 5px;
margin-bottom: 5px;
}
.theme-dark img[alt$='#invert'],
.theme-dark div.oz-image-widget > img[alt$='#invert'],
.theme-dark div.oz-image-widget-cm6 > img[alt$='#invert'] {
filter: invert(1) hue-rotate(180deg);
}
.oz-transclusion-widget,
.oz-transclusion-widget-cm6 {
padding: 3px 3px 3px 19px;
border: 0.7px solid var(--text-muted);
max-height: var(oz-img-in-editor-max-transclusion-height);
overflow: auto;
border-radius: 7px;
margin-top: 5px;
}
.oz-coffee-div,
.oz-tip-div {
text-align: center;
margin-top: 10px;
}
.oz-tip-div img {
border-radius: 10px;
}
/* Line Numbers In Editor CodeBlock Renders */
pre[class*='language-'].line-numbers {
position: relative;
padding-left: 3.8em;
counter-reset: linenumber;
}
pre[class*='language-'].line-numbers > code {
position: relative;
white-space: inherit;
}
.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: 0;
font-size: 100%;
left: -3.8em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
border-right: 1px solid #999;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line-numbers-rows > span {
display: block;
counter-increment: linenumber;
}
.line-numbers-rows > span:before {
content: counter(linenumber);
color: #999;
display: block;
padding-right: 0.8em;
text-align: right;
}
.mermaid-error-information {
color: red;
font-size: 14px;
margin-bottom: 3px;
}
.oz-modal-center {
text-align: center;
margin: 20px 10px 20px 10px;
}
.oz-modal-title {
text-align: center;
}
.inline-mathjax-block {
margin-left: 5px;
}
.oz-image-widget > img,
.oz-image-widget-cm6 > img {
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
div.oz-transclusion-widget pre,
div.oz-transclusion-widget-cm6 pre {
overflow-x: auto;
}
.oz-transclusion-widget > *,
.oz-transclusion-widget-cm6 > * {
user-select: text !important;
}
/* Rich Link Cards */
/* Credit: https://github.com/dhamaniasad/obsidian-rich-links */
.oz-rich-link-card {
border: 1px solid var(--background-modifier-border);
border-radius: 3px;
width: 100%;
display: flex;
text-decoration: none;
background-color: var(--background-primary);
}
.oz-rich-link-card-container {
position: relative;
}
.oz-rich-link-image-container {
height: 100px;
width: 35%;
min-width: 120px;
overflow: hidden;
border-right: 1px solid var(--background-modifier-border);
}
.oz-rich-link-image {
background-position: center center;
background-size: cover;
background-repeat: no-repeat;
padding-bottom: 100px;
background-color: var(--background-secondary);
}
.oz-rich-link-card-text {
padding: 4px;
width: 75%;
}
.oz-rich-link-card-title {
font-family: sans-serif;
font-size: 16px;
margin: 0 0 4px 0;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
color: var(--text-normal);
}
.oz-rich-link-card-description {
font-family: sans-serif;
font-size: 14px;
margin: 0;
color: var(--text-muted);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.oz-rich-link-href {
font-family: sans-serif;
font-size: 14px;
margin: 0;
color: var(--text-faint);
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.image-in-editor-settings-main-header {
text-align: center !important;
margin-bottom: 20px;
}
.image-in-editor-cm-header {
margin-top: 0px;
}
.image-in-editor-editor-header {
margin-bottom: 5px;
}
/* Sizing for CM5 and CM6 */
div.oz-image-widget > img[alt$='#small'],
div.oz-image-widget-cm6 > img[alt$='#small'] {
max-width: var(--oz-img-in-editor-img-size-small) !important;
}
div.oz-image-widget > img[alt$='#x-small'],
div.oz-image-widget-cm6 > img[alt$='#x-small'] {
max-width: var(--oz-img-in-editor-img-size-x-small) !important;
}
div.oz-image-widget > img[alt$='#xx-small'],
div.oz-image-widget-cm6 > img[alt$='#xx-small'] {
max-width: var(--oz-img-in-editor-img-size-xx-small) !important;
}
/* Style For CM6 */
div.oz-image-widget-cm6,
div.oz-custom-html-widget-cm6,
div.oz-pdf-widget-cm6 {
padding-top: 5px;
padding-bottom: 5px;
}
div.oz-image-widget-cm6 + br,
div.oz-custom-html-widget-cm6 + br,
div.oz-pdf-widget-cm6 + br {
display: none;
}
.cm-line div.oz-transclusion-widget-cm6 {
padding-top: 10px;
padding-bottom: 10px;
}
.cm-line div.oz-transclusion-widget-cm6 * {
margin-block-start: 0px !important;
margin-block-end: 0px !important;
}
/* Legacy Admonition */
.oz-admonition {
margin: 1.5em 0;
padding: 0;
overflow: hidden;
page-break-inside: avoid;
border-left: 0.3rem solid rgb(var(--oz-admonition-color));
border-radius: 0.1rem;
box-shadow: 0 0.2rem 0.5rem rgb(44, 43, 43);
}
.oz-admonition-title {
position: relative;
padding: 15px 5px 15px 15px;
font-weight: 700;
background-color: rgba(var(--oz-admonition-color), 0.1);
}
.oz-admonition-title-content {
display: flex;
justify-content: flex-start;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
.oz-admonition-content-holder {
position: relative;
padding-top: 15px;
padding-bottom: 15px;
}
.oz-admonition-content {
margin: 10px 15px;
position: relative;
overflow-x: auto;
}
.oz-admonition-title-markdown {
text-transform: capitalize;
display: block;
}
.oz-transclusion-widget-cm6 span.hashtag {
background-color: var(--tag-background);
border: var(--tag-border-width) solid var(--tag-border-color);
border-radius: var(--tag-radius);
color: var(--tag-color);
font-size: var(--tag-size);
text-decoration: var(--tag-decoration);
padding: var(--tag-padding-y) var(--tag-padding-x);
line-height: 1;
}
.oz-custom-html-widget-cm6 .msg-handler-plugin-renderer {
max-height: var(--oz-img-in-editor-max-msg-height);
overflow-y: scroll;
border: 0.1px solid var(--text-muted);
padding: 10px;
}
.cm-line:has(div.is-collapsed) .oz-custom-html-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-image-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-pdf-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-transclusion-widget-cm6 {
display: none;
}
/* @settings
name: Ozan's Image in Editor Plugin
id: oz-image-in-editor-plugin
settings:
-
id: oz-img-in-editor-max-transclusion-height
title: Transclusion Embed Maximum Height
description: Set the max height of transclusion render in editor as px
type: variable-number
default: 600
format: px
-
id: oz-img-in-editor-max-msg-height
title: MSG Embed Maximum Height
description: Set the max height of msg render in editor as px
type: variable-number
default: 300
format: px
-
id: oz-img-in-editor-img-size-xx-small
title: Alt Text "#xx-small" Maximum Image Width
description: Set the max width of images with "#xx-small" alt text
type: variable-number
default: 25
format: "%"
-
id: oz-img-in-editor-img-size-x-small
title: Alt Text "#x-small" Maximum Image Width
description: Set the max width of images with "#x-small" alt text
type: variable-number
default: 50
format: "%"
-
id: oz-img-in-editor-img-size-small
title: Alt Text "#small" Maximum Image Width
description: Set the max width of images with "#small" alt text
type: variable-number
default: 75
format: "%"
*/
.theme-light,
.theme-dark {
--oz-img-in-editor-max-msg-height: 300px;
--oz-img-in-editor-max-transclusion-height: 600px;
--oz-img-in-editor-img-size-xx-small: 25%;
--oz-img-in-editor-img-size-x-small: 50%;
--oz-img-in-editor-img-size-small: 75%;
}
.CodeMirror-linewidget img {
margin-top: 5px;
margin-bottom: 5px;
}
.theme-dark img[alt$='#invert'],
.theme-dark div.oz-image-widget > img[alt$='#invert'],
.theme-dark div.oz-image-widget-cm6 > img[alt$='#invert'] {
filter: invert(1) hue-rotate(180deg);
}
.oz-transclusion-widget,
.oz-transclusion-widget-cm6 {
padding: 3px 3px 3px 19px;
border: 0.7px solid var(--text-muted);
max-height: var(oz-img-in-editor-max-transclusion-height);
overflow: auto;
border-radius: 7px;
margin-top: 5px;
}
.oz-coffee-div,
.oz-tip-div {
text-align: center;
margin-top: 10px;
}
.oz-tip-div img {
border-radius: 10px;
}
/* Line Numbers In Editor CodeBlock Renders */
pre[class*='language-'].line-numbers {
position: relative;
padding-left: 3.8em;
counter-reset: linenumber;
}
pre[class*='language-'].line-numbers > code {
position: relative;
white-space: inherit;
}
.line-numbers .line-numbers-rows {
position: absolute;
pointer-events: none;
top: 0;
font-size: 100%;
left: -3.8em;
width: 3em; /* works for line-numbers below 1000 lines */
letter-spacing: -1px;
border-right: 1px solid #999;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.line-numbers-rows > span {
display: block;
counter-increment: linenumber;
}
.line-numbers-rows > span:before {
content: counter(linenumber);
color: #999;
display: block;
padding-right: 0.8em;
text-align: right;
}
.mermaid-error-information {
color: red;
font-size: 14px;
margin-bottom: 3px;
}
.oz-modal-center {
text-align: center;
margin: 20px 10px 20px 10px;
}
.oz-modal-title {
text-align: center;
}
.inline-mathjax-block {
margin-left: 5px;
}
.oz-image-widget > img,
.oz-image-widget-cm6 > img {
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
div.oz-transclusion-widget pre,
div.oz-transclusion-widget-cm6 pre {
overflow-x: auto;
}
.oz-transclusion-widget > *,
.oz-transclusion-widget-cm6 > * {
user-select: text !important;
}
/* Rich Link Cards */
/* Credit: https://github.com/dhamaniasad/obsidian-rich-links */
.oz-rich-link-card {
border: 1px solid var(--background-modifier-border);
border-radius: 3px;
width: 100%;
display: flex;
text-decoration: none;
background-color: var(--background-primary);
}
.oz-rich-link-card-container {
position: relative;
}
.oz-rich-link-image-container {
height: 100px;
width: 35%;
min-width: 120px;
overflow: hidden;
border-right: 1px solid var(--background-modifier-border);
}
.oz-rich-link-image {
background-position: center center;
background-size: cover;
background-repeat: no-repeat;
padding-bottom: 100px;
background-color: var(--background-secondary);
}
.oz-rich-link-card-text {
padding: 4px;
width: 75%;
}
.oz-rich-link-card-title {
font-family: sans-serif;
font-size: 16px;
margin: 0 0 4px 0;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
color: var(--text-normal);
}
.oz-rich-link-card-description {
font-family: sans-serif;
font-size: 14px;
margin: 0;
color: var(--text-muted);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.oz-rich-link-href {
font-family: sans-serif;
font-size: 14px;
margin: 0;
color: var(--text-faint);
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.image-in-editor-settings-main-header {
text-align: center !important;
margin-bottom: 20px;
}
.image-in-editor-cm-header {
margin-top: 0px;
}
.image-in-editor-editor-header {
margin-bottom: 5px;
}
/* Sizing for CM5 and CM6 */
div.oz-image-widget > img[alt$='#small'],
div.oz-image-widget-cm6 > img[alt$='#small'] {
max-width: var(--oz-img-in-editor-img-size-small) !important;
}
div.oz-image-widget > img[alt$='#x-small'],
div.oz-image-widget-cm6 > img[alt$='#x-small'] {
max-width: var(--oz-img-in-editor-img-size-x-small) !important;
}
div.oz-image-widget > img[alt$='#xx-small'],
div.oz-image-widget-cm6 > img[alt$='#xx-small'] {
max-width: var(--oz-img-in-editor-img-size-xx-small) !important;
}
/* Style For CM6 */
div.oz-image-widget-cm6,
div.oz-custom-html-widget-cm6,
div.oz-pdf-widget-cm6 {
padding-top: 5px;
padding-bottom: 5px;
}
div.oz-image-widget-cm6 + br,
div.oz-custom-html-widget-cm6 + br,
div.oz-pdf-widget-cm6 + br {
display: none;
}
.cm-line div.oz-transclusion-widget-cm6 {
padding-top: 10px;
padding-bottom: 10px;
}
.cm-line div.oz-transclusion-widget-cm6 * {
margin-block-start: 0px !important;
margin-block-end: 0px !important;
}
/* Legacy Admonition */
.oz-admonition {
margin: 1.5em 0;
padding: 0;
overflow: hidden;
page-break-inside: avoid;
border-left: 0.3rem solid rgb(var(--oz-admonition-color));
border-radius: 0.1rem;
box-shadow: 0 0.2rem 0.5rem rgb(44, 43, 43);
}
.oz-admonition-title {
position: relative;
padding: 15px 5px 15px 15px;
font-weight: 700;
background-color: rgba(var(--oz-admonition-color), 0.1);
}
.oz-admonition-title-content {
display: flex;
justify-content: flex-start;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
.oz-admonition-content-holder {
position: relative;
padding-top: 15px;
padding-bottom: 15px;
}
.oz-admonition-content {
margin: 10px 15px;
position: relative;
overflow-x: auto;
}
.oz-admonition-title-markdown {
text-transform: capitalize;
display: block;
}
.oz-transclusion-widget-cm6 span.hashtag {
background-color: var(--tag-background);
border: var(--tag-border-width) solid var(--tag-border-color);
border-radius: var(--tag-radius);
color: var(--tag-color);
font-size: var(--tag-size);
text-decoration: var(--tag-decoration);
padding: var(--tag-padding-y) var(--tag-padding-x);
line-height: 1;
}
.oz-custom-html-widget-cm6 .msg-handler-plugin-renderer {
max-height: var(--oz-img-in-editor-max-msg-height);
overflow-y: scroll;
border: 0.1px solid var(--text-muted);
padding: 10px;
}
.cm-line:has(div.is-collapsed) .oz-custom-html-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-image-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-pdf-widget-cm6,
.cm-line:has(div.is-collapsed) .oz-transclusion-widget-cm6 {
display: none;
}
+28 -28
View File
@@ -7,34 +7,34 @@ if you want to view the source visit the plugins github repository
var obsidian = require('obsidian');
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
/*
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "readwise-official",
"name": "Readwise Official",
"version": "3.0.1",
"minAppVersion": "1.0.0",
"description": "Official Readwise <-> Obsidian integration",
"author": "Readwise",
"authorUrl": "https://readwise.io",
"isDesktopOnly": false
}
{
"id": "readwise-official",
"name": "Readwise Official",
"version": "3.0.1",
"minAppVersion": "1.0.0",
"description": "Official Readwise <-> Obsidian integration",
"author": "Readwise",
"authorUrl": "https://readwise.io",
"isDesktopOnly": false
}
+8 -8
View File
@@ -1,5 +1,13 @@
{
"recentFiles": [
{
"basename": "2025-08-08",
"path": "01-工作日记/2025-08-08.md"
},
{
"basename": "conflict-files-obsidian-git",
"path": "conflict-files-obsidian-git.md"
},
{
"basename": "mac 安装及使用docker_docker for mac-CSDN博客",
"path": "03-学习笔记/Docker/mac 安装及使用docker_docker for mac-CSDN博客.md"
@@ -64,10 +72,6 @@
"basename": "苦心ios导航 - 果粉用的上的导航网站",
"path": "20-我的收藏夹/21-浏览器收藏/Favorites/苦心ios导航 - 果粉用的上的导航网站.md"
},
{
"basename": "2025-08-08",
"path": "01-工作日记/2025-08-08.md"
},
{
"basename": "Applehub心动 IOS免费软件源轻松签全能签喵喵签软件源IPA下载Mac软件",
"path": "20-我的收藏夹/21-浏览器收藏/Favorites/Applehub心动 IOS免费软件源轻松签全能签喵喵签软件源IPA下载Mac软件.md"
@@ -195,10 +199,6 @@
{
"basename": "Draft202508",
"path": "08-Inbox/Draft202508.md"
},
{
"basename": "十多天了又来了岳麓山,好多人,身体好像胖了一点,继续保持运动! (2025-08-04 10-54)",
"path": "50-Memos/2025/08/十多天了又来了岳麓山,好多人,身体好像胖了一点,继续保持运动! (2025-08-04 10-54).md"
}
],
"omittedPaths": [],
+25535 -1
View File
File diff suppressed because it is too large. Load diff
+10 -10
View File
@@ -1,10 +1,10 @@
{
"id": "rss-reader",
"name": "RSS Reader",
"version": "1.2.2",
"minAppVersion": "0.13.33",
"description": "Read RSS Feeds from within obsidian",
"author": "Johannes Theiner",
"authorUrl": "https://github.com/joethei",
"isDesktopOnly": false
}
{
"id": "rss-reader",
"name": "RSS Reader",
"version": "1.2.2",
"minAppVersion": "0.13.33",
"description": "Read RSS Feeds from within obsidian",
"author": "Johannes Theiner",
"authorUrl": "https://github.com/joethei",
"isDesktopOnly": false
}
+8 -8
View File
@@ -1,8 +1,8 @@
{
"name": "Minimal",
"version": "7.6.0",
"minAppVersion": "1.6.0",
"author": "@kepano",
"authorUrl": "https://twitter.com/kepano",
"fundingUrl": "https://www.buymeacoffee.com/kepano"
}
{
"name": "Minimal",
"version": "7.6.0",
"minAppVersion": "1.6.0",
"author": "@kepano",
"authorUrl": "https://twitter.com/kepano",
"fundingUrl": "https://www.buymeacoffee.com/kepano"
}
+2103 -2103
View File
File diff suppressed because it is too large. Load diff
+8 -6
View File
@@ -13,12 +13,12 @@
"state": {
"type": "markdown",
"state": {
"file": "03-学习笔记/Docker/mac 安装及使用docker_docker for mac-CSDN博客.md",
"file": "01-工作日记/2025-08-08.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "mac 安装及使用docker_docker for mac-CSDN博客"
"title": "2025-08-08"
}
}
]
@@ -298,11 +298,16 @@
"file-tree-alternative:File Tree Alternative Plugin": false,
"password-protection:开启密码保护": false,
"soundscapes:Soundscapes: My Music": false,
"sheet-plus:创建 Excel 文件": false
"sheet-plus:创建 Excel 文件": false,
"hidden-folder-obsidian:显示文件夹": false,
"periodic-notes:Open today": false
}
},
"active": "b30dd120f71be716",
"lastOpenFiles": [
"conflict-files-obsidian-git.md",
"01-工作日记/2025-08-08.md",
"03-学习笔记/Docker/mac 安装及使用docker_docker for mac-CSDN博客.md",
"03-学习笔记/Docker/如何在Docker中,修改已经挂载的卷(Volume).md",
"03-学习笔记/Docker/Mac使用docker时,卷默认挂载路径-var-lib-docker-volumes不存在问题_mac docker 卷默认挂载路径不存在-CSDN博客.md",
"09-Templates/概括文章骨架.md",
@@ -318,7 +323,6 @@
"20-我的收藏夹/21-浏览器收藏/Favorites/ipa软件下载ios软件下载.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/AList 桌面版.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/苦心ios导航 - 果粉用的上的导航网站.md",
"01-工作日记/2025-08-08.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/Applehub心动 IOS免费软件源轻松签全能签喵喵签软件源IPA下载Mac软件.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/快速安装Homebrew教程 - Homebrew 中文网.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/Mac和iOS最佳免费工具App集合 - Oka Apps.md",
@@ -329,8 +333,6 @@
"20-我的收藏夹/21-浏览器收藏/Favorites/数码荔枝 - 专注于分享最新鲜优秀的正版软件.md",
"20-我的收藏夹/21-浏览器收藏/Favorites/azw3_mobi_epub_kindle电子书免费下载_爱悦读网.md",
"20-我的收藏夹/21-浏览器收藏/Favorites",
"20-我的收藏夹/21-浏览器收藏/越狱/DerekSelanderyacd Decrypts FairPlay applications on iOS 13.4.1 and lower, no jb required.md",
"20-我的收藏夹/21-浏览器收藏/越狱/(33条消息) iOS 打包上传报错 You already have a current iOS Distribution certificate_Leecsdn77的博客-CSDN博客.md",
"未命名 1.canvas",
"未命名.canvas",
"03-学习笔记/Docker",