vault backup: 2026-08-02 09:03:32

This commit is contained in:
CrazyJasonwell
2026-08-02 09:03:32 +08:00
parent ecd18fe3d9
commit 775d83b031
46 changed files with 2555 additions and 1925 deletions
+162 -59
View File
@@ -10813,6 +10813,9 @@ function notePathBase(settings) {
function imagePathBase(settings) { function imagePathBase(settings) {
return `${contentBaseDir(settings)}${IMAGE_PATH_BASE}`; return `${contentBaseDir(settings)}${IMAGE_PATH_BASE}`;
} }
function imageHashKey(assetPath) {
return assetPath.replace(/^\/img\/user\//, "");
}
function sitePath(settings, sub) { function sitePath(settings, sub) {
return `${contentBaseDir(settings)}src/site${sub}`; return `${contentBaseDir(settings)}src/site${sub}`;
} }
@@ -12781,7 +12784,10 @@ function tryDVEvaluate(query, file, dvApi) {
function tryEval(query) { function tryEval(query) {
let result = ""; let result = "";
try { try {
result = (0, eval)("const dv = DataviewAPI;" + query); const evaluateQuery = new Function("dv", `return ${query}`);
result = evaluateQuery(
window.DataviewAPI
);
} catch (e) { } catch (e) {
import_js_logger5.default.warn("eval did not yield any result", e); import_js_logger5.default.warn("eval did not yield any result", e);
} }
@@ -12810,6 +12816,73 @@ function delay(milliseconds) {
// src/compiler/CanvasCompiler.ts // src/compiler/CanvasCompiler.ts
var import_obsidian4 = require("obsidian"); var import_obsidian4 = require("obsidian");
// src/compiler/frontmatterLinks.ts
var FRONTMATTER_IMAGE_EXTENSIONS = /\.(png|jpg|jpeg|gif|webp|svg)$/i;
function getFrontmatterImageLinkpath(value) {
if (typeof value !== "string") {
return null;
}
let linkpath = value.trim();
const wikilink = linkpath.match(/^!?\[\[([^\]]+)\]\]$/);
if (wikilink) {
linkpath = wikilink[1].split("|")[0].split("#")[0].trim();
}
if (linkpath.startsWith("http")) {
return null;
}
if (!FRONTMATTER_IMAGE_EXTENSIONS.test(linkpath)) {
return null;
}
return linkpath;
}
function resolveFrontmatterImageValue(value, resolveLinkpath) {
const linkpath = getFrontmatterImageLinkpath(value);
if (!linkpath) {
return value;
}
const resolvedPath = resolveLinkpath(linkpath);
if (!resolvedPath || resolvedPath === linkpath) {
return value;
}
const trimmed = value.trim();
const wikilink = trimmed.match(/^(!?)\[\[([^\]]+)\]\]$/);
if (wikilink) {
const suffixStart = wikilink[2].search(/[|#]/);
const suffix = suffixStart === -1 ? "" : wikilink[2].slice(suffixStart);
return `${wikilink[1]}[[${resolvedPath}${suffix}]]`;
}
return resolvedPath;
}
function resolveFrontmatterValue(value, resolveLinkpath) {
if (Array.isArray(value)) {
return value.map(
(item) => resolveFrontmatterValue(item, resolveLinkpath)
);
}
if (typeof value !== "string") {
return value;
}
if (getFrontmatterImageLinkpath(value)) {
return resolveFrontmatterImageValue(value, resolveLinkpath);
}
const wikilink = value.trim().match(/^(!?)\[\[([^\]]+)\]\]$/);
if (!wikilink) {
return value;
}
const suffixStart = wikilink[2].search(/[|#]/);
const target = (suffixStart === -1 ? wikilink[2] : wikilink[2].slice(0, suffixStart)).trim();
const suffix = suffixStart === -1 ? "" : wikilink[2].slice(suffixStart);
const resolvedPath = resolveLinkpath(target);
if (!resolvedPath || !resolvedPath.endsWith(".md")) {
return value;
}
const noteLinkpath = resolvedPath.slice(0, -".md".length);
if (noteLinkpath === target) {
return value;
}
return `${wikilink[1]}[[${noteLinkpath}${suffix}]]`;
}
// src/compiler/FrontmatterCompiler.ts // src/compiler/FrontmatterCompiler.ts
var FrontmatterCompiler = class { var FrontmatterCompiler = class {
constructor(settings) { constructor(settings) {
@@ -12863,7 +12936,10 @@ var FrontmatterCompiler = class {
publishedFrontMatter publishedFrontMatter
); );
publishedFrontMatter = this.addTimestampsFrontmatter(file)(publishedFrontMatter); publishedFrontMatter = this.addTimestampsFrontmatter(file)(publishedFrontMatter);
const userProperties = this.extractUserProperties(fileFrontMatter); const userProperties = this.resolveLinkProperties(
this.extractUserProperties(fileFrontMatter),
file
);
const fullFrontMatter = (publishedFrontMatter == null ? void 0 : publishedFrontMatter.dgPassFrontmatter) ? __spreadProps(__spreadValues(__spreadValues({}, fileFrontMatter), publishedFrontMatter), { const fullFrontMatter = (publishedFrontMatter == null ? void 0 : publishedFrontMatter.dgPassFrontmatter) ? __spreadProps(__spreadValues(__spreadValues({}, fileFrontMatter), publishedFrontMatter), {
"dg-note-properties": userProperties "dg-note-properties": userProperties
}) : __spreadProps(__spreadValues({}, publishedFrontMatter), { "dg-note-properties": userProperties }); }) : __spreadProps(__spreadValues({}, publishedFrontMatter), { "dg-note-properties": userProperties });
@@ -12977,10 +13053,27 @@ ${frontMatterString}
return publishedFrontMatter; return publishedFrontMatter;
} }
/** /**
* Extracts all user-defined frontmatter properties, excluding * Rewrite link-shaped property values (images and note wikilinks,
* Obsidian internal fields and dg-* plugin fields that are already * including arrays of them) to full vault paths via the vault's own
* handled by the compilation pipeline. * link resolution, so the published values match where assets are
* uploaded and which notes they target.
*/ */
resolveLinkProperties(userProps, file) {
const resolved = {};
for (const [key2, value] of Object.entries(userProps)) {
resolved[key2] = resolveFrontmatterValue(
value,
(linkpath) => {
var _a6, _b3;
return (_b3 = (_a6 = file.metadataCache.getFirstLinkpathDest(
linkpath,
file.getPath()
)) == null ? void 0 : _a6.path) != null ? _b3 : null;
}
);
}
return resolved;
}
extractUserProperties(frontmatter) { extractUserProperties(frontmatter) {
if (!frontmatter) return {}; if (!frontmatter) return {};
const skipKeys = /* @__PURE__ */ new Set([ const skipKeys = /* @__PURE__ */ new Set([
@@ -19582,24 +19675,6 @@ function createBaseCodeBlock(baseFileText, transclusionFileName) {
const [baseFileName, selectedViewName] = transclusionFileName.split("#"); const [baseFileName, selectedViewName] = transclusionFileName.split("#");
return "\n```base\n" + selectBaseView(baseFileText, selectedViewName == null ? void 0 : selectedViewName.trim(), baseFileName) + "\n```\n"; return "\n```base\n" + selectBaseView(baseFileText, selectedViewName == null ? void 0 : selectedViewName.trim(), baseFileName) + "\n```\n";
} }
var FRONTMATTER_IMAGE_EXTENSIONS = /\.(png|jpg|jpeg|gif|webp|svg)$/i;
function getFrontmatterImageLinkpath(value) {
if (typeof value !== "string") {
return null;
}
let linkpath = value.trim();
const wikilink = linkpath.match(/^!?\[\[([^\]]+)\]\]$/);
if (wikilink) {
linkpath = wikilink[1].split("|")[0].split("#")[0].trim();
}
if (linkpath.startsWith("http")) {
return null;
}
if (!FRONTMATTER_IMAGE_EXTENSIONS.test(linkpath)) {
return null;
}
return linkpath;
}
var GardenPageCompiler = class { var GardenPageCompiler = class {
constructor(vault, settings, metadataCache, getFilesMarkedForPublishing) { constructor(vault, settings, metadataCache, getFilesMarkedForPublishing) {
this.resolveLinkedFile = (linkPath, sourcePath) => { this.resolveLinkedFile = (linkPath, sourcePath) => {
@@ -20867,8 +20942,7 @@ var Publisher = class {
uploadAssets(_0) { uploadAssets(_0) {
return __async(this, arguments, function* (assets, remoteImageHashes = {}) { return __async(this, arguments, function* (assets, remoteImageHashes = {}) {
for (const image of assets.images) { for (const image of assets.images) {
const hashKey = image.path.replace("/img/user/", ""); const remoteHash = remoteImageHashes[imageHashKey(image.path)];
const remoteHash = remoteImageHashes[hashKey];
if (remoteHash && image.localHash && remoteHash === image.localHash) { if (remoteHash && image.localHash && remoteHash === image.localHash) {
import_js_logger7.default.debug(`Skipping unchanged image: ${image.path}`); import_js_logger7.default.debug(`Skipping unchanged image: ${image.path}`);
continue; continue;
@@ -20974,12 +21048,15 @@ var PublishStatusManager = class {
const marked = yield this.publisher.getFilesMarkedForPublishing(); const marked = yield this.publisher.getFilesMarkedForPublishing();
for (const file of marked.notes) { for (const file of marked.notes) {
const compiledFile = yield file.compile(); const compiledFile = yield file.compile();
const [content, _] = compiledFile.getCompiledFile(); const [content, assets] = compiledFile.getCompiledFile();
const localHash = generateBlobHash(content); const localHash = generateBlobHash(content);
const remoteHash = remoteNoteHashes[file.getPath()]; const remoteHash = remoteNoteHashes[file.getPath()];
const hasMissingRemoteImage = assets.images.some(
(image) => !remoteImageHashes[imageHashKey(image.path)]
);
if (!remoteHash) { if (!remoteHash) {
unpublishedNotes.push(compiledFile); unpublishedNotes.push(compiledFile);
} else if (remoteHash === localHash) { } else if (remoteHash === localHash && !hasMissingRemoteImage) {
compiledFile.setRemoteHash(remoteHash); compiledFile.setRemoteHash(remoteHash);
publishedNotes.push(compiledFile); publishedNotes.push(compiledFile);
} else { } else {
@@ -25262,7 +25339,7 @@ var flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED;
function boundary(node, props, children, transform_error) { function boundary(node, props, children, transform_error) {
new Boundary(node, props, children, transform_error); new Boundary(node, props, children, transform_error);
} }
var _anchor, _hydrate_open, _props, _children, _effect, _main_effect, _pending_effect, _failed_effect, _offscreen_fragment, _local_pending_count, _pending_count, _pending_count_update_queued, _dirty_effects, _maybe_dirty_effects, _effect_pending, _effect_pending_subscriber, _Boundary_instances, hydrate_resolved_content_fn, hydrate_failed_content_fn, hydrate_pending_content_fn, render_fn, resolve_fn, run_fn, update_pending_count_fn, handle_error_fn; var _anchor, _hydrate_open, _props, _children, _effect, _main_effect, _pending_effect, _failed_effect, _offscreen_fragment, _local_pending_count, _pending_count, _pending_count_update_queued, _dirty_effects, _maybe_dirty_effects, _effect_pending, _effect_pending_subscriber, _Boundary_instances, hydrate_resolved_content_fn, hydrate_failed_content_fn, create_reset_fn, hydrate_pending_content_fn, render_fn, resolve_fn, run_fn, update_pending_count_fn, handle_error_fn;
var Boundary = class { var Boundary = class {
/** /**
* @param {TemplateNode} node * @param {TemplateNode} node
@@ -25453,16 +25530,56 @@ hydrate_resolved_content_fn = function() {
*/ */
hydrate_failed_content_fn = function(error) { hydrate_failed_content_fn = function(error) {
const failed = __privateGet(this, _props).failed; const failed = __privateGet(this, _props).failed;
const { reset: reset2, invoke_onerror } = __privateMethod(this, _Boundary_instances, create_reset_fn).call(this, error);
queue_micro_task(invoke_onerror);
if (!failed) return; if (!failed) return;
__privateSet(this, _failed_effect, branch(() => { __privateSet(this, _failed_effect, branch(() => {
failed( failed(
__privateGet(this, _anchor), __privateGet(this, _anchor),
() => error, () => error,
() => () => { () => reset2
}
); );
})); }));
}; };
/**
* Creates the `reset` function for a failed boundary, along with a function
* that invokes `onerror` with it (if provided)
* @param {unknown} error
* @returns {{ reset: () => void, invoke_onerror: () => void }}
*/
create_reset_fn = function(error) {
var did_reset = false;
var calling_on_error = false;
const reset2 = () => {
if (did_reset) {
svelte_boundary_reset_noop();
return;
}
did_reset = true;
if (calling_on_error) {
svelte_boundary_reset_onerror();
}
if (__privateGet(this, _failed_effect) !== null) {
pause_effect(__privateGet(this, _failed_effect), () => {
__privateSet(this, _failed_effect, null);
});
}
__privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
__privateMethod(this, _Boundary_instances, render_fn).call(this);
});
};
const invoke_onerror = () => {
var _a6, _b3;
try {
calling_on_error = true;
(_b3 = (_a6 = __privateGet(this, _props)).onerror) == null ? void 0 : _b3.call(_a6, error, reset2);
calling_on_error = false;
} catch (err) {
invoke_error_boundary(err, __privateGet(this, _effect) && __privateGet(this, _effect).parent);
}
};
return { reset: reset2, invoke_onerror };
};
hydrate_pending_content_fn = function() { hydrate_pending_content_fn = function() {
const pending2 = __privateGet(this, _props).pending; const pending2 = __privateGet(this, _props).pending;
if (!pending2) return; if (!pending2) return;
@@ -25602,36 +25719,10 @@ handle_error_fn = function(error) {
next(); next();
set_hydrate_node(skip_nodes()); set_hydrate_node(skip_nodes());
} }
var onerror = __privateGet(this, _props).onerror;
let failed = __privateGet(this, _props).failed; let failed = __privateGet(this, _props).failed;
var did_reset = false;
var calling_on_error = false;
const reset2 = () => {
if (did_reset) {
svelte_boundary_reset_noop();
return;
}
did_reset = true;
if (calling_on_error) {
svelte_boundary_reset_onerror();
}
if (__privateGet(this, _failed_effect) !== null) {
pause_effect(__privateGet(this, _failed_effect), () => {
__privateSet(this, _failed_effect, null);
});
}
__privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
__privateMethod(this, _Boundary_instances, render_fn).call(this);
});
};
const handle_error_result = (transformed_error) => { const handle_error_result = (transformed_error) => {
try { const { reset: reset2, invoke_onerror } = __privateMethod(this, _Boundary_instances, create_reset_fn).call(this, transformed_error);
calling_on_error = true; invoke_onerror();
onerror == null ? void 0 : onerror(transformed_error, reset2);
calling_on_error = false;
} catch (error2) {
invoke_error_boundary(error2, __privateGet(this, _effect) && __privateGet(this, _effect).parent);
}
if (failed) { if (failed) {
__privateSet(this, _failed_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => { __privateSet(this, _failed_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
try { try {
@@ -32721,7 +32812,8 @@ var TextInputSuggest = class {
const suggestions = this.getSuggestions(inputStr); const suggestions = this.getSuggestions(inputStr);
if (suggestions.length > 0) { if (suggestions.length > 0) {
this.suggest.setSuggestions(suggestions); this.suggest.setSuggestions(suggestions);
this.open(this.app.dom.appContainerEl, this.inputEl); const appContainerEl = this.app.dom.appContainerEl;
this.open(appContainerEl, this.inputEl);
} }
} }
open(container, inputEl) { open(container, inputEl) {
@@ -36848,6 +36940,16 @@ var SettingView = class {
markAsChanged(); markAsChanged();
}); });
}); });
new import_obsidian15.Setting(noteSettingsModal.contentEl).setName("Show Graph Depth Control (dg-show-graph-depth-control)").setDesc("When turned on, graph will show a depth slider.").addToggle((t) => {
toggles["dgShowGraphDepthControl"] = t;
t.setValue(
this.settings.defaultNoteSettings.dgShowGraphDepthControl
);
t.onChange((val) => {
this.settings.defaultNoteSettings.dgShowGraphDepthControl = val;
markAsChanged();
});
});
new import_obsidian15.Setting(noteSettingsModal.contentEl).setName("Show backlinks for notes (dg-show-backlinks)").setDesc( new import_obsidian15.Setting(noteSettingsModal.contentEl).setName("Show backlinks for notes (dg-show-backlinks)").setDesc(
"When turned on, notes will show backlinks in a sidebar on desktop and at the bottom of the page on mobile." "When turned on, notes will show backlinks in a sidebar on desktop and at the bottom of the page on mobile."
).addToggle((t) => { ).addToggle((t) => {
@@ -40216,6 +40318,7 @@ var DEFAULT_SETTINGS = {
dgPassFrontmatter: false, dgPassFrontmatter: false,
dgShowBacklinks: false, dgShowBacklinks: false,
dgShowLocalGraph: false, dgShowLocalGraph: false,
dgShowGraphDepthControl: false,
dgShowInlineTitle: false, dgShowInlineTitle: false,
dgShowFileTree: false, dgShowFileTree: false,
dgEnableSearch: false, dgEnableSearch: false,
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "digitalgarden", "id": "digitalgarden",
"name": "Digital Garden", "name": "Digital Garden",
"version": "2.80.3", "version": "2.83.1",
"minAppVersion": "1.10.0", "minAppVersion": "1.10.0",
"description": "Publish your notes to the web for others to enjoy. For free.", "description": "Publish your notes to the web for others to enjoy. For free.",
"author": "Ole Eskild Steensen", "author": "Ole Eskild Steensen",
+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); var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
/****************************************************************************** /******************************************************************************
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted. purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 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 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE. PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */ ***************************************************************************** */
function __awaiter(thisArg, _arguments, P, generator) { function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 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 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); } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next()); 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 : {}; 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", "id": "nldates-obsidian",
"name": "Natural Language Dates", "name": "Natural Language Dates",
"description": "Create date-links based on natural language", "description": "Create date-links based on natural language",
"version": "0.6.2", "version": "0.6.4",
"author": "Argentina Ortega Sainz", "author": "Obsidian Community (Formerly Argentina Ortega Sainz)",
"authorUrl": "https://argentinaos.com/", "authorUrl": "https://github.com/obsidian-community/nldates",
"isDesktopOnly": false, "isDesktopOnly": false,
"minAppVersion": "1.0.0" "minAppVersion": "1.0.0"
} }
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-livesync", "id": "obsidian-livesync",
"name": "Self-hosted LiveSync", "name": "Self-hosted LiveSync",
"version": "0.25.83", "version": "1.0.2",
"minAppVersion": "1.7.2", "minAppVersion": "1.7.2",
"description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
"author": "vorotamoroz", "author": "vorotamoroz",
+264 -23
View File
@@ -12,13 +12,26 @@
background-color: var(--text-muted); background-color: var(--text-muted);
} }
.vpk-action-dialog__message {
user-select: text;
-webkit-user-select: text;
}
.conflict-dev-name { .conflict-dev-name {
display: inline-block; display: inline-block;
min-width: 5em; min-width: 5em;
} }
.conflict-action-container {
display: flex;
flex-direction: column;
gap: var(--size-4-2);
margin-top: var(--size-4-2);
}
.conflict-action-button { .conflict-action-button {
margin-right: 4px; width: 100%;
margin: 0;
} }
.op-scrollable { .op-scrollable {
@@ -138,8 +151,8 @@ div.sls-setting-menu-btn {
/* width: 100%; */ /* width: 100%; */
} }
.sls-setting-tab:hover~div.sls-setting-menu-btn, .sls-setting-tab:hover ~ div.sls-setting-menu-btn,
.sls-setting-label.selected .sls-setting-tab:checked~div.sls-setting-menu-btn { .sls-setting-label.selected .sls-setting-tab:checked ~ div.sls-setting-menu-btn {
background-color: var(--interactive-accent); background-color: var(--interactive-accent);
color: var(--text-on-accent); color: var(--text-on-accent);
} }
@@ -174,9 +187,16 @@ body {
/* padding: 2px; */ /* padding: 2px; */
margin: 1px; margin: 1px;
border-radius: 4px; border-radius: 4px;
background-image: linear-gradient(-45deg, background-image: linear-gradient(
var(--sls-col-warn-stripe1) 25%, var(--sls-col-warn-stripe2) 25%, var(--sls-col-warn-stripe2) 50%, -45deg,
var(--sls-col-warn-stripe1) 50%, var(--sls-col-warn-stripe1) 75%, var(--sls-col-warn-stripe2) 75%, var(--sls-col-warn-stripe2)); var(--sls-col-warn-stripe1) 25%,
var(--sls-col-warn-stripe2) 25%,
var(--sls-col-warn-stripe2) 50%,
var(--sls-col-warn-stripe1) 50%,
var(--sls-col-warn-stripe1) 75%,
var(--sls-col-warn-stripe2) 75%,
var(--sls-col-warn-stripe2)
);
background-size: 30px 30px; background-size: 30px 30px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@@ -196,7 +216,6 @@ body {
100% { 100% {
background-position: 30px 0; background-position: 30px 0;
} }
} }
.sls-setting-menu-buttons label { .sls-setting-menu-buttons label {
@@ -301,33 +320,95 @@ body {
background-color: rgba(var(--background-modifier-error-rgb), 0.3); background-color: rgba(var(--background-modifier-error-rgb), 0.3);
} }
.sls-setting-disabled input[type=text], .sls-setting-disabled input[type="text"],
.sls-setting-disabled input[type=number], .sls-setting-disabled input[type="number"],
.sls-setting-disabled input[type=password] { .sls-setting-disabled input[type="password"] {
filter: brightness(80%); filter: brightness(80%);
color: var(--text-muted); color: var(--text-muted);
} }
.sls-setting-hidden { .sls-setting-hidden {
display: none; display: none;
} }
.sls-setting-obsolete { .sls-setting-obsolete {
/* background-image: linear-gradient(-45deg, /* background-image: linear-gradient(-45deg,
var(--sls-col-warn-stripe1) 25%, var(--sls-col-warn-stripe2) 25%, var(--sls-col-warn-stripe2) 50%, var(--sls-col-warn-stripe1) 25%, var(--sls-col-warn-stripe2) 25%, var(--sls-col-warn-stripe2) 50%,
var(--sls-col-warn-stripe1) 50%, var(--sls-col-warn-stripe1) 75%, var(--sls-col-warn-stripe2) 75%, var(--sls-col-warn-stripe2)); */ var(--sls-col-warn-stripe1) 50%, var(--sls-col-warn-stripe1) 75%, var(--sls-col-warn-stripe2) 75%, var(--sls-col-warn-stripe2)); */
background-image: linear-gradient(-45deg, background-image: linear-gradient(
transparent 25%, rgba(var(--background-secondary), 0.1) 25%, rgba(var(--background-secondary), 0.1) 50%, transparent 50%, transparent 75%, rgba(var(--background-secondary), 0.1) 75%, rgba(var(--background-secondary), 0.1)); -45deg,
transparent 25%,
rgba(var(--background-secondary), 0.1) 25%,
rgba(var(--background-secondary), 0.1) 50%,
transparent 50%,
transparent 75%,
rgba(var(--background-secondary), 0.1) 75%,
rgba(var(--background-secondary), 0.1)
);
background-size: 60px 60px; background-size: 60px 60px;
} }
.password-input>.setting-item-control>input { .password-input > .setting-item-control > input {
-webkit-text-security: disc; -webkit-text-security: disc;
} }
.sls-onboarding-invitation-action {
display: inline-flex;
min-width: 44px;
min-height: 44px;
align-items: center;
justify-content: center;
}
.sls-review-harness {
box-sizing: border-box;
max-width: 100%;
overflow-x: clip;
padding-bottom: max(1rem, env(safe-area-inset-bottom));
}
.sls-review-harness .setting-item,
.sls-review-harness .setting-item-control {
flex-wrap: wrap;
max-width: 100%;
}
.sls-review-harness .setting-item-info {
min-width: min(16rem, 100%);
}
.sls-review-harness .setting-item-control {
gap: 0.5rem;
}
.sls-review-harness button {
min-height: 44px;
max-width: 100%;
white-space: normal;
}
.sls-review-harness__result,
.sls-review-harness__warning,
.sls-review-harness__privacy,
.sls-review-harness__error,
.sls-review-harness__resumed {
max-width: 100%;
overflow-wrap: anywhere;
}
.sls-review-harness__result {
margin: 0 0 1rem;
}
.sls-review-harness__warning,
.sls-review-harness__error {
color: var(--text-error);
}
.sls-review-harness__resumed {
color: var(--text-success);
}
span.ls-mark-cr::after { span.ls-mark-cr::after {
user-select: none; user-select: none;
content: "↲"; content: "↲";
@@ -378,7 +459,6 @@ span.ls-mark-cr::after {
} }
} }
.livesync-status { .livesync-status {
user-select: none; user-select: none;
pointer-events: none; pointer-events: none;
@@ -401,13 +481,13 @@ span.ls-mark-cr::after {
font-size: 80%; font-size: 80%;
} }
div.workspace-leaf-content[data-type=bases] .livesync-status { div.workspace-leaf-content[data-type="bases"] .livesync-status {
top: calc(var(--bases-header-height) + var(--header-height)); top: calc(var(--bases-header-height) + var(--header-height));
padding: 5px; padding: 5px;
padding-right: 18px; padding-right: 18px;
} }
.is-mobile div.workspace-leaf-content[data-type=bases] .livesync-status { .is-mobile div.workspace-leaf-content[data-type="bases"] .livesync-status {
top: calc(var(--bases-header-height) + var(--view-header-height)); top: calc(var(--bases-header-height) + var(--view-header-height));
padding: 6px; padding: 6px;
padding-right: 18px; padding-right: 18px;
@@ -422,7 +502,6 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
.livesync-status .livesync-status-loghistory { .livesync-status .livesync-status-loghistory {
text-align: left; text-align: left;
opacity: 0.4; opacity: 0.4;
} }
.livesync-status div.livesync-status-messagearea:empty { .livesync-status div.livesync-status-messagearea:empty {
@@ -440,7 +519,6 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
margin-left: auto; margin-left: auto;
} }
.menu-setting-poweruser-disabled .sls-setting-poweruser { .menu-setting-poweruser-disabled .sls-setting-poweruser {
display: none; display: none;
} }
@@ -459,7 +537,7 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
top: 2.5em; top: 2.5em;
background-color: var(--background-secondary-alt); background-color: var(--background-secondary-alt);
border-radius: 10px; border-radius: 10px;
padding: 0.5em 1.0em; padding: 0.5em 1em;
} }
.active-pane .sls-setting-panel-title { .active-pane .sls-setting-panel-title {
@@ -476,6 +554,34 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
font-size: 0.8em; font-size: 0.8em;
} }
body.is-mobile .livesync-message-box-container {
box-sizing: border-box;
padding-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));
padding-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));
padding-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));
padding-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));
}
body.is-mobile .livesync-message-box-container .modal {
max-height: 100%;
}
body.is-mobile .livesync-message-box-container button {
height: auto;
min-height: var(--input-height);
white-space: normal;
}
body.is-mobile .livesync-compatibility-review-notice {
box-sizing: border-box;
margin-right: calc(64px + var(--safe-area-inset-right, env(safe-area-inset-right, 0px)));
min-width: 0;
width: calc(
100vw - 88px - var(--safe-area-inset-left, env(safe-area-inset-left, 0px)) -
var(--safe-area-inset-right, env(safe-area-inset-right, 0px))
);
}
.sls-qr { .sls-qr {
display: flex; display: flex;
justify-content: center; justify-content: center;
@@ -488,7 +594,98 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
overflow-x: auto; overflow-x: auto;
white-space: pre-wrap; white-space: pre-wrap;
word-break: break-all; word-break: break-all;
}
.sls-repair-results {
display: grid;
gap: var(--size-4-3);
}
.sls-repair-result {
padding: var(--size-4-3);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-secondary);
}
.sls-repair-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--size-4-2);
min-width: 0;
}
.sls-repair-header > :first-child {
flex: 1 1 auto;
min-width: 0;
}
.sls-repair-header h6 {
margin: 0;
overflow-wrap: anywhere;
}
.sls-repair-status {
display: flex;
flex-wrap: wrap;
gap: var(--size-4-2);
margin-top: var(--size-4-1);
font-size: var(--font-ui-smaller);
}
.sls-repair-status-ok {
color: var(--text-success);
}
.sls-repair-status-warning {
color: var(--text-warning);
}
.sls-repair-metric {
margin-top: var(--size-4-1);
font-size: var(--font-ui-smaller);
line-height: var(--line-height-tight);
overflow-wrap: anywhere;
}
.sls-repair-action-menu {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--clickable-icon-size);
width: var(--clickable-icon-size);
height: var(--clickable-icon-size);
padding: 0;
}
.sls-repair-action-menu .svg-icon {
width: 18px;
height: 18px;
}
.sls-repair-revision {
margin-top: var(--size-4-2);
padding: var(--size-4-2);
border-left: 3px solid var(--background-modifier-border);
background: var(--background-primary-alt);
}
.sls-repair-revision-title {
font-weight: var(--font-semibold);
overflow-wrap: anywhere;
}
.sls-repair-revision code {
display: block;
margin-top: var(--size-4-1);
overflow-wrap: anywhere;
white-space: normal;
}
.sls-repair-ancestor-warning {
margin-top: var(--size-4-2);
color: var(--text-warning);
} }
/* Diff navigation */ /* Diff navigation */
@@ -551,6 +748,51 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
color: var(--text-muted); color: var(--text-muted);
} }
.history-search-row button:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.history-rev-nav-row {
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 8px;
}
.history-rev-nav-row input[type="range"] {
flex-grow: 1;
margin-bottom: 0;
}
.history-rev-nav-btn {
flex-shrink: 0;
padding: 2px 10px;
font-size: 0.9em;
cursor: pointer;
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
background-color: var(--background-secondary);
color: var(--text-normal);
}
.history-rev-nav-btn:hover:not(:disabled) {
background-color: var(--background-modifier-hover);
}
.history-rev-nav-btn:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.history-rev-indicator {
flex-shrink: 0;
font-size: 0.85em;
color: var(--text-muted);
min-width: 4.5em;
text-align: right;
}
.history-diff-options-row { .history-diff-options-row {
justify-content: space-between; justify-content: space-between;
} }
@@ -570,4 +812,3 @@ div.workspace-leaf-content[data-type=bases] .livesync-status {
outline-offset: 1px; outline-offset: 1px;
border-radius: 2px; border-radius: 2px;
} }
+89 -89
View File
@@ -1000,55 +1000,55 @@
"id": 38835133, "id": 38835133,
"title": "硬/软件评测", "title": "硬/软件评测",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:14.880Z" "lastSyncDate": "2026-08-01T10:03:03.494Z"
}, },
"38835134": { "38835134": {
"id": 38835134, "id": 38835134,
"title": "硬/软件评测/硬件评测", "title": "硬/软件评测/硬件评测",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:15.710Z", "lastSyncDate": "2026-08-01T10:03:04.285Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835135": { "38835135": {
"id": 38835135, "id": 38835135,
"title": "硬/软件评测/20230709", "title": "硬/软件评测/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:16.598Z", "lastSyncDate": "2026-08-01T10:03:05.346Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835136": { "38835136": {
"id": 38835136, "id": 38835136,
"title": "硬/软件评测/opencore", "title": "硬/软件评测/opencore",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:17.360Z", "lastSyncDate": "2026-08-01T10:03:06.247Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835137": { "38835137": {
"id": 38835137, "id": 38835137,
"title": "硬/软件评测/20230826", "title": "硬/软件评测/20230826",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:18.166Z", "lastSyncDate": "2026-08-01T10:03:07.019Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835138": { "38835138": {
"id": 38835138, "id": 38835138,
"title": "硬/软件评测/elasticsearch", "title": "硬/软件评测/elasticsearch",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:19.424Z", "lastSyncDate": "2026-08-01T10:03:07.859Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835140": { "38835140": {
"id": 38835140, "id": 38835140,
"title": "硬/软件评测/记账软件", "title": "硬/软件评测/记账软件",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:20.252Z", "lastSyncDate": "2026-08-01T10:03:08.630Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835141": { "38835141": {
"id": 38835141, "id": 38835141,
"title": "硬/软件评测/图片工具", "title": "硬/软件评测/图片工具",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:20.973Z", "lastSyncDate": "2026-08-01T10:03:09.900Z",
"parentId": 38835133 "parentId": 38835133
}, },
"38835142": { "38835142": {
@@ -1143,7 +1143,7 @@
"id": 38835159, "id": 38835159,
"title": "群晖NAS/docker", "title": "群晖NAS/docker",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:21.752Z", "lastSyncDate": "2026-08-01T10:03:10.623Z",
"parentId": 38835158 "parentId": 38835158
}, },
"38835160": { "38835160": {
@@ -1162,21 +1162,21 @@
"id": 38835163, "id": 38835163,
"title": "群晖NAS/20230708", "title": "群晖NAS/20230708",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:22.636Z", "lastSyncDate": "2026-08-01T10:03:11.745Z",
"parentId": 38835158 "parentId": 38835158
}, },
"38835164": { "38835164": {
"id": 38835164, "id": 38835164,
"title": "群晖NAS/20230811", "title": "群晖NAS/20230811",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:23.520Z", "lastSyncDate": "2026-08-01T10:03:12.807Z",
"parentId": 38835158 "parentId": 38835158
}, },
"38835165": { "38835165": {
"id": 38835165, "id": 38835165,
"title": "破解网站", "title": "破解网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:24.270Z" "lastSyncDate": "2026-08-01T10:03:14.148Z"
}, },
"38835166": { "38835166": {
"id": 38835166, "id": 38835166,
@@ -1199,13 +1199,13 @@
"id": 38835169, "id": 38835169,
"title": "越狱", "title": "越狱",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:25.582Z" "lastSyncDate": "2026-08-01T10:03:15.218Z"
}, },
"38835170": { "38835170": {
"id": 38835170, "id": 38835170,
"title": "越狱/安装ipa", "title": "越狱/安装ipa",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:26.341Z", "lastSyncDate": "2026-08-01T10:03:16.292Z",
"parentId": 38835169 "parentId": 38835169
}, },
"38835171": { "38835171": {
@@ -1224,7 +1224,7 @@
"id": 38835174, "id": 38835174,
"title": "越狱/巨魔", "title": "越狱/巨魔",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:27.121Z", "lastSyncDate": "2026-08-01T10:03:17.415Z",
"parentId": 38835169 "parentId": 38835169
}, },
"38835175": { "38835175": {
@@ -1422,7 +1422,7 @@
"id": 38835212, "id": 38835212,
"title": "英语学习", "title": "英语学习",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:28.425Z" "lastSyncDate": "2026-08-01T10:03:18.689Z"
}, },
"38835213": { "38835213": {
"id": 38835213, "id": 38835213,
@@ -1493,7 +1493,7 @@
"id": 38835225, "id": 38835225,
"title": "幼儿教育", "title": "幼儿教育",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:29.205Z" "lastSyncDate": "2026-08-01T10:03:19.910Z"
}, },
"38835226": { "38835226": {
"id": 38835226, "id": 38835226,
@@ -1647,28 +1647,28 @@
"id": 38835253, "id": 38835253,
"title": "物联网解决方案/产品评估", "title": "物联网解决方案/产品评估",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:29.957Z", "lastSyncDate": "2026-08-01T10:03:20.995Z",
"parentId": 38835252 "parentId": 38835252
}, },
"38835254": { "38835254": {
"id": 38835254, "id": 38835254,
"title": "物联网解决方案/产品评估/语音机器人", "title": "物联网解决方案/产品评估/语音机器人",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:30.727Z", "lastSyncDate": "2026-08-01T10:03:22.142Z",
"parentId": 38835253 "parentId": 38835253
}, },
"38835255": { "38835255": {
"id": 38835255, "id": 38835255,
"title": "物联网解决方案/产品评估/语音机器人/智慧农业", "title": "物联网解决方案/产品评估/语音机器人/智慧农业",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:31.973Z", "lastSyncDate": "2026-08-01T10:03:23.354Z",
"parentId": 38835254 "parentId": 38835254
}, },
"38835256": { "38835256": {
"id": 38835256, "id": 38835256,
"title": "物联网解决方案/产品评估/语音机器人/智慧农业/智慧照明", "title": "物联网解决方案/产品评估/语音机器人/智慧农业/智慧照明",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:32.719Z", "lastSyncDate": "2026-08-01T10:03:24.368Z",
"parentId": 38835255 "parentId": 38835255
}, },
"38835257": { "38835257": {
@@ -1681,7 +1681,7 @@
"id": 38835258, "id": 38835258,
"title": "物联网解决方案/供应商", "title": "物联网解决方案/供应商",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:34.004Z", "lastSyncDate": "2026-08-01T10:03:25.837Z",
"parentId": 38835252 "parentId": 38835252
}, },
"38835259": { "38835259": {
@@ -1706,7 +1706,7 @@
"id": 38835262, "id": 38835262,
"title": "物联网解决方案/安防网站", "title": "物联网解决方案/安防网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:35.487Z", "lastSyncDate": "2026-08-01T10:03:27.846Z",
"parentId": 38835252 "parentId": 38835252
}, },
"38835263": { "38835263": {
@@ -1736,62 +1736,62 @@
"id": 38835268, "id": 38835268,
"title": "学习网站/ChatGPT", "title": "学习网站/ChatGPT",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:36.244Z", "lastSyncDate": "2026-08-01T10:03:28.695Z",
"parentId": 38835265 "parentId": 38835265
}, },
"38835269": { "38835269": {
"id": 38835269, "id": 38835269,
"title": "学习网站/ChatGPT/20230709", "title": "学习网站/ChatGPT/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:36.985Z", "lastSyncDate": "2026-08-01T10:03:29.448Z",
"parentId": 38835268 "parentId": 38835268
}, },
"38835270": { "38835270": {
"id": 38835270, "id": 38835270,
"title": "学习网站/Comic", "title": "学习网站/Comic",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:37.703Z", "lastSyncDate": "2026-08-01T10:03:30.434Z",
"parentId": 38835265 "parentId": 38835265
}, },
"38835271": { "38835271": {
"id": 38835271, "id": 38835271,
"title": "开发网站", "title": "开发网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:38.944Z" "lastSyncDate": "2026-08-01T10:03:31.656Z"
}, },
"38835272": { "38835272": {
"id": 38835272, "id": 38835272,
"title": "开发网站/20230709", "title": "开发网站/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:39.748Z", "lastSyncDate": "2026-08-01T10:03:32.423Z",
"parentId": 38835271 "parentId": 38835271
}, },
"38835273": { "38835273": {
"id": 38835273, "id": 38835273,
"title": "开发网站/VSCode", "title": "开发网站/VSCode",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:40.962Z", "lastSyncDate": "2026-08-01T10:03:33.671Z",
"parentId": 38835271 "parentId": 38835271
}, },
"38835274": { "38835274": {
"id": 38835274, "id": 38835274,
"title": "开发网站/Python", "title": "开发网站/Python",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:41.828Z", "lastSyncDate": "2026-08-01T10:03:34.631Z",
"parentId": 38835271 "parentId": 38835271
}, },
"38835275": { "38835275": {
"id": 38835275, "id": 38835275,
"title": "开发网站/F^Q", "title": "开发网站/F^Q",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:43.027Z", "lastSyncDate": "2026-08-01T10:03:35.371Z",
"parentId": 38835271 "parentId": 38835271
}, },
"38835276": { "38835276": {
"id": 38835276, "id": 38835276,
"title": "开发网站/F^Q/20230812", "title": "开发网站/F^Q/20230812",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:44.237Z", "lastSyncDate": "2026-08-01T10:03:36.086Z",
"parentId": 38835275 "parentId": 38835275
}, },
"38835285": { "38835285": {
@@ -2905,7 +2905,7 @@
"id": 38835489, "id": 38835489,
"title": "群晖NAS", "title": "群晖NAS",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:45.565Z" "lastSyncDate": "2026-08-01T10:03:36.857Z"
}, },
"38835490": { "38835490": {
"id": 38835490, "id": 38835490,
@@ -2917,14 +2917,14 @@
"id": 38835491, "id": 38835491,
"title": "群晖NAS/nginx", "title": "群晖NAS/nginx",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:46.331Z", "lastSyncDate": "2026-08-01T10:03:37.646Z",
"parentId": 38835489 "parentId": 38835489
}, },
"38835492": { "38835492": {
"id": 38835492, "id": 38835492,
"title": "群晖NAS/20230709", "title": "群晖NAS/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:47.134Z", "lastSyncDate": "2026-08-01T10:03:38.692Z",
"parentId": 38835489 "parentId": 38835489
}, },
"38835493": { "38835493": {
@@ -2976,14 +2976,14 @@
"id": 38835502, "id": 38835502,
"title": "越狱/IPA", "title": "越狱/IPA",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:48.446Z", "lastSyncDate": "2026-08-01T10:03:40.082Z",
"parentId": 38835500 "parentId": 38835500
}, },
"38835503": { "38835503": {
"id": 38835503, "id": 38835503,
"title": "越狱/IPA提取", "title": "越狱/IPA提取",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:49.259Z", "lastSyncDate": "2026-08-01T10:03:40.870Z",
"parentId": 38835500 "parentId": 38835500
}, },
"38835504": { "38835504": {
@@ -3434,7 +3434,7 @@
"id": 38835584, "id": 38835584,
"title": "物联网解决方案/行业资讯", "title": "物联网解决方案/行业资讯",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:50.588Z", "lastSyncDate": "2026-08-01T10:03:42.373Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835585": { "38835585": {
@@ -3447,21 +3447,21 @@
"id": 38835586, "id": 38835586,
"title": "物联网解决方案/数字孪生", "title": "物联网解决方案/数字孪生",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:51.755Z", "lastSyncDate": "2026-08-01T10:03:43.115Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835587": { "38835587": {
"id": 38835587, "id": 38835587,
"title": "物联网解决方案/智慧停车", "title": "物联网解决方案/智慧停车",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:52.493Z", "lastSyncDate": "2026-08-01T10:03:43.875Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835588": { "38835588": {
"id": 38835588, "id": 38835588,
"title": "物联网解决方案/智能家居", "title": "物联网解决方案/智能家居",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:53.312Z", "lastSyncDate": "2026-08-01T10:03:44.605Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835589": { "38835589": {
@@ -3474,27 +3474,27 @@
"id": 38835590, "id": 38835590,
"title": "物联网解决方案/智慧酒店", "title": "物联网解决方案/智慧酒店",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:54.583Z", "lastSyncDate": "2026-08-01T10:03:45.838Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835591": { "38835591": {
"id": 38835591, "id": 38835591,
"title": "物联网解决方案/智慧园区", "title": "物联网解决方案/智慧园区",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:55.360Z", "lastSyncDate": "2026-08-01T10:03:46.608Z",
"parentId": 38835579 "parentId": 38835579
}, },
"38835592": { "38835592": {
"id": 38835592, "id": 38835592,
"title": "学习网站", "title": "学习网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:56.186Z" "lastSyncDate": "2026-08-01T10:03:47.515Z"
}, },
"38835593": { "38835593": {
"id": 38835593, "id": 38835593,
"title": "学习网站/博客", "title": "学习网站/博客",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:56.945Z", "lastSyncDate": "2026-08-01T10:03:48.504Z",
"parentId": 38835592 "parentId": 38835592
}, },
"38835595": { "38835595": {
@@ -3519,243 +3519,243 @@
"id": 38835599, "id": 38835599,
"title": "开发网站", "title": "开发网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:57.750Z" "lastSyncDate": "2026-08-01T10:03:49.737Z"
}, },
"38835600": { "38835600": {
"id": 38835600, "id": 38835600,
"title": "开发网站/20230709", "title": "开发网站/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:58.734Z", "lastSyncDate": "2026-08-01T10:03:50.661Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835601": { "38835601": {
"id": 38835601, "id": 38835601,
"title": "开发网站/VSCode", "title": "开发网站/VSCode",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:54:59.687Z", "lastSyncDate": "2026-08-01T10:03:51.505Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835602": { "38835602": {
"id": 38835602, "id": 38835602,
"title": "开发网站/Python", "title": "开发网站/Python",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:00.493Z", "lastSyncDate": "2026-08-01T10:03:52.818Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835603": { "38835603": {
"id": 38835603, "id": 38835603,
"title": "开发网站/F^Q", "title": "开发网站/F^Q",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:01.740Z", "lastSyncDate": "2026-08-01T10:03:53.572Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835604": { "38835604": {
"id": 38835604, "id": 38835604,
"title": "开发网站/F^Q/20230812", "title": "开发网站/F^Q/20230812",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:02.514Z", "lastSyncDate": "2026-08-01T10:03:54.662Z",
"parentId": 38835603 "parentId": 38835603
}, },
"38835605": { "38835605": {
"id": 38835605, "id": 38835605,
"title": "开发网站/SQL", "title": "开发网站/SQL",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:03.258Z", "lastSyncDate": "2026-08-01T10:03:55.424Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835606": { "38835606": {
"id": 38835606, "id": 38835606,
"title": "开发网站/App打包", "title": "开发网站/App打包",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:04.587Z", "lastSyncDate": "2026-08-01T10:03:56.223Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835607": { "38835607": {
"id": 38835607, "id": 38835607,
"title": "开发网站/抓包", "title": "开发网站/抓包",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:05.933Z", "lastSyncDate": "2026-08-01T10:03:57.051Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835608": { "38835608": {
"id": 38835608, "id": 38835608,
"title": "开发网站/抓包/抓音频", "title": "开发网站/抓包/抓音频",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:07.412Z", "lastSyncDate": "2026-08-01T10:03:57.799Z",
"parentId": 38835607 "parentId": 38835607
}, },
"38835609": { "38835609": {
"id": 38835609, "id": 38835609,
"title": "开发网站/抓包/charles", "title": "开发网站/抓包/charles",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:08.735Z", "lastSyncDate": "2026-08-01T10:03:58.705Z",
"parentId": 38835607 "parentId": 38835607
}, },
"38835610": { "38835610": {
"id": 38835610, "id": 38835610,
"title": "开发网站/pdf.js", "title": "开发网站/pdf.js",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:09.713Z", "lastSyncDate": "2026-08-01T10:04:00.295Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835611": { "38835611": {
"id": 38835611, "id": 38835611,
"title": "开发网站/webplayer", "title": "开发网站/webplayer",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:10.610Z", "lastSyncDate": "2026-08-01T10:04:01.514Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835612": { "38835612": {
"id": 38835612, "id": 38835612,
"title": "开发网站/加解密", "title": "开发网站/加解密",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:11.422Z", "lastSyncDate": "2026-08-01T10:04:02.285Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835613": { "38835613": {
"id": 38835613, "id": 38835613,
"title": "开发网站/cors", "title": "开发网站/cors",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:12.391Z", "lastSyncDate": "2026-08-01T10:04:03.388Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835614": { "38835614": {
"id": 38835614, "id": 38835614,
"title": "开发网站/Delphi", "title": "开发网站/Delphi",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:13.371Z", "lastSyncDate": "2026-08-01T10:04:04.427Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835615": { "38835615": {
"id": 38835615, "id": 38835615,
"title": "开发网站/APK反编译", "title": "开发网站/APK反编译",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:14.613Z", "lastSyncDate": "2026-08-01T10:04:05.434Z",
"parentId": 38835599 "parentId": 38835599
}, },
"38835616": { "38835616": {
"id": 38835616, "id": 38835616,
"title": "开源项目", "title": "开源项目",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:15.559Z" "lastSyncDate": "2026-08-01T10:04:06.465Z"
}, },
"38835617": { "38835617": {
"id": 38835617, "id": 38835617,
"title": "开源项目/siyuan", "title": "开源项目/siyuan",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:16.313Z", "lastSyncDate": "2026-08-01T10:04:07.177Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835618": { "38835618": {
"id": 38835618, "id": 38835618,
"title": "开源项目/rustdesk", "title": "开源项目/rustdesk",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:17.081Z", "lastSyncDate": "2026-08-01T10:04:07.932Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835619": { "38835619": {
"id": 38835619, "id": 38835619,
"title": "开源项目/SiP", "title": "开源项目/SiP",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:18.358Z", "lastSyncDate": "2026-08-01T10:04:09.136Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835620": { "38835620": {
"id": 38835620, "id": 38835620,
"title": "开源项目/GitHub", "title": "开源项目/GitHub",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:19.782Z", "lastSyncDate": "2026-08-01T10:04:10.394Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835621": { "38835621": {
"id": 38835621, "id": 38835621,
"title": "开源项目/GitHub/20230709", "title": "开源项目/GitHub/20230709",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:21.407Z", "lastSyncDate": "2026-08-01T10:04:11.414Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835622": { "38835622": {
"id": 38835622, "id": 38835622,
"title": "开源项目/GitHub/aria2", "title": "开源项目/GitHub/aria2",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:22.347Z", "lastSyncDate": "2026-08-01T10:04:12.355Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835624": { "38835624": {
"id": 38835624, "id": 38835624,
"title": "开源项目/GitHub/小白羊", "title": "开源项目/GitHub/小白羊",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:23.424Z", "lastSyncDate": "2026-08-01T10:04:13.584Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835625": { "38835625": {
"id": 38835625, "id": 38835625,
"title": "开源项目/GitHub/alist", "title": "开源项目/GitHub/alist",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:24.683Z", "lastSyncDate": "2026-08-01T10:04:14.334Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835626": { "38835626": {
"id": 38835626, "id": 38835626,
"title": "开源项目/GitHub/RustDesk", "title": "开源项目/GitHub/RustDesk",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:25.401Z", "lastSyncDate": "2026-08-01T10:04:15.062Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835627": { "38835627": {
"id": 38835627, "id": 38835627,
"title": "开源项目/GitHub/imagine", "title": "开源项目/GitHub/imagine",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:26.617Z", "lastSyncDate": "2026-08-01T10:04:16.285Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835628": { "38835628": {
"id": 38835628, "id": 38835628,
"title": "开源项目/GitHub/Bridge", "title": "开源项目/GitHub/Bridge",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:27.896Z", "lastSyncDate": "2026-08-01T10:04:17.145Z",
"parentId": 38835620 "parentId": 38835620
}, },
"38835629": { "38835629": {
"id": 38835629, "id": 38835629,
"title": "开源项目/OnlyOffice", "title": "开源项目/OnlyOffice",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:28.887Z", "lastSyncDate": "2026-08-01T10:04:18.695Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835630": { "38835630": {
"id": 38835630, "id": 38835630,
"title": "开源项目/OnlyOffice/20230809", "title": "开源项目/OnlyOffice/20230809",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:29.785Z", "lastSyncDate": "2026-08-01T10:04:19.475Z",
"parentId": 38835629 "parentId": 38835629
}, },
"38835631": { "38835631": {
"id": 38835631, "id": 38835631,
"title": "开源项目/日历", "title": "开源项目/日历",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:31.126Z", "lastSyncDate": "2026-08-01T10:04:20.745Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835632": { "38835632": {
"id": 38835632, "id": 38835632,
"title": "开源项目/OCR", "title": "开源项目/OCR",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:32.272Z", "lastSyncDate": "2026-08-01T10:04:21.796Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835633": { "38835633": {
"id": 38835633, "id": 38835633,
"title": "开源项目/Bridge", "title": "开源项目/Bridge",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:33.030Z", "lastSyncDate": "2026-08-01T10:04:22.548Z",
"parentId": 38835616 "parentId": 38835616
}, },
"38835636": { "38835636": {
"id": 38835636, "id": 38835636,
"title": "游戏网站", "title": "游戏网站",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:34.158Z" "lastSyncDate": "2026-08-01T10:04:23.336Z"
}, },
"38835638": { "38835638": {
"id": 38835638, "id": 38835638,
@@ -3879,27 +3879,27 @@
"id": 38835659, "id": 38835659,
"title": "电子书", "title": "电子书",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:35.049Z" "lastSyncDate": "2026-08-01T10:04:24.117Z"
}, },
"38835660": { "38835660": {
"id": 38835660, "id": 38835660,
"title": "电子书/电子书制作", "title": "电子书/电子书制作",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:36.330Z", "lastSyncDate": "2026-08-01T10:04:25.448Z",
"parentId": 38835659 "parentId": 38835659
}, },
"38835661": { "38835661": {
"id": 38835661, "id": 38835661,
"title": "电子书/calibre", "title": "电子书/calibre",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:37.096Z", "lastSyncDate": "2026-08-01T10:04:26.217Z",
"parentId": 38835659 "parentId": 38835659
}, },
"38835662": { "38835662": {
"id": 38835662, "id": 38835662,
"title": "电子书/20230826", "title": "电子书/20230826",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:37.895Z", "lastSyncDate": "2026-08-01T10:04:27.310Z",
"parentId": 38835659 "parentId": 38835659
}, },
"38835663": { "38835663": {
@@ -3916,7 +3916,7 @@
"id": 38835665, "id": 38835665,
"title": "Favorites", "title": "Favorites",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:38.656Z" "lastSyncDate": "2026-08-01T10:04:28.036Z"
}, },
"38835666": { "38835666": {
"id": 38835666, "id": 38835666,
@@ -3934,26 +3934,26 @@
"id": 38835668, "id": 38835668,
"title": "翻译", "title": "翻译",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:39.459Z" "lastSyncDate": "2026-08-01T10:04:28.800Z"
}, },
"38835669": { "38835669": {
"id": 38835669, "id": 38835669,
"title": "智能家居", "title": "智能家居",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:40.832Z" "lastSyncDate": "2026-08-01T10:04:29.770Z"
}, },
"38835670": { "38835670": {
"id": 38835670, "id": 38835670,
"title": "智能家居/HomeAssist", "title": "智能家居/HomeAssist",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:41.612Z", "lastSyncDate": "2026-08-01T10:04:30.557Z",
"parentId": 38835669 "parentId": 38835669
}, },
"58561271": { "58561271": {
"id": 58561271, "id": 58561271,
"title": "ClipperBox", "title": "ClipperBox",
"sync": true, "sync": true,
"lastSyncDate": "2026-07-29T21:55:42.555Z" "lastSyncDate": "2026-08-01T10:04:31.886Z"
}, },
"-1": { "-1": {
"id": -1, "id": -1,
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-reminder-plugin", "id": "obsidian-reminder-plugin",
"name": "Reminder", "name": "Reminder",
"version": "1.3.2", "version": "1.4.0",
"minAppVersion": "1.0.3", "minAppVersion": "1.0.3",
"description": "Reminder plugin for Obsidian. This plugin adds feature to manage TODOs with reminder.", "description": "Reminder plugin for Obsidian. This plugin adds feature to manage TODOs with reminder.",
"author": "uphy", "author": "uphy",
+4 -4
View File
@@ -10,13 +10,13 @@
"savePassword": true, "savePassword": true,
"isDefault": true, "isDefault": true,
"lastSelectedCategories": [ "lastSelectedCategories": [
15 1
], ],
"username": "wpAdmin", "username": "wpAdmin",
"encryptedPassword": { "encryptedPassword": {
"key": "{\"alg\":\"A256GCM\",\"ext\":true,\"k\":\"zMoleceJw_wSCoAdfOMHqtQJQ4pZITh_NEFqooLqw8Y\",\"key_ops\":[\"encrypt\",\"decrypt\"],\"kty\":\"oct\"}", "key": "{\"alg\":\"A256GCM\",\"ext\":true,\"k\":\"7Iqj2qFJvPxP2DnfyHDeBothUUsyRQticN6m-cl3Vys\",\"key_ops\":[\"encrypt\",\"decrypt\"],\"kty\":\"oct\"}",
"vector": "hkIfpWbZ5ayi4/Mn", "vector": "7BwGNpXL37h9ci/H",
"encrypted": "5241BmtV2IX5Xwz8norL6j4SP1Ha8WKl" "encrypted": "i+vmxM1EW8hnQtHqWFkFu5RC0BKxqAZG"
} }
} }
], ],
+66 -14
View File
@@ -3,13 +3,16 @@
"inputPrompt": "single-line", "inputPrompt": "single-line",
"persistInputPromptDrafts": true, "persistInputPromptDrafts": true,
"useSelectionAsCaptureValue": true, "useSelectionAsCaptureValue": true,
"searchNestedChoices": true,
"templateFolderLauncherRow": "bottom",
"devMode": false, "devMode": false,
"templateFolderPath": "", "templateFolderPaths": [],
"announceUpdates": "all", "announceUpdates": "all",
"version": "2.12.3", "version": "2.21.0",
"globalVariables": {}, "globalVariables": {},
"onePageInputEnabled": false, "onePageInputEnabled": false,
"disableOnlineFeatures": true, "disableOnlineFeatures": true,
"enableUriCallbacks": false,
"enableRibbonIcon": false, "enableRibbonIcon": false,
"showCaptureNotification": true, "showCaptureNotification": true,
"showInputCancellationNotification": false, "showInputCancellationNotification": false,
@@ -56,28 +59,74 @@
"name": "gpt-4", "name": "gpt-4",
"maxTokens": 8192 "maxTokens": 8192
}, },
{
"name": "gpt-4-32k",
"maxTokens": 32768
},
{
"name": "gpt-4-1106-preview",
"maxTokens": 128000
},
{ {
"name": "gpt-4-turbo", "name": "gpt-4-turbo",
"maxTokens": 128000 "maxTokens": 128000
}, },
{ {
"name": "gpt-4o", "name": "gpt-4o",
"maxTokens": 128000 "maxTokens": 128000,
"maxOutputTokens": 16384,
"supportsTemperature": true
}, },
{ {
"name": "gpt-4o-mini", "name": "gpt-4o-mini",
"maxTokens": 128000 "maxTokens": 128000,
"maxOutputTokens": 16384,
"supportsTemperature": true
},
{
"name": "gpt-5.5",
"maxTokens": 1050000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4",
"maxTokens": 1050000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4-mini",
"maxTokens": 400000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4-nano",
"maxTokens": 400000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-4.1",
"maxTokens": 1047576,
"maxOutputTokens": 32768,
"supportsTemperature": true
},
{
"name": "gpt-4.1-mini",
"maxTokens": 1047576,
"maxOutputTokens": 32768,
"supportsTemperature": true
},
{
"name": "o3",
"maxTokens": 200000,
"maxOutputTokens": 100000,
"supportsTemperature": false
},
{
"name": "o4-mini",
"maxTokens": 200000,
"maxOutputTokens": 100000,
"supportsTemperature": false
} }
], ],
"modelSource": "auto" "modelSource": "modelsDev",
"autoSyncModels": true,
"id": "openai"
} }
] ]
}, },
@@ -94,7 +143,10 @@
"backfillFileOpeningDefaults": true, "backfillFileOpeningDefaults": true,
"migrateProviderApiKeysToSecretStorage": true, "migrateProviderApiKeysToSecretStorage": true,
"consolidateFileExistsBehavior": true, "consolidateFileExistsBehavior": true,
"repairTemplateFileExistsBehavior": true "repairTemplateFileExistsBehavior": true,
"migrateToMultipleTemplateFolders": true,
"refreshStaleDefaultModelSeeds": true,
"pinAiModelRefs": true
}, },
"macros": [] "macros": []
} }
+397 -82
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,12 +1,12 @@
{ {
"id": "quickadd", "id": "quickadd",
"name": "QuickAdd", "name": "QuickAdd",
"version": "2.12.3", "version": "2.21.0",
"minAppVersion": "1.11.4", "minAppVersion": "1.13.0",
"description": "Quickly add new pages or content to your vault.", "description": "Quickly add new pages or content to your vault.",
"author": "Christian B. B. Houmann", "author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com", "authorUrl": "https://bagerbach.com",
"fundingUrl": "https://www.buymeacoffee.com/chhoumann", "fundingUrl": "https://www.buymeacoffee.com/chhoumann",
"helpUrl": "https://quickadd.obsidian.guide/docs/", "helpUrl": "https://quickadd.obsidian.guide/docs/",
"isDesktopOnly": false "isDesktopOnly": false
} }
File diff suppressed because one or more lines are too long
+108 -52
View File
@@ -1,8 +1,12 @@
{ {
"recentFiles": [ "recentFiles": [
{ {
"basename": "2026-07-29", "basename": "数据备份列表",
"path": "01-工作日记/2026-07-29.md" "path": "03-工作笔记/应用部署/数据备份列表.md"
},
{
"basename": "本地应用部署笔记",
"path": "03-工作笔记/应用部署/本地应用部署笔记.md"
}, },
{ {
"basename": "本地服务器重新规划", "basename": "本地服务器重新规划",
@@ -13,8 +17,108 @@
"path": "03-工作笔记/应用部署/数据存储规划V2.1.md" "path": "03-工作笔记/应用部署/数据存储规划V2.1.md"
}, },
{ {
"basename": "本地应用部署笔记", "basename": "2026-08-01",
"path": "03-工作笔记/应用部署/本地应用部署笔记.md" "path": "01-工作日记/2026-08-01.md"
},
{
"basename": "2026-07-31",
"path": "01-工作日记/2026-07-31.md"
},
{
"basename": "Aio-fnT平台构建笔记",
"path": "03-工作笔记/AioPloto/Aio-fnT平台构建笔记.md"
},
{
"basename": "云盘清单",
"path": "06-数字仓库/061-云资源/云盘清单.md"
},
{
"basename": "我的订阅",
"path": "06-数字仓库/063-订阅/我的订阅.md"
},
{
"basename": "数据恢复",
"path": "08-Inbox/数据恢复.md"
},
{
"basename": "截屏 2026-01-14 22.38.31",
"path": "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.38.31.png"
},
{
"basename": "截屏 2026-01-14 22.44.12 2",
"path": "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.44.12 2.png"
},
{
"basename": "截屏 2026-01-14 22.40.10 1",
"path": "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.40.10 1.png"
},
{
"basename": "长郡中学校歌",
"path": "08-Inbox/长郡中学校歌.md"
},
{
"basename": "研学拓展",
"path": "08-Inbox/研学拓展.md"
},
{
"basename": "5月7日-5月11日湖北麻城荆州监利自驾行程",
"path": "08-Inbox/5月7日-5月11日湖北麻城荆州监利自驾行程.md"
},
{
"basename": "当爱已成往事",
"path": "08-Inbox/当爱已成往事.md"
},
{
"basename": "客户端安装步骤",
"path": "03-工作笔记/应用部署/客户端安装步骤.md"
},
{
"basename": "Mermaid示例",
"path": "08-Inbox/Mermaid示例.md"
},
{
"basename": "README",
"path": "README.md"
},
{
"basename": "ufs explorer 10.3 R studio pc 300 Mrt (2026-05-28 11-30)",
"path": "50-Memos/2026/05/ufs explorer 10.3 R studio pc 300 Mrt (2026-05-28 11-30).md"
},
{
"basename": "- [ ] 换了一台服务器测试 (2026-07-05 23-24)",
"path": "50-Memos/2026/07/- [ ] 换了一台服务器测试 (2026-07-05 23-24).md"
},
{
"basename": "83万人遇难的明代大地震,四大怪事至今无解 httpsk.sina.cnarticle787... (2026-07-14 11-32)",
"path": "50-Memos/2026/07/83万人遇难的明代大地震,四大怪事至今无解 httpsk.sina.cnarticle787... (2026-07-14 11-32).md"
},
{
"basename": "多尔衮妻妾成群,11岁就结婚的他为何只有一个女儿?原因非常简单 httpsk.sina.cn... (2026-07-16 16-44)",
"path": "50-Memos/2026/07/多尔衮妻妾成群,11岁就结婚的他为何只有一个女儿?原因非常简单 httpsk.sina.cn... (2026-07-16 16-44).md"
},
{
"basename": "更换了服务器 (2026-07-23 11-54)",
"path": "50-Memos/2026/07/更换了服务器 (2026-07-23 11-54).md"
},
{
"basename": "姚明、吴金星三人一起商议欠款结算问题,初步是三个月内先还8000元,从李鹏程那里走,另外4-5万从机... (2026-07-23 18-42)",
"path": "50-Memos/2026/07/姚明、吴金星三人一起商议欠款结算问题,初步是三个月内先还8000元,从李鹏程那里走,另外4-5万从机... (2026-07-23 18-42).md"
},
{
"basename": "搞懂有氧和无氧的区别,这样减肥才能瘦得快还不反弹",
"path": "04-博客发布/042-健康乐活/搞懂有氧和无氧的区别,这样减肥才能瘦得快还不反弹.md"
},
{
"basename": "2026-07-30",
"path": "01-工作日记/2026-07-30.md"
},
{
"basename": "应用内网穿透设计",
"path": "03-工作笔记/应用部署/应用内网穿透设计.md"
},
{
"basename": "2026-07-29",
"path": "01-工作日记/2026-07-29.md"
}, },
{ {
"basename": "2026-07-28", "basename": "2026-07-28",
@@ -95,54 +199,6 @@
{ {
"basename": "Linux系统非root用户使用docker命令 - 蓝莓薄荷 - 博客园", "basename": "Linux系统非root用户使用docker命令 - 蓝莓薄荷 - 博客园",
"path": "10-WebClipper/Linux系统非root用户使用docker命令 - 蓝莓薄荷 - 博客园.md" "path": "10-WebClipper/Linux系统非root用户使用docker命令 - 蓝莓薄荷 - 博客园.md"
},
{
"basename": "十大硬盘数据恢复软件有哪些?数据恢复软件哪个好用推荐?_数据恢复软件recovery-CSDN博客",
"path": "10-WebClipper/十大硬盘数据恢复软件有哪些?数据恢复软件哪个好用推荐?_数据恢复软件recovery-CSDN博客.md"
},
{
"basename": "Windows使用命令行 查看定时计划任务_windows查看当前定时任务-CSDN博客",
"path": "10-WebClipper/Windows使用命令行 查看定时计划任务_windows查看当前定时任务-CSDN博客.md"
},
{
"basename": "windows定时计划任务的查看、取消、启动和创建方法_windows_Windows系列_操作系统_脚本之家",
"path": "10-WebClipper/windows定时计划任务的查看、取消、启动和创建方法_windows_Windows系列_操作系统_脚本之家.md"
},
{
"basename": "处理实践 - inotify watch 耗尽 - 《Kubernetes 实践指南(Kubernetes Practice Guide)》 - 书栈网 · BookStack",
"path": "10-WebClipper/处理实践 - inotify watch 耗尽 - 《Kubernetes 实践指南(Kubernetes Practice Guide)》 - 书栈网 · BookStack.md"
},
{
"basename": "Use MCP servers in VS Code(English)",
"path": "10-WebClipper/Use MCP servers in VS Code(English).md"
},
{
"basename": "最近热火朝天的 MCP 是什么鬼?如何使用 MCP?一文给你讲清楚!",
"path": "10-WebClipper/最近热火朝天的 MCP 是什么鬼?如何使用 MCP?一文给你讲清楚!.md"
},
{
"basename": "10M…200M下载速度峰值对照表(附计算公式) - 知乎",
"path": "10-WebClipper/10M…200M下载速度峰值对照表(附计算公式) - 知乎.md"
},
{
"basename": "OpenWrt旁路由",
"path": "10-WebClipper/OpenWrt旁路由.md"
},
{
"basename": "飞牛私有云论坛 fnOS 1",
"path": "10-WebClipper/飞牛私有云论坛 fnOS 1.md"
},
{
"basename": "飞牛私有云论坛 fnOS",
"path": "10-WebClipper/飞牛私有云论坛 fnOS.md"
},
{
"basename": "Linux软件包格式全解析-RPM、DEB、AppImage有何区别?如何选择? - 大神的开源笔记",
"path": "10-WebClipper/Linux软件包格式全解析-RPM、DEB、AppImage有何区别?如何选择? - 大神的开源笔记.md"
},
{
"basename": "fs.inotify.max_user_watches默认值太小,导致too many open files_user watch files-CSDN博客",
"path": "10-WebClipper/fs.inotify.max_user_watches默认值太小,导致too many open files_user watch files-CSDN博客.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],
+293 -337
View File
File diff suppressed because one or more lines are too long
+483 -856
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "sheet-plus", "id": "sheet-plus",
"name": "Sheet Plus", "name": "Sheet Plus",
"version": "2.12.11", "version": "2.12.13",
"minAppVersion": "1.5.11", "minAppVersion": "1.5.11",
"description": "Create Excel-like spreadsheets and easily embed them in Markdown.", "description": "Create Excel-like spreadsheets and easily embed them in Markdown.",
"author": "ljcoder", "author": "ljcoder",
+10 -29
View File
@@ -1,38 +1,19 @@
{ {
"data_version": 2,
"command_timeout": 5, "command_timeout": 5,
"templates_folder": "09-Templates", "templates_folder": "09-Templates",
"templates_pairs": [ "templates_pairs": [],
[ "trigger_on_file_creation_mode": "folder",
"",
""
]
],
"trigger_on_file_creation": false,
"auto_jump_to_cursor": false, "auto_jump_to_cursor": false,
"enable_system_commands": false, "jump_to_cursor_after_file_name": false,
"shell_path": "", "shell_path": "",
"user_scripts_folder": "", "user_scripts_folder": "",
"enable_folder_templates": true, "folder_templates": [],
"folder_templates": [ "file_templates": [],
{
"folder": "",
"template": ""
}
],
"enable_file_templates": false,
"file_templates": [
{
"regex": ".*",
"template": ""
}
],
"syntax_highlighting": true, "syntax_highlighting": true,
"syntax_highlighting_mobile": false, "syntax_highlighting_mobile": false,
"enabled_templates_hotkeys": [ "enabled_templates_hotkeys": [],
"" "startup_templates": [],
], "intellisense_render": "1",
"startup_templates": [ "ignore_folders_on_creation": []
""
],
"intellisense_render": 1
} }
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,9 +1,9 @@
{ {
"id": "templater-obsidian", "id": "templater-obsidian",
"name": "Templater", "name": "Templater",
"version": "2.20.6", "version": "2.24.3",
"description": "Advanced templating and automation using handlebars-like syntax.", "description": "Advanced templating and automation using handlebars-like syntax.",
"minAppVersion": "1.12.2", "minAppVersion": "1.13.0",
"author": "SilentVoid", "author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13", "authorUrl": "https://github.com/SilentVoid13",
"fundingUrl": { "fundingUrl": {
+5 -61
View File
@@ -1,69 +1,8 @@
.templater_search {
width: calc(100% - 20px);
}
.templater_div {
border-top: 1px solid var(--background-modifier-border);
}
.templater_div > .setting-item {
border-top: none !important;
align-self: center;
}
.templater_div > .setting-item > .setting-item-control {
justify-content: space-around;
padding: 0;
width: 100%;
}
.templater_div
> .setting-item
> .setting-item-control
> .setting-editor-extra-setting-button {
align-self: center;
}
.templater_donating {
margin: 10px;
}
.templater_title {
margin: 0;
padding: 0;
margin-top: 5px;
text-align: center;
}
.templater_template {
align-self: center;
margin-left: 5px;
margin-right: 5px;
width: 70%;
}
.templater_cmd {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.templater_div2 > .setting-item {
align-content: center;
justify-content: center;
}
.templater-prompt-div, .templater-prompt-div,
.templater-multisuggester-div { .templater-multisuggester-div {
display: flex; display: flex;
} }
.templater-prompt-form {
display: flex;
flex-grow: 1;
}
.templater-prompt-input, .templater-prompt-input,
.templater-multisuggester-input { .templater-multisuggester-input {
flex-grow: 1; flex-grow: 1;
@@ -80,6 +19,11 @@ textarea.templater-prompt-input {
height: 10rem; height: 10rem;
} }
.templater-ignore-folder-modal .modal-content input[type="text"],
.templater-startup-template-modal .modal-content input[type="text"] {
width: 100%;
}
textarea.templater-prompt-input:focus { textarea.templater-prompt-input:focus {
border-color: var(--interactive-accent); border-color: var(--interactive-accent);
} }
+129 -76
View File
@@ -21,18 +21,6 @@
"title": "本地应用部署笔记" "title": "本地应用部署笔记"
} }
}, },
{
"id": "88b6d86a927d1a33",
"type": "leaf",
"state": {
"type": "excalidraw",
"state": {
"file": "03-工作笔记/应用部署/数据存储规划V2.1.md"
},
"icon": "excalidraw-icon",
"title": "数据存储规划V2.1"
}
},
{ {
"id": "aba3dbfc745a5d2d", "id": "aba3dbfc745a5d2d",
"type": "leaf", "type": "leaf",
@@ -56,16 +44,68 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "01-工作日记/2026-07-29.md", "file": "01-工作日记/2026-07-31.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "2026-07-29" "title": "2026-07-31"
}
},
{
"id": "4df99e7c1424ceb6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "03-工作笔记/AioPloto/Aio-fnT平台构建笔记.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Aio-fnT平台构建笔记"
}
},
{
"id": "965644261351770f",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "01-工作日记/2026-08-01.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "2026-08-01"
}
},
{
"id": "eb507e9cb9f806e5",
"type": "leaf",
"state": {
"type": "excalidraw",
"state": {
"file": "03-工作笔记/应用部署/数据存储规划V2.1.md"
},
"icon": "excalidraw-icon",
"title": "数据存储规划V2.1"
}
},
{
"id": "b34d5fd2dadd3271",
"type": "leaf",
"state": {
"type": "excel-pro-view",
"state": {
"file": "03-工作笔记/应用部署/数据备份列表.md"
},
"icon": "lucide-file",
"title": "数据备份列表"
} }
} }
], ],
"currentTab": 3 "currentTab": 6
} }
], ],
"direction": "vertical" "direction": "vertical"
@@ -85,7 +125,9 @@
"type": "file-explorer", "type": "file-explorer",
"state": { "state": {
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
"autoReveal": false "autoReveal": false,
"showSearch": false,
"searchQuery": ""
}, },
"icon": "lucide-folder-closed", "icon": "lucide-folder-closed",
"title": "文件列表" "title": "文件列表"
@@ -137,13 +179,23 @@
"icon": "sheets-in-box", "icon": "sheets-in-box",
"title": "File Tree" "title": "File Tree"
} }
},
{
"id": "cc0da38f60e6df4d",
"type": "leaf",
"state": {
"type": "file-tree-view",
"state": {},
"icon": "sheets-in-box",
"title": "File Tree"
}
} }
], ],
"currentTab": 4 "currentTab": 5
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 313.5 "width": 267.2265625
}, },
"right": { "right": {
"id": "343fa5e3edfc32ef", "id": "343fa5e3edfc32ef",
@@ -244,8 +296,8 @@
"state": { "state": {
"type": "copilot-chat-view", "type": "copilot-chat-view",
"state": {}, "state": {},
"icon": "message-square", "icon": "lucide-ghost",
"title": "Copilot" "title": "copilot-chat-view"
} }
}, },
{ {
@@ -254,8 +306,8 @@
"state": { "state": {
"type": "smtcmp-chat-view", "type": "smtcmp-chat-view",
"state": {}, "state": {},
"icon": "wand-sparkles", "icon": "lucide-ghost",
"title": "Smart composer chat" "title": "smtcmp-chat-view"
} }
}, },
{ {
@@ -264,13 +316,13 @@
"state": { "state": {
"type": "outline", "type": "outline",
"state": { "state": {
"file": "03-工作笔记/应用部署/本地应用部署笔记.md", "file": "03-工作笔记/应用部署/数据备份列表.md",
"followCursor": false, "followCursor": false,
"showSearch": false, "showSearch": false,
"searchQuery": "" "searchQuery": ""
}, },
"icon": "lucide-list", "icon": "lucide-list",
"title": "本地应用部署笔记 的大纲" "title": "大纲"
} }
}, },
{ {
@@ -293,16 +345,6 @@
"title": "Podcast Player" "title": "Podcast Player"
} }
}, },
{
"id": "a68c117666b696c0",
"type": "leaf",
"state": {
"type": "reminder-list",
"state": {},
"icon": "clock",
"title": "Reminders"
}
},
{ {
"id": "553a225777d4ea64", "id": "553a225777d4ea64",
"type": "leaf", "type": "leaf",
@@ -322,9 +364,19 @@
"icon": "git-pull-request", "icon": "git-pull-request",
"title": "Source Control" "title": "Source Control"
} }
},
{
"id": "a8f7eb4bfa4c3974",
"type": "leaf",
"state": {
"type": "reminder-list",
"state": {},
"icon": "clock",
"title": "Reminders"
}
} }
], ],
"currentTab": 13 "currentTab": 12
}, },
{ {
"id": "ad86bdfc0cc9f06b", "id": "ad86bdfc0cc9f06b",
@@ -337,8 +389,8 @@
"state": { "state": {
"type": "calendar", "type": "calendar",
"state": {}, "state": {},
"icon": "calendar-with-checkmark", "icon": "lucide-ghost",
"title": "Calendar" "title": "calendar"
} }
}, },
{ {
@@ -357,23 +409,24 @@
"state": { "state": {
"type": "calculite", "type": "calculite",
"state": { "state": {
"previousResult": 30, "previousResult": 360,
"previousOperator": "×", "previousOperator": "+",
"previousInput": 365, "previousInput": 288,
"currentResult": 10950, "currentResult": 648,
"currentOperator": null, "currentOperator": null,
"currentInput": null, "currentInput": null,
"currentError": null "currentError": null
}, },
"icon": "lucide-ghost", "icon": "lucide-calculator",
"title": "calculite" "title": "Calculite"
} }
} }
] ],
"currentTab": 2
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 353.5 "width": 293.5
}, },
"left-ribbon": { "left-ribbon": {
"hiddenItems": { "hiddenItems": {
@@ -430,37 +483,40 @@
"periodic-notes:Open today": false "periodic-notes:Open today": false
} }
}, },
"active": "c40bce0dcb7a94c8", "active": "b34d5fd2dadd3271",
"lastOpenFiles": [ "lastOpenFiles": [
"03-工作笔记/应用部署/本地服务器重新规划.canvas",
"01-工作日记/2026-07-29.md",
"未命名.canvas",
"03-工作笔记/应用部署/数据存储规划V2.1.md",
"03-工作笔记/应用部署/本地应用部署笔记.md", "03-工作笔记/应用部署/本地应用部署笔记.md",
"10-WebClipper/VT-d /IOMMU(CPU虚拟化)功能开启教程 - 《永劫无间》官网 | 千机赛季上线.md", "03-工作笔记/应用部署/本地服务器重新规划.canvas",
"10-WebClipper/VT-d ", "03-工作笔记/应用部署/数据备份列表.md",
"01-工作日记/2026-07-28.md", "03-工作笔记/应用部署/数据存储规划V2.1.md",
"60-Imports/63-WuCai/2026/07/OpenCore Patcher for Mac v2.4.1 老旧电脑升级最新macOS系统神器-应用玩客 - 精品ma.md", "01-工作日记/2026-08-01.md",
"60-Imports/63-WuCai/2026/07", "01-工作日记/2026-07-31.md",
"01-工作日记/2026-07-27.md", "03-工作笔记/AioPloto/Aio-fnT平台构建笔记.md",
"01-工作日记/2026-07-26.md", "06-数字仓库/061-云资源/云盘清单.md",
"08-Inbox/男性“器官衰老”顺序表公布,不妨自查一下,看看进行到哪一步了.md", "06-数字仓库/063-订阅/我的订阅.md",
"10-WebClipper/[原创] NAS iscsi 开机启动自动挂载_绿联nas iscsi-CSDN博客.md", "08-Inbox/数据恢复.md",
"01-工作日记/2026-07-24.md", "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.38.31.png",
"10-WebClipper/mac电脑禁止生成 .DS_Store 文件的解决方法 - 星云惊蛰 - 博客园.md", "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.44.12 2.png",
"10-WebClipper/Syncthing部署指南:从单机到集群的完整方案.md", "03-工作笔记/应用部署/assets/截屏 2026-01-14 22.40.10 1.png",
"04-博客发布/040-系统技术/恼人的.DS_Store.md", "08-Inbox/长郡中学校歌.md",
"08-Inbox/Excalidraw/Drawing 2026-07-25 19.31.10.excalidraw.md", "08-Inbox/研学拓展.md",
"02-学习笔记/在 macOS 下使用 __iSCSI__.md", "08-Inbox/5月7日-5月11日湖北麻城荆州监利自驾行程.md",
"08-Inbox/女人能彻底忘掉有过亲密关系的男人吗?.md", "08-Inbox/当爱已成往事.md",
"04-博客发布/041-人文历史/堂伯父谈王虹获菲尔兹奖:家族曾在村里最穷,她前年春节回广西老家,聚过后就回家搞研究了.md", "03-工作笔记/应用部署/客户端安装步骤.md",
"刚刚,35岁王虹家庭婚姻情况曝光! 采访不说中文引发全网质疑!.md",
"08-Inbox/Mermaid示例.md",
"README.md",
"50-Memos/2026/05/ufs explorer 10.3 R studio pc 300 Mrt (2026-05-28 11-30).md",
"Excel 2025-12-26 08.57.34.univer.md",
"50-Memos/2026/07/- [ ] 换了一台服务器测试 (2026-07-05 23-24).md",
"50-Memos/2026/07/83万人遇难的明代大地震,四大怪事至今无解 httpsk.sina.cnarticle787... (2026-07-14 11-32).md",
"50-Memos/2026/07/多尔衮妻妾成群,11岁就结婚的他为何只有一个女儿?原因非常简单 httpsk.sina.cn... (2026-07-16 16-44).md",
"50-Memos/2026/07/更换了服务器 (2026-07-23 11-54).md",
"50-Memos/2026/07/姚明、吴金星三人一起商议欠款结算问题,初步是三个月内先还8000元,从李鹏程那里走,另外4-5万从机... (2026-07-23 18-42).md", "50-Memos/2026/07/姚明、吴金星三人一起商议欠款结算问题,初步是三个月内先还8000元,从李鹏程那里走,另外4-5万从机... (2026-07-23 18-42).md",
"01-工作日记/2026-07-23.md", "04-博客发布/042-健康乐活/搞懂有氧和无氧的区别,这样减肥才能瘦得快还不反弹.md",
"04-博客发布/040-系统技术/解决 Docker 需要 sudo 权限的问题(无需重启).md", "未命名.canvas",
"10-WebClipper/(99+ 封私信 /80 条消息) 解决 Docker 需要 sudo 权限的问题(无需重启) - 知乎.md", "10-WebClipper/VT-d ",
"10-WebClipper/(99+ 封私信 /80 条消息) 解决 Docker 需要 sudo 权限的问题(无需重启) - 知乎 1 1.md", "60-Imports/63-WuCai/2026/07",
"10-WebClipper/【运维】Ubuntu上WebDAV挂载与自动同步完整指南_mob64ca13f446df的技术博客_51CTO博客.md",
"10-WebClipper/一文解决群晖和飞牛docker文件夹的权限相关问题(限纯网页端)_网络存储_什么值得买.md",
"04-博客发布/040-系统技术/assets/69425d6022a276072.png_e1080.webp", "04-博客发布/040-系统技术/assets/69425d6022a276072.png_e1080.webp",
"04-博客发布/040-系统技术/assets/69425d60273716072.png_e1080.webp", "04-博客发布/040-系统技术/assets/69425d60273716072.png_e1080.webp",
"04-博客发布/040-系统技术/assets/69425d604db8f6072.png_e1080.webp", "04-博客发布/040-系统技术/assets/69425d604db8f6072.png_e1080.webp",
@@ -471,9 +527,6 @@
"50-Memos/2026/07/resources/BWbEm2ZVGfZVo54okFdmda_F91F815D-C50A-4301-AE89-F66A0052138C", "50-Memos/2026/07/resources/BWbEm2ZVGfZVo54okFdmda_F91F815D-C50A-4301-AE89-F66A0052138C",
"50-Memos/2026/07/resources", "50-Memos/2026/07/resources",
"04-博客发布/041-人文历史/assets/ubegk5w3tvo.jpg", "04-博客发布/041-人文历史/assets/ubegk5w3tvo.jpg",
"04-博客发布/041-人文历史/assets/634jefkfqi.jpg",
"04-博客发布/041-人文历史/assets/w3u6ylpyegl.jpg",
"04-博客发布/041-人文历史/assets/bhr8nh8l775.jpg",
"70-SimpRead/output/本地快照系统.pdf", "70-SimpRead/output/本地快照系统.pdf",
"50-Memos/2026/03", "50-Memos/2026/03",
"50-Memos/2026/04", "50-Memos/2026/04",
Binary file not shown.
+63
View File
@@ -0,0 +1,63 @@
---
title: 🐈日志<% tp.file.title %>
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
tags:
- dailynote
rating: ⭐️
excerpt:
created: 2025-08-30T11:45
updated: 2025-10-24T19:29
---
## 1TODO
- [ ] 多喝水,避免久坐不动
- [ ] 今天做什么
## 2 Tracking
- 修复wordpress
mysql:
mysql -u username -p / mysql -u wordpress -p
use wordpress;
select option_value,option_name,opntion_id from wp_options where option_name ="home";
select option_value,option_name,option_id from wp_options where option_name ="siteurl";
+---------------------+-------------+-----------+
| option_value | option_name | option_id |
+---------------------+-------------+-----------+
| https://himan.cloud | siteurl | 2 |
+---------------------+-------------+-----------+
update wp_options set option_value="https://himan.cloud" where option_id="2";
update wp_options set option_value="https://himan.cloud" where option_id="3";
https://himan.cloud 已恢复;
https://joyagain.me 还有问题:
原来920上部署wordpress就没有完成,需要做一些设置。
尝试一下使用插件,从himan.cloud迁移到joyagain.me?
使用WPvivid插件自动迁移功能,看起来克隆、传输、还原都正常,主页面页正常,全部文章、配置都正常,但是点击页面链接,报Not Found,
问了豆包:
WP 后台【设置→固定链接】直接保存更改 ✅(第一步必做)
一定要点击保存,会自动更新链接。。。
马上就OK了!
迁移流程:
1. 使用同样的docker-compose.yml,构建docker编排,包含wordpress和mysql2个容器,帐号密码最好一致
2. 配置好新域名:https://your.domain,包含反代、证书申请和部署。
3. 首次使用进入管理后台https://your.domain/wp-admin,进入设置界面,home和siteurl,填入新域名
4. 安装插件WPvivid,生成密钥,复制和保存
5. 在原先的wordpress中进入WPvivid插件自动迁移,输入上面生成的密钥,克隆和传送
6. 在目标后台界面,在WPvivid界面,选择新的备份,点击还原
7. 注意:进入设置->固定链接,点击保存
8. 测试主页面,看链接是否正常恢复
## 3 Tips
## 4 Questions
## 5 Thoughts
## 6 NextDo
+104
View File
@@ -0,0 +1,104 @@
---
title: 🐈日志<% tp.file.title %>
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
tags:
- dailynote
rating: ⭐️
excerpt:
created: 2025-08-30T11:45
updated: 2025-10-24T19:29
---
## 1TODO
- [ ] 多喝水,避免久坐不动
- [ ] 今天做什么
## 2 Tracking
- 本地服务器数据备份思考
尝试使用飞牛的备份功能,JoyofnT和JoyGoo分别使用ali云盘的2个帐号来备份,分不同的时段,JoyofnT设置后上传非常慢。
DSM920: 想使用百度网盘的群晖NAS会员连接,一直失败,报“每个群晖账号在同一群晖设备上只能绑定一个百度网盘账号”,咨询百度客服,在等回复:4009303999,按照网上的办法,修改address.sh,不成功!
本地服务器的数据备份办法:上传到网盘,是一个很好的思路。
飞牛连阿里云盘,群晖连百度。。。
阿里云盘:就算你是SVIP,不买第三方接口权益包,限速和严重!除非使用阿里云盘自己的客户端。
买了一个月的第三方权益包,17元,先试试看值不值?!
以后每年续费阿里云盘费用:348元/年,8T+第三方权益!
关于备份的速度,再观察一下,看是否能找到更优方案。
- 配置数据的备份方案思考
肯定得是唯一的一个数据备份中心,不能到处都是自己都找不到。。。
部署在天园的服务器:/volume1/DataSpace
按设备分类存储
/volume1/DataSpace/DSM920
/volume1/DataSpace/Joyofn
/volume1/DataSpace/JoyofnT
/volume1/DataSpace/DSM8466
/volume1/DataSpace/JoyGoo
/volume1/DataSpace/JoyBoom
备份到百度网盘。。。
CloudSync
- 个人资料备份
个人资料包含了下面的列表:
2个10T磁盘,归档文件存放在Raid5上
这2个磁盘,东玺门DSM上的usbshare1为主盘,经常更新,定期更新到天园的JoyBoom上的内置磁盘/vol4/1000/JoyStudio
包含iFiles下的所有文件:
00indox
01我的笔记
02我的工作室
03工作文档
10个人文档
11照片库
20小苹果资料
30myFiles
~~80研发资源~~
90休闲乐活
98我的收藏
99我的归档
80研发资源、98我的收藏、99我的归档:这里只保存当前的收集,定期移动到123云盘和Raid5上 /usbshare1/JoyBackup
80: 最新最全的应该存放在123云盘
99我的归档最全最新的存放在天园Raid5上
98我的收藏最全最新存放在天园Raid5上
11照片库最全最新存放在天园Raid5上
98和99包含上面所有数据的归档!
98敏感数据归档
99个人数据归档
11照片库
天园Raid5可以考虑将部分数据备份到PikPak上!
内置的10T磁盘是东玺门的UBSshare1的备份盘
压缩工具?
- 开发服务器JoyBoom备份
正式的gitea服务器部署在JoyBoom上,作为开发服务器,每天从各客户端上做一次commit和push
只包含了iFiles/01我的笔记/StudyDiary目录所有文件。
备份到百度网盘
git、docker。。。
- 操作系统配置备份
存放在配置数据一起,Raid5:/volume1/DataSpace
## 3 Tips
## 4 Questions
## 5 Thoughts
## 6 NextDo
+36
View File
@@ -0,0 +1,36 @@
---
title: 🐈日志<% tp.file.title %>
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
tags:
- dailynote
rating: ⭐️
excerpt:
created: 2025-08-30T11:45
updated: 2025-10-24T19:29
---
## 1TODO
- [ ] 多喝水,避免久坐不动
- [ ] 今天做什么
## 2 Tracking
- DSM9161
群晖216j,2核512M内存,今天正式下线,剩下的唯一的硬盘用作JATDell上倒数据。
go2rtc、surveillance应用套件有替代!
拍了一张照片,记录了设备的配置,这台NAS完成了使命,是我学习linux的起点。。。第一台NAS是Bafflo,这是第二台!
强大的UI+linux后台!
AnnRt/Al1ence@220907
quickConnect:csjeff9161
[http://QuickConnect.cn/csjeff9161](http://quickconnect.cn/csjeff9161)
192.168.1.104:5000
## 3 Tips
## 4 Questions
## 5 Thoughts
## 6 NextDo
@@ -2760,34 +2760,40 @@ USBshare接入DSM920,作为天园节点的文件服务器使用
## 服务器重新规划 ## 服务器重新规划
### 正式服务器 ### 正式服务器
1. JoyGoo 32G内存 i5-12代CPU 6核12线程 1TSSD+1T+9T+Raid5 32T 主服务器 媒体服务 himan.vip为主 后续计划扩容:1650显卡 1. JoyGoo 32G内存 i5-12代CPU 6核12线程 1TSSD+1T+4T 主服务器 媒体服务 himan.vip为主 后续计划扩容:1650显卡
2. JoyfnT 16G内存 i5-9400CPU 6核6线程 256GSSD+1T+2* 2T JoyGoo 备用服务器 以静态服务为主 himan.cloud为主 计划扩容:32G内存+1650显卡,最终B列主板+12代+CPU+多个磁盘或组Raid5 2. JoyfnT 16G内存 i5-14400CPU 10核16线程 256GSSD+1T+2* 2T JoyGoo 备用服务器 以静态服务为主 himan.cloud为主 计划扩容:32G内存+1650显卡,最终B列主板+12代+CPU+多个磁盘或组Raid5
3. DSM920 32G内存 Raid5 32T 集显(独立卡电源带不动)
JoyGoo是新安装飞牛主机,配置:6核12线程 i5 12代CPU 32G内存 1TSSD+1T机械盘+9T机械盘,显卡GTX760,由于飞牛暂时没有驱动,先拿掉它,使用核显作为GPU。 JoyGoo是新安装飞牛主机,配置:6核12线程 i5 12代CPU 32G内存 1TSSD+1T机械盘+4T机械盘,显卡GTX1650。
计划作为整个项目的线路一主打服务器使用,东玺门fn作为线路二备用服务器,原来fnT作为JoyGoo的备用服务器,自身应用保留,应用随主机应用更新而更新,资源会占用一些(端口映射另外做,工作量加大),一定要做好笔记,一旦主服务器故障,可以随时恢复! 计划天园作为整个项目的线路一,主打服务器均存放在天园,fnT作为JoyGoo的备用服务器,自身应用保留,应用随主机应用更新而更新,资源会占用一些(端口映射另外做,工作量加大),一定要做好笔记,一旦主服务器故障,可以随时恢复!
相关应用都部署,根据情况开启或关闭, 相关应用都部署,根据情况开启或关闭,
二者主域名一致 端口不同,注意端口转发的统一管理 二者主域名一致 端口不同,注意端口转发的统一管理
2个组合: 2个组合:
JoyGoo+tencent2+joygoo.fnos.net JoyGoo+tencent2+joygoo.fnos.net
JoyfnT+tencent1+joyfnt.fnos.net JoyofnT+tencent1+joyfnt.fnos.net
之前很可能是装了GTX740,电源压力大,机箱散热差,造成的系统不稳定 之前很可能是装了GTX740,电源压力大,机箱散热差,造成的系统不稳定
现在已经拿掉了740,观察中。。。 现在已经拿掉了740,观察中。。。没有显卡就稳定了!
关于黑群晖DSM920 定位: 关于黑群晖DSM920 定位:
配置:24G内存 i5 12代CPU 计划扩充到32G 配置:32G内存 i5 12代CPU
1. 文件服务器 1. 文件服务器
2. 家用应用:智能家居HA,多媒体,其他 2. 家用应用:智能家居HA,多媒体,其他
3. MoviePilot辅助刮削,后台自动生成媒体库! 3. MoviePilot辅助刮削,后台自动生成媒体库!
4. alist-strm+openlist-strm-TaoSync 4. ~~alist-strm+openlist-strm-TaoSync~~
5. 5.
### 研发服务器 ### 研发服务器
1. Joyfn 开发和调试服务器 16G内存 i5-9400CPU 6核6线程 256GSSD+1T+2* 2T 1. Joyofn 开发和调试服务器 32G内存(DDR4 2666) i5-9400CPU 6核6线程 256GSSD+1T+2* 2T+1050Ti
2. DSM8466 群晖220+ 18G内存 内置2个8T Raid1 +五盘位绿联磁盘盒(2* 16T+1* 10T+1* 8T+1* 1T) 个人文件服务器,资料收集暂存+个人资料存储 2. DSM8466 群晖220+ 18G内存 内置2个8T Raid1 +五盘位绿联磁盘盒(2* 16T+1* 10T+1* 8T) 个人文件服务器,资料收集暂存+个人资料存储
3. JoyBoom 32G 3200 256GSSD+1T+4T 原来的JATB250升级,只保留了机箱,基本上全部更换升级了,主板:技嘉H760,i5-14400F,10核16线程,GTX 1050Ti
4.
域名: 域名:
东玺门:himan.picp.net/himan.xicp.cn/himan.dscloud.me/himan.wicp.net 东玺门:himan.picp.net/himan.xicp.cn/himan.dscloud.me/himan.wicp.net
天园:maiyi8466.3322.org/mayi8466.xicp.net 天园:maiyi8466.3322.org/mayi8466.xicp.net
@@ -2871,7 +2877,7 @@ DSM920:
PriMovies 个人视频 PriMovies 个人视频
## JoyfnT ## JoyofnT
云端平台:tencent1--124.220.30.149 云端平台:tencent1--124.220.30.149
@@ -2880,10 +2886,12 @@ wordpress 1080->1080 https://himan.cloud
vaultwarden 3020 vw.himan.cloud vaultwarden 3020 vw.himan.cloud
wiki.js 10080 wiki.himan.cloud wiki.js 10080 wiki.himan.cloud
lsky.6089->6089 lsky.himan.cloud lsky.6089->6089 lsky.himan.cloud
备用应用: 备用应用:
joycloud 6244 media.himan.cloud:6244 媒体播放接口 joycloud 6244 media.himan.cloud:6244 媒体播放接口
joyvault 7244 aio.himan.cloud joyvault 7244 aio.himan.cloud
moviepilot ~~moviepilot~~
## JoyGoo ## JoyGoo
@@ -2915,6 +2923,30 @@ fnnas.com:joygoo.fnos.net 40M带宽 joyfnt.fnos.net 12M带宽
预计:5台+fnnas 预计:5台+fnnas
## 数据备份
### 备份到云盘
- JoyGoo
机制:飞牛备份
从飞牛备份到阿里云盘:对应的阿里帐号13808468466 定时:周三 7点
- JoyofnT
机制:飞牛备份
从飞牛备份到阿里云盘:对应的阿里帐号18907318466 定时:周四 7点
上传很慢。。。
- DSM920
机制:cloudsync
从群晖备份到百度网盘/应用数据/CloudSync目录 定时:周五 7点
购买了飞牛NAS<->百度网盘 79元/年 百度网盘<->群晖NAS 79元/年
群晖NAS上百度帐号提示一台群晖NAS只能绑定一个百度帐号?
18907318466百度主帐号用在群晖220+上,黑群晖DSM920好像不能使用18907318466
### 从测试到生产的数据同步 ### 从测试到生产的数据同步

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

File diff suppressed because one or more lines are too long
@@ -24,7 +24,7 @@ tags: [excalidraw]
归档养老 ^XJeppd08 归档养老 ^XJeppd08
天翼云盘 12T ^b1TdZSnG 百度网盘 31T ^b1TdZSnG
123盘 20T ^GS6Xp4iv 123盘 20T ^GS6Xp4iv
@@ -38,7 +38,7 @@ Aliyun189/138 ^AOyhJODg
云盘资源规划图 ^71pMX02m 云盘资源规划图 ^71pMX02m
Aliyun153 8T ^uZnVJmyb Aliyun ^uZnVJmyb
百度网盘 ^RA62gSJD 百度网盘 ^RA62gSJD
@@ -52,7 +52,7 @@ Aliyun153 8T ^uZnVJmyb
115153 40T ^rYmufn7P 115153 40T ^rYmufn7P
移动云盘4T ^HYk08Dpz 天翼云盘 ^HYk08Dpz
音乐 ^VbC8G19k 音乐 ^VbC8G19k
@@ -83,206 +83,208 @@ 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
``` ```
%% %%
@@ -0,0 +1,55 @@
---
profileName: Happy Again
postId: "3557"
postType: post
categories:
- 1
---
很多人满怀热情地踏上减肥之路,每天在跑步机上挥汗如雨,或者对着哑铃咬牙切齿,结果几个月过去,体重秤上的数字纹丝不动,甚至还有人越练越壮,身材线条毫无变化。这种努力却得不到回报的挫败感,让不少想要塑造好身材的人选择了放弃。其实,问题往往不出在不够努力,而是方向错了。运动方式千差万别,如果不清楚身体在不同运动状态下的反应,盲目跟风训练,不仅效率低下,还容易损伤关节或导致肌肉流失。只有真正弄明白有氧运动和无氧运动的底层逻辑,才能制定出适合自己的方案,让每一滴汗水都转化为肉眼可见的改变。
![](https://lsky.himan.cloud/i/2026/08/01/6a6db1fe93e09.png)
### 一、两种运动的核心差异
1、能量供应方式不同
有氧运动发生时,身体拥有充足的氧气供应,能够利用氧气将体内的糖类和脂肪彻底氧化分解,从而产生持续稳定的能量。这种过程就像慢火炖汤,虽然启动较慢,但能长时间维持,适合耐力型活动。而无氧运动则是在高强度下,氧气供应跟不上肌肉消耗的速度,身体被迫在无氧状态下分解糖原来快速获取能量。这种方式爆发力强,但产生的代谢产物容易堆积,导致肌肉迅速疲劳,无法持久进行。
2、主要锻炼目标不同
有氧运动的主要作用在于提升心肺功能,增强血液循环效率,并大量消耗体内的脂肪储备。长期坚持此类运动,能有效降低体脂率,让人看起来更加轻盈。无氧运动的重点则在于刺激肌肉纤维的生长与修复,增加肌肉力量和体积。肌肉量的提升不仅能改善身体线条,让身形更紧致,还能提高基础代谢水平,意味着即使静止不动,身体也会消耗更多热量。
3、运动强度感受不同
进行有氧运动时,呼吸虽然加快加深,但仍能保持节奏,甚至可以边运动边与人交谈,心率维持在一个中等偏高的稳定区间。常见的如快走、慢跑、游泳等均属此类。无氧运动则要求极高的爆发力,运动过程中呼吸急促甚至出现短暂憋气,根本无法完整说出一句话,心率会瞬间飙升至高位。举重、短跑冲刺、高强度间歇训练则是典型的代表。
### 二、单一模式的局限性
1、只做有氧的隐患
如果减肥计划中只包含长时间的有氧运动,虽然初期体重下降明显,但随着时间推移,身体会产生适应性,消耗热量的效率逐渐降低。更关键的是,过量的有氧运动可能导致肌肉分解,使得基础代谢率随之下降。一旦停止运动或恢复日常饮食,由于代谢变慢,摄入的热量极易转化为脂肪堆积,造成体重快速反弹,也就是俗称的“易胖体质”。
2、只做无氧的不足
单纯依赖无氧运动而忽略有氧训练,虽然能练出结实的肌肉,但对于体内原有较厚脂肪层的覆盖者来说,减脂效果并不直观。肌肉被脂肪包裹,视觉上可能显得更粗壮而非纤细。此外,缺乏有氧训练会导致心肺耐力不足,在进行高强度力量训练时容易体力不支,影响训练质量和安全性,难以支撑大重量或多组数的练习。
3、忽视恢复的后果
无论侧重哪种运动,如果忽略了身体的恢复机制,都会适得其反。连续高强度的训练without休息,会让神经系统过度疲劳,激素水平紊乱,反而抑制脂肪分解,增加受伤风险。很多急于求成的人天天打卡从不间断,结果导致慢性劳损或免疫力下降,不得不中断训练许久,得不偿失。
### 三、科学搭配的训练策略
1、顺序安排有讲究
为了达到理想的减脂塑形效果,建议在一次训练中先进行无氧力量练习,再进行有氧运动。先通过力量训练消耗掉体内大部分的糖原储备,随后立即进入有氧状态,身体会更快地调动脂肪作为燃料,从而提高燃脂效率。这样的组合既能保留肌肉维度,又能最大化脂肪消耗,避免单纯有氧带来的肌肉流失问题。
2、频率分配要合理
一周的训练计划应当兼顾两者,不必每天都进行混合训练。可以安排几天专门针对全身大肌群的力量训练,穿插一到两天纯有氧日用于主动恢复和提升心肺。对于时间紧张的人群,也可以尝试将高强度间歇训练融入日程,这种模式结合了无氧的爆发和有氧的持续,能在较短时间内达到不错的效果,但需注意循序渐进,避免过度负荷。
3、饮食配合是关键
运动只是减肥的一半,另一半取决于饮食结构。在进行力量训练的日子里,适当增加优质蛋白质的摄入,有助于肌肉修复和生长;而在有氧训练较多或休息日,则可适度减少碳水化合物比例,多吃蔬菜和粗粮。不需要精确计算每一克食物,只需把握大原则:吃天然原型食物,少油少糖,保证营养均衡,为身体提供正确的燃料。
减肥从来不是一场速决战,而是一次对生活方式的重塑。理解有氧与无氧的区别,不再盲目模仿他人的训练表,而是根据自身情况灵活调整,才能让身体进入良性循环。当力量与耐力并存,代谢与线条共进,瘦下来的成果自然稳固持久。从今天开始,重新审视自己的运动计划,用科学的方法代替蛮干,每一步都走得扎实,好身材终将水到渠成。
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-12
View File
@@ -1,12 +0,0 @@
---
excel-pro-plugin: parsed
---
```sheet
{"id":"LZvJbT","sheetOrder":["7J2B7MIqVedc1GEUy1VOv"],"name":"Excel 2025-12-26 08.57.34.univer.md","appVersion":"0.12.4","locale":"zhCN","styles":{},"sheets":{"7J2B7MIqVedc1GEUy1VOv":{"id":"7J2B7MIqVedc1GEUy1VOv","name":"Sheet1","tabColor":"","hidden":0,"rowCount":1000,"columnCount":20,"zoomRatio":1,"freeze":{"xSplit":0,"ySplit":0,"startRow":-1,"startColumn":-1},"scrollTop":0,"scrollLeft":0,"defaultColumnWidth":88,"defaultRowHeight":24,"mergeData":[],"cellData":{},"rowData":{},"columnData":{},"showGridlines":1,"rowHeader":{"width":46,"hidden":0},"columnHeader":{"height":20,"hidden":0},"rightToLeft":0}},"resources":[{"name":"SHEET_UNIVER_THREAD_COMMENT_PLUGIN","data":"{}"},{"name":"SHEET_RANGE_PROTECTION_PLUGIN","data":""},{"name":"SHEET_AuthzIoMockService_PLUGIN","data":"{}"},{"name":"SHEET_WORKSHEET_PROTECTION_PLUGIN","data":"{}"},{"name":"SHEET_WORKSHEET_PROTECTION_POINT_PLUGIN","data":"{}"},{"name":"SHEET_DRAWING_PLUGIN","data":"{}"},{"name":"SHEET_HYPER_LINK_PLUGIN","data":"{\"7J2B7MIqVedc1GEUy1VOv\":[]}"},{"name":"SHEET_CONDITIONAL_FORMATTING_PLUGIN","data":""},{"name":"SHEET_OUTGOING_LINK_PLUGIN","data":"{\"7J2B7MIqVedc1GEUy1VOv\":[]}"},{"name":"SHEET_NOTE_PLUGIN","data":"{}"},{"name":"SHEET_DEFINED_NAME_PLUGIN","data":""},{"name":"SHEET_RANGE_THEME_MODEL_PLUGIN","data":"{}"},{"name":"SHEET_DATA_VALIDATION_PLUGIN","data":"{}"},{"name":"SHEET_FILTER_PLUGIN","data":"{}"},{"name":"SHEET_TABLE_PLUGIN","data":"{}"}]}
```
```multiSheet
{"tabs":[{"key":"sheet","type":"sheet","label":"Sheet"}],"defaultActiveKey":"sheet"}
```