2
0

2 Ревизии ba9d5202d4 ... 4a2d0451ef

Автор SHA1 Съобщение Дата
  unknown 4a2d0451ef Merge remote-tracking branch 'origin/master' преди 4 дни
  unknown 2c9253460c vault backup: 2026-03-13 02:51:16 преди 4 дни
променени са 56 файла, в които са добавени 44174 реда и са изтрити 1 реда
  1. 1 0
      site/content/.obsidian/app.json
  2. 10 0
      site/content/.obsidian/appearance.json
  3. 15 0
      site/content/.obsidian/community-plugins.json
  4. 33 0
      site/content/.obsidian/core-plugins.json
  5. 20 0
      site/content/.obsidian/hotkeys.json
  6. 30 0
      site/content/.obsidian/plugins/better-export-pdf/data.json
  7. 5110 0
      site/content/.obsidian/plugins/better-export-pdf/main.js
  8. 11 0
      site/content/.obsidian/plugins/better-export-pdf/manifest.json
  9. 52 0
      site/content/.obsidian/plugins/better-export-pdf/styles.css
  10. 48 0
      site/content/.obsidian/plugins/break-page/main.js
  11. 9 0
      site/content/.obsidian/plugins/break-page/manifest.json
  12. 12 0
      site/content/.obsidian/plugins/break-page/styles.css
  13. 5 0
      site/content/.obsidian/plugins/image-converter/main.js
  14. 10 0
      site/content/.obsidian/plugins/image-converter/manifest.json
  15. 13 0
      site/content/.obsidian/plugins/number-headings-obsidian/data.json
  16. 1135 0
      site/content/.obsidian/plugins/number-headings-obsidian/main.js
  17. 10 0
      site/content/.obsidian/plugins/number-headings-obsidian/manifest.json
  18. 8 0
      site/content/.obsidian/plugins/number-headings-obsidian/styles.css
  19. 486 0
      site/content/.obsidian/plugins/obsidian-footnotes/main.js
  20. 10 0
      site/content/.obsidian/plugins/obsidian-footnotes/manifest.json
  21. 68 0
      site/content/.obsidian/plugins/obsidian-git/data.json
  22. 5 0
      site/content/.obsidian/plugins/obsidian-git/main.js
  23. 10 0
      site/content/.obsidian/plugins/obsidian-git/manifest.json
  24. 710 0
      site/content/.obsidian/plugins/obsidian-git/styles.css
  25. 34 0
      site/content/.obsidian/plugins/obsidian-minimal-settings/data.json
  26. 980 0
      site/content/.obsidian/plugins/obsidian-minimal-settings/main.js
  27. 11 0
      site/content/.obsidian/plugins/obsidian-minimal-settings/manifest.json
  28. 1 0
      site/content/.obsidian/plugins/obsidian-minimal-settings/styles.css
  29. 12 0
      site/content/.obsidian/plugins/obsidian-style-settings/data.json
  30. 4776 0
      site/content/.obsidian/plugins/obsidian-style-settings/main.js
  31. 10 0
      site/content/.obsidian/plugins/obsidian-style-settings/manifest.json
  32. 241 0
      site/content/.obsidian/plugins/obsidian-style-settings/styles.css
  33. 204 0
      site/content/.obsidian/plugins/obsidian-tidy-footnotes/main.js
  34. 10 0
      site/content/.obsidian/plugins/obsidian-tidy-footnotes/manifest.json
  35. 12 0
      site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/data.json
  36. 0 0
      site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/main.js
  37. 10 0
      site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json
  38. 238 0
      site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/styles.css
  39. 1 0
      site/content/.obsidian/plugins/remotely-save/.gitignore
  40. 6 0
      site/content/.obsidian/plugins/remotely-save/main.js
  41. 11 0
      site/content/.obsidian/plugins/remotely-save/manifest.json
  42. 240 0
      site/content/.obsidian/plugins/remotely-save/styles.css
  43. 6 0
      site/content/.obsidian/plugins/table-editor-obsidian/data.json
  44. 29162 0
      site/content/.obsidian/plugins/table-editor-obsidian/main.js
  45. 17 0
      site/content/.obsidian/plugins/table-editor-obsidian/manifest.json
  46. 78 0
      site/content/.obsidian/plugins/table-editor-obsidian/styles.css
  47. 27 0
      site/content/.obsidian/plugins/zotlit/data.json
  48. 5 0
      site/content/.obsidian/plugins/zotlit/main.js
  49. 13 0
      site/content/.obsidian/plugins/zotlit/manifest.json
  50. 0 0
      site/content/.obsidian/plugins/zotlit/styles.css
  51. 9 0
      site/content/.obsidian/snippets/图片居中.css
  52. 4 0
      site/content/.obsidian/snippets/背景颜色.css
  53. 8 0
      site/content/.obsidian/themes/Minimal/manifest.json
  54. 40 0
      site/content/.obsidian/themes/Minimal/theme.css
  55. 186 0
      site/content/.obsidian/workspace.json
  56. 1 1
      site/content/_index.md

+ 1 - 0
site/content/.obsidian/app.json

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

+ 10 - 0
site/content/.obsidian/appearance.json

@@ -0,0 +1,10 @@
+{
+  "accentColor": "",
+  "cssTheme": "Minimal",
+  "baseFontSizeAction": true,
+  "baseFontSize": 14,
+  "enabledCssSnippets": [
+    "图片居中",
+    "背景颜色"
+  ]
+}

+ 15 - 0
site/content/.obsidian/community-plugins.json

@@ -0,0 +1,15 @@
+[
+  "image-converter",
+  "obsidian-minimal-settings",
+  "remotely-save",
+  "obsidian-style-settings",
+  "table-editor-obsidian",
+  "obsidian-footnotes",
+  "obsidian-tidy-footnotes",
+  "better-export-pdf",
+  "break-page",
+  "number-headings-obsidian",
+  "obsidian-zotero-desktop-connector",
+  "zotlit",
+  "obsidian-git"
+]

+ 33 - 0
site/content/.obsidian/core-plugins.json

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

+ 20 - 0
site/content/.obsidian/hotkeys.json

@@ -0,0 +1,20 @@
+{
+  "obsidian-footnotes:insert-autonumbered-footnote": [
+    {
+      "modifiers": [
+        "Mod",
+        "Shift"
+      ],
+      "key": "6"
+    }
+  ],
+  "break-page:insert-break-page": [
+    {
+      "modifiers": [
+        "Mod",
+        "Shift"
+      ],
+      "key": "Enter"
+    }
+  ]
+}

+ 30 - 0
site/content/.obsidian/plugins/better-export-pdf/data.json

@@ -0,0 +1,30 @@
+{
+  "showTitle": true,
+  "maxLevel": "6",
+  "displayHeader": true,
+  "displayFooter": true,
+  "headerTemplate": "<div style=\"width: 100vw;font-size:10px;text-align:center;\"><span class=\"title\"></span></div>",
+  "footerTemplate": "<div style=\"width: 100vw;font-size:10px;text-align:center;\"><span class=\"pageNumber\"></span> / <span class=\"totalPages\"></span></div>",
+  "printBackground": true,
+  "generateTaggedPDF": false,
+  "displayMetadata": true,
+  "debug": false,
+  "isTimestamp": false,
+  "enabledCss": false,
+  "prevConfig": {
+    "pageSize": "A4",
+    "marginType": "1",
+    "showTitle": true,
+    "open": true,
+    "scale": 100,
+    "landscape": false,
+    "marginTop": "",
+    "marginBottom": "10",
+    "marginLeft": "10",
+    "marginRight": "10",
+    "displayHeader": true,
+    "displayFooter": true,
+    "cssSnippet": "0",
+    "pageSise": "A4"
+  }
+}

Файловите разлики са ограничени, защото са твърде много
+ 5110 - 0
site/content/.obsidian/plugins/better-export-pdf/main.js


+ 11 - 0
site/content/.obsidian/plugins/better-export-pdf/manifest.json

@@ -0,0 +1,11 @@
+{
+  "id": "better-export-pdf",
+  "name": "Better Export PDF",
+  "version": "1.9.1",
+  "minAppVersion": "0.15.0",
+  "description": "Export your notes to PDF, support export preview, add bookmarks outline and header/footer.",
+  "author": "l1xnan",
+  "authorUrl": "https://github.com/l1xnan",
+  "fundingUrl": "https://www.buymeacoffee.com/l1xnan",
+  "isDesktopOnly": true
+}

+ 52 - 0
site/content/.obsidian/plugins/better-export-pdf/styles.css

@@ -0,0 +1,52 @@
+#better-export-pdf {
+  display: flex;
+  flex-direction: row;
+  height: 75vh;
+}
+
+#better-export-pdf .pdf-preview {
+  flex: auto;
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  overflow-x: hidden;
+  overflow-y: scroll;
+  align-content: flex-start;
+}
+
+#better-export-pdf .pdf-preview .webview-wrapper {
+  position: relative;
+  height: 100%;
+  width: 100%;
+}
+
+#better-export-pdf .pdf-preview .print-size {
+  position: absolute;
+  right: 8px;
+  top: 8px;
+  z-index: 99;
+  font-size: 0.6rem;
+  white-space: pre-wrap;
+  text-align: right;
+  visibility: hidden;
+}
+
+#better-export-pdf .pdf-preview > div {
+  flex: 1;
+  height: 100%;
+  width: 100%;
+}
+
+#better-export-pdf .pdf-preview .filename {
+  font-size: 0.75rem;
+  color: var(--color-base-60);
+}
+#better-export-pdf .pdf-preview .filename:not(:first-child) {
+  padding-top: calc(var(--p-spacing));
+}
+
+#better-export-pdf webview {
+  flex: 1;
+  height: 100%;
+  width: 100%;
+}

+ 48 - 0
site/content/.obsidian/plugins/break-page/main.js

@@ -0,0 +1,48 @@
+/*
+THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
+if you want to view the source, please visit the github repository of this plugin
+*/
+
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __export = (target, all) => {
+  for (var name in all)
+    __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __copyProps = (to, from, except, desc) => {
+  if (from && typeof from === "object" || typeof from === "function") {
+    for (let key of __getOwnPropNames(from))
+      if (!__hasOwnProp.call(to, key) && key !== except)
+        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+  }
+  return to;
+};
+var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+// main.ts
+var main_exports = {};
+__export(main_exports, {
+  default: () => ExamplePlugin
+});
+module.exports = __toCommonJS(main_exports);
+var import_obsidian = require("obsidian");
+var ExamplePlugin = class extends import_obsidian.Plugin {
+  onload() {
+    this.addCommand({
+      id: "insert-break-page",
+      name: "Insert break page",
+      hotkeys: [],
+      editorCallback: (editor) => {
+        const currentPosition = editor.getCursor();
+        editor.replaceRange(
+          '<div class="page-break" style="page-break-before: always;"></div>\n',
+          currentPosition
+        );
+        editor.setCursor(editor.getCursor().line + 1, 0);
+      }
+    });
+  }
+};
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgRWRpdG9yLCBQbHVnaW4gfSBmcm9tIFwib2JzaWRpYW5cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4YW1wbGVQbHVnaW4gZXh0ZW5kcyBQbHVnaW4ge1xyXG5cdG9ubG9hZCgpIHtcclxuXHRcdHRoaXMuYWRkQ29tbWFuZCh7XHJcblx0XHRcdGlkOiBcImluc2VydC1icmVhay1wYWdlXCIsXHJcblx0XHRcdG5hbWU6IFwiSW5zZXJ0IGJyZWFrIHBhZ2VcIixcclxuXHRcdFx0aG90a2V5czogW10sXHJcblx0XHRcdGVkaXRvckNhbGxiYWNrOiAoZWRpdG9yOiBFZGl0b3IpID0+IHtcclxuXHRcdFx0XHRjb25zdCBjdXJyZW50UG9zaXRpb24gPSBlZGl0b3IuZ2V0Q3Vyc29yKCk7XHJcblx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShcclxuXHRcdFx0XHRcdCc8ZGl2IGNsYXNzPVwicGFnZS1icmVha1wiIHN0eWxlPVwicGFnZS1icmVhay1iZWZvcmU6IGFsd2F5cztcIj48L2Rpdj5cXG4nLFxyXG5cdFx0XHRcdFx0Y3VycmVudFBvc2l0aW9uXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRlZGl0b3Iuc2V0Q3Vyc29yKGVkaXRvci5nZXRDdXJzb3IoKS5saW5lICsgMSwgMCk7XHJcblx0XHRcdH0sXHJcblx0XHR9KVxyXG5cdH1cclxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUErQjtBQUUvQixJQUFxQixnQkFBckIsY0FBMkMsdUJBQU87QUFBQSxFQUNqRCxTQUFTO0FBQ1IsU0FBSyxXQUFXO0FBQUEsTUFDZixJQUFJO0FBQUEsTUFDSixNQUFNO0FBQUEsTUFDTixTQUFTLENBQUM7QUFBQSxNQUNWLGdCQUFnQixDQUFDLFdBQW1CO0FBQ25DLGNBQU0sa0JBQWtCLE9BQU8sVUFBVTtBQUN6QyxlQUFPO0FBQUEsVUFDTjtBQUFBLFVBQ0E7QUFBQSxRQUNEO0FBQ0EsZUFBTyxVQUFVLE9BQU8sVUFBVSxFQUFFLE9BQU8sR0FBRyxDQUFDO0FBQUEsTUFDaEQ7QUFBQSxJQUNELENBQUM7QUFBQSxFQUNGO0FBQ0Q7IiwKICAibmFtZXMiOiBbXQp9Cg==

+ 9 - 0
site/content/.obsidian/plugins/break-page/manifest.json

@@ -0,0 +1,9 @@
+{
+	"id": "break-page",
+	"name": "PDF break page",
+	"version": "1.0.0",
+	"description": "Add shortkey and command to insert a break page formating for pdf exports.",
+	"author": "CG",
+	"authorUrl": "https://github.com/corentin-godefroy",
+	"isDesktopOnly": false
+}

+ 12 - 0
site/content/.obsidian/plugins/break-page/styles.css

@@ -0,0 +1,12 @@
+div.page-break::after {
+	content: "Break page. Need at least 1 blank line after.";
+	display: block;
+	font-style: italic;
+	color: gray;
+}
+
+@media print {
+	div.page-break::after {
+		display: none;
+	}
+}

Файловите разлики са ограничени, защото са твърде много
+ 5 - 0
site/content/.obsidian/plugins/image-converter/main.js


+ 10 - 0
site/content/.obsidian/plugins/image-converter/manifest.json

@@ -0,0 +1,10 @@
+{
+	"id": "image-converter",
+	"name": "Image Converter",
+	"version": "1.1.7",
+	"minAppVersion": "0.15.0",
+	"description": "Convert, compress and resize images from one format to another by dragging and dropping or pasting into the note.",
+	"author": "xRyul",
+	"authorUrl": "https://github.com/xryul",
+	"isDesktopOnly": false
+}

+ 13 - 0
site/content/.obsidian/plugins/number-headings-obsidian/data.json

@@ -0,0 +1,13 @@
+{
+  "skipTopLevel": true,
+  "firstLevel": 1,
+  "maxLevel": 6,
+  "styleLevel1": "1",
+  "styleLevelOther": "1",
+  "auto": true,
+  "separator": " ",
+  "contents": "",
+  "skipHeadings": "",
+  "startAt": "",
+  "off": false
+}

Файловите разлики са ограничени, защото са твърде много
+ 1135 - 0
site/content/.obsidian/plugins/number-headings-obsidian/main.js


+ 10 - 0
site/content/.obsidian/plugins/number-headings-obsidian/manifest.json

@@ -0,0 +1,10 @@
+{
+	"id": "number-headings-obsidian",
+	"name": "Number Headings",
+	"version": "1.16.0",
+	"minAppVersion": "1.4.0",
+	"description": "Automatically number or re-number headings in an Obsidian document",
+	"author": "Kevin Albrecht (onlyafly@gmail.com)",
+	"authorUrl": "https://www.kevinalbrecht.com",
+	"isDesktopOnly": false
+}

+ 8 - 0
site/content/.obsidian/plugins/number-headings-obsidian/styles.css

@@ -0,0 +1,8 @@
+div.number-headings-button-container > button {
+  font-weight: normal;
+}
+
+div.number-headings-question {
+  font-weight: bold;
+  margin-bottom: 10px;
+}

Файловите разлики са ограничени, защото са твърде много
+ 486 - 0
site/content/.obsidian/plugins/obsidian-footnotes/main.js


+ 10 - 0
site/content/.obsidian/plugins/obsidian-footnotes/manifest.json

@@ -0,0 +1,10 @@
+{
+  "id": "obsidian-footnotes",
+  "name": "Footnote Shortcut",
+  "version": "0.1.3",
+  "minAppVersion": "0.12.0",
+  "description": "Insert and write footnotes faster",
+  "author": "Alexis Rondeau, Micha Brugger, Jason Qin",
+  "authorUrl": "https://publish.obsidian.md/alexisrondeau",
+  "isDesktopOnly": false
+}

+ 68 - 0
site/content/.obsidian/plugins/obsidian-git/data.json

@@ -0,0 +1,68 @@
+{
+  "commitMessage": "vault backup: {{date}}",
+  "autoCommitMessage": "latent garden update {{date}}",
+  "commitMessageScript": "",
+  "commitDateFormat": "YYYY-MM-DD HH:mm:ss",
+  "autoSaveInterval": 5,
+  "autoPushInterval": 0,
+  "autoPullInterval": 10,
+  "autoPullOnBoot": false,
+  "autoCommitOnlyStaged": false,
+  "disablePush": false,
+  "pullBeforePush": true,
+  "disablePopups": false,
+  "showErrorNotices": true,
+  "disablePopupsForNoChanges": false,
+  "listChangedFilesInMessageBody": false,
+  "showStatusBar": true,
+  "updateSubmodules": false,
+  "syncMethod": "merge",
+  "mergeStrategy": "none",
+  "customMessageOnAutoBackup": false,
+  "autoBackupAfterFileChange": true,
+  "treeStructure": false,
+  "refreshSourceControl": true,
+  "basePath": "",
+  "differentIntervalCommitAndPush": false,
+  "changedFilesInStatusBar": false,
+  "showedMobileNotice": true,
+  "refreshSourceControlTimer": 7000,
+  "showBranchStatusBar": true,
+  "setLastSaveToLastCommit": false,
+  "submoduleRecurseCheckout": false,
+  "gitDir": "",
+  "showFileMenu": true,
+  "authorInHistoryView": "hide",
+  "dateInHistoryView": false,
+  "diffStyle": "split",
+  "hunks": {
+    "showSigns": false,
+    "hunkCommands": false,
+    "statusBar": "disabled"
+  },
+  "lineAuthor": {
+    "show": false,
+    "followMovement": "inactive",
+    "authorDisplay": "initials",
+    "showCommitHash": false,
+    "dateTimeFormatOptions": "date",
+    "dateTimeFormatCustomString": "YYYY-MM-DD HH:mm",
+    "dateTimeTimezone": "viewer-local",
+    "coloringMaxAge": "1y",
+    "colorNew": {
+      "r": 255,
+      "g": 150,
+      "b": 150
+    },
+    "colorOld": {
+      "r": 120,
+      "g": 160,
+      "b": 255
+    },
+    "textColorCss": "var(--text-muted)",
+    "ignoreWhitespace": false,
+    "gutterSpacingFallbackLength": 5,
+    "lastShownAuthorDisplay": "initials",
+    "lastShownDateTimeFormatOptions": "date"
+  }
+}

Файловите разлики са ограничени, защото са твърде много
+ 5 - 0
site/content/.obsidian/plugins/obsidian-git/main.js


+ 10 - 0
site/content/.obsidian/plugins/obsidian-git/manifest.json

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

+ 710 - 0
site/content/.obsidian/plugins/obsidian-git/styles.css

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

+ 34 - 0
site/content/.obsidian/plugins/obsidian-minimal-settings/data.json

@@ -0,0 +1,34 @@
+{
+  "lightStyle": "minimal-light",
+  "darkStyle": "minimal-dark",
+  "lightScheme": "minimal-rose-pine-light",
+  "darkScheme": "minimal-default-dark",
+  "editorFont": "",
+  "lineHeight": 2,
+  "lineWidth": 40,
+  "lineWidthWide": 50,
+  "maxWidth": 88,
+  "textNormal": 14,
+  "textSmall": 13,
+  "imgGrid": false,
+  "imgWidth": "img-default-width",
+  "tableWidth": "table-default-width",
+  "iframeWidth": "iframe-default-width",
+  "mapWidth": "map-default-width",
+  "chartWidth": "chart-default-width",
+  "colorfulHeadings": true,
+  "colorfulFrame": true,
+  "colorfulActiveStates": false,
+  "trimNames": true,
+  "labeledNav": false,
+  "fullWidthMedia": true,
+  "bordersToggle": true,
+  "minimalStatus": true,
+  "focusMode": false,
+  "underlineInternal": true,
+  "underlineExternal": true,
+  "folding": true,
+  "lineNumbers": false,
+  "readableLineLength": true,
+  "devBlockWidth": false
+}

Файловите разлики са ограничени, защото са твърде много
+ 980 - 0
site/content/.obsidian/plugins/obsidian-minimal-settings/main.js


+ 11 - 0
site/content/.obsidian/plugins/obsidian-minimal-settings/manifest.json

@@ -0,0 +1,11 @@
+{
+	"id": "obsidian-minimal-settings",
+	"name": "Minimal Theme Settings",
+	"version": "8.0.2",
+	"minAppVersion": "1.1.9",
+	"description": "Change the colors, fonts and features of Minimal Theme.",
+	"author": "@kepano",
+	"authorUrl": "https://www.twitter.com/kepano",
+	"fundingUrl": "https://www.buymeacoffee.com/kepano",
+	"isDesktopOnly": false
+}

+ 1 - 0
site/content/.obsidian/plugins/obsidian-minimal-settings/styles.css

@@ -0,0 +1 @@
+/* Empty */

+ 12 - 0
site/content/.obsidian/plugins/obsidian-style-settings/data.json

@@ -0,0 +1,12 @@
+{
+  "minimal-style@@h1-size": "2.75em",
+  "minimal-style@@h2-size": "2.5em",
+  "minimal-style@@h3-size": "2.25em",
+  "minimal-style@@h4-size": "2em",
+  "minimal-style@@h5-size": "1.75em",
+  "minimal-style@@h6-size": "1.5em",
+  "minimal-style@@pdf-page-style": "pdf-seamless-on",
+  "minimal-style@@h5-variant": "normal",
+  "minimal-style@@h6-variant": "normal",
+  "minimal-style@@h4-variant": "normal"
+}

Файловите разлики са ограничени, защото са твърде много
+ 4776 - 0
site/content/.obsidian/plugins/obsidian-style-settings/main.js


+ 10 - 0
site/content/.obsidian/plugins/obsidian-style-settings/manifest.json

@@ -0,0 +1,10 @@
+{
+	"id": "obsidian-style-settings",
+	"name": "Style Settings",
+	"version": "1.0.8",
+	"minAppVersion": "0.11.5",
+	"description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.",
+	"author": "mgmeyers",
+	"authorUrl": "https://github.com/mgmeyers/obsidian-style-settings",
+	"isDesktopOnly": false
+}

Файловите разлики са ограничени, защото са твърде много
+ 241 - 0
site/content/.obsidian/plugins/obsidian-style-settings/styles.css


+ 204 - 0
site/content/.obsidian/plugins/obsidian-tidy-footnotes/main.js

@@ -0,0 +1,204 @@
+'use strict';
+
+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());
+    });
+}
+
+const reKey = /\[\^(.+?(?=\]))\]/gi;
+const reDefinition = /\[\^(.+)\]\:/;
+// https://stackoverflow.com/a/1830844
+function isNumeric(value) {
+    return !isNaN(value - parseFloat(value));
+}
+function tidyFootnotes(editor) {
+    let markers = [];
+    let definitions = new Map();
+    let firstDefinitionLine = -1;
+    let definitionsIndexed = new Map();
+    // Iterate through each line
+    const lineCount = editor.lineCount();
+    let prevKey = '';
+    for (let i = 0; i < lineCount; i++) {
+        const line = editor.getLine(i);
+        let isDefinition = false;
+        let match;
+        if (prevKey.length) {
+            const hasIndent = /^[ \t]/.test(line);
+            const isLastLine = i === (lineCount - 1);
+            if (hasIndent || (line.length === 0 && !isLastLine)) {
+                // Append line to the previous footnote definition
+                const value = definitions.get(prevKey);
+                definitions.set(prevKey, value + "\n" + line);
+                markers[markers.length - 1].length++;
+                continue;
+            }
+            else {
+                prevKey = '';
+            }
+        }
+        // Look for footnote definition
+        while ((match = reDefinition.exec(line)) !== null) {
+            if (match.length < 1)
+                return;
+            isDefinition = true;
+            // Remember definition and where it is
+            let key = match[1];
+            let value = line.substring(match[0].length);
+            definitions.set(key, value);
+            prevKey = key;
+            let marker = {
+                key,
+                line: i,
+                index: 0,
+                length: 0,
+                isDefinition: true
+            };
+            markers.push(marker);
+            // Remember first definition line to insert combined list later
+            if (firstDefinitionLine === -1) {
+                firstDefinitionLine = i;
+            }
+            break;
+        }
+        if (isDefinition)
+            continue;
+        // Look for footnote key
+        while ((match = reKey.exec(line)) !== null) {
+            if (match.length < 1)
+                return;
+            // Remember where footnote key is
+            let key = match[1];
+            let marker = {
+                key,
+                line: i,
+                index: match.index,
+                length: match[0].length,
+                isDefinition: false
+            };
+            markers.push(marker);
+            if (!definitionsIndexed.has(key)) {
+                // Add key into index
+                definitionsIndexed.set(key, {
+                    key,
+                    newKey: key,
+                    isNumber: isNumeric(key),
+                    value: ''
+                });
+            }
+        }
+    }
+    // Assign definition to key in index
+    // If definition has no key, it will be appended with its current key
+    definitions.forEach((value, key) => {
+        definitionsIndexed.set(key, {
+            key,
+            newKey: key,
+            isNumber: isNumeric(key),
+            value
+        });
+    });
+    // Re-index numbers and construct combined definitions output
+    let count = 1;
+    let definitionsStr = '';
+    definitionsIndexed.forEach((definition, marker) => {
+        let key = definition.key;
+        if (definition.isNumber) {
+            const current = definitionsIndexed.get(marker);
+            key = count.toString();
+            definitionsIndexed.set(marker, Object.assign(Object.assign({}, current), { newKey: key }));
+            count++;
+        }
+        definitionsStr += `[^${key}]:${definition.value}\n`;
+    });
+    const markersCount = markers.length;
+    for (let i = markersCount - 1; i >= 0; i--) {
+        const marker = markers[i];
+        const markerLine = marker.line;
+        if (marker.isDefinition) {
+            let rangeStart, rangeEnd;
+            const lineEnd = markerLine + 1 + marker.length;
+            if (lineEnd === editor.lineCount()) {
+                // Replace from previous to current line to fix CodeMirror 6 error
+                rangeStart = { line: markerLine, ch: 0 };
+                rangeEnd = { line: lineEnd - 1, ch: Infinity };
+            }
+            else {
+                // Replace from current to next line
+                rangeStart = { line: markerLine, ch: 0 };
+                rangeEnd = { line: lineEnd, ch: 0 };
+            }
+            if (markerLine === firstDefinitionLine) {
+                // Replace first definition line with list of indexed definitions
+                editor.replaceRange(definitionsStr, rangeStart, rangeEnd);
+                continue;
+            }
+            // Remove line(s)
+            editor.replaceRange('', rangeStart, rangeEnd);
+            continue;
+        }
+        // Check if key has changed
+        const definition = definitionsIndexed.get(marker.key);
+        const newKey = definition.newKey;
+        if (marker.key === newKey)
+            continue;
+        // Replace footnote key in line with the new one
+        const line = editor.getLine(markerLine);
+        const prefix = line.substring(0, marker.index);
+        const newMarker = `[^${newKey}]`;
+        const suffix = line.substr(marker.index + marker.length);
+        const newLine = prefix + newMarker + suffix;
+        editor.replaceRange(newLine, { line: markerLine, ch: 0 }, { line: markerLine, ch: Infinity });
+    }
+    if (firstDefinitionLine == -1) {
+        // If there are no definitions, add definitions list at the end
+        const lineCount = editor.lineCount();
+        editor.replaceRange("\n\n" + definitionsStr, { line: lineCount, ch: 0 }, { line: lineCount, ch: Infinity });
+    }
+    // console.log(markers, definitions, definitionsIndexed, definitionsStr);
+}
+
+class TidyFootnotes extends obsidian.Plugin {
+    onload() {
+        return __awaiter(this, void 0, void 0, function* () {
+            this.addCommand({
+                id: 'tidy-footnotes',
+                name: 'Tidy Footnotes',
+                checkCallback: (checking) => {
+                    // Ensure the active view is a Markdown editor
+                    const view = this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);
+                    if (checking)
+                        return !!view;
+                    if (!view || view.sourceMode == undefined)
+                        return false;
+                    let editor = view.editor;
+                    tidyFootnotes(editor);
+                }
+            });
+        });
+    }
+}
+
+module.exports = TidyFootnotes;

+ 10 - 0
site/content/.obsidian/plugins/obsidian-tidy-footnotes/manifest.json

@@ -0,0 +1,10 @@
+{
+	"id": "obsidian-tidy-footnotes",
+	"name": "Tidy Footnotes",
+	"version": "0.1.1",
+	"minAppVersion": "0.11.13",
+	"description": "Tidy your footnotes seamlessly.",
+	"author": "Charlie Chao",
+	"authorUrl": "https://github.com/charliecm",
+	"isDesktopOnly": false
+}

+ 12 - 0
site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/data.json

@@ -0,0 +1,12 @@
+{
+  "database": "Zotero",
+  "noteImportFolder": "文献阅读",
+  "pdfExportImageDPI": 120,
+  "pdfExportImageFormat": "jpg",
+  "pdfExportImageQuality": 90,
+  "citeFormats": [],
+  "exportFormats": [],
+  "citeSuggestTemplate": "[[{{citekey}}]]",
+  "openNoteAfterImport": true,
+  "whichNotesToOpenAfterImport": "first-imported-note"
+}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/main.js


+ 10 - 0
site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/manifest.json

@@ -0,0 +1,10 @@
+{
+	"id": "obsidian-zotero-desktop-connector",
+	"name": "Zotero Integration",
+	"version": "3.2.1",
+	"minAppVersion": "1.1.1",
+	"description": "Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.",
+	"author": "mgmeyers",
+	"authorUrl": "https://github.com/mgmeyers/obsidian-zotero-integration",
+	"isDesktopOnly": true
+}

+ 238 - 0
site/content/.obsidian/plugins/obsidian-zotero-desktop-connector/styles.css

@@ -0,0 +1,238 @@
+.zt-format {
+  border: 1px solid var(--background-modifier-border);
+  padding: 1rem;
+  background-color: var(--background-primary);
+  border-radius: 10px;
+  margin-bottom: 10px;
+}
+
+.zt-format__form {
+  display: flex;
+  flex-direction: column;
+  align-items: stretch;
+  margin-bottom: 1rem;
+  max-width: 600px;
+}
+
+.zt-format__form:last-child {
+  margin-bottom: 0;
+}
+
+.zt-format__label {
+  font-size: 0.9em;
+  font-weight: 600;
+  margin-bottom: 5px;
+}
+
+.is-deprecated .zt-format__label {
+  color: var(--text-error);
+}
+
+.zt-format__input-wrapper {
+  display: flex;
+  align-items: center;
+}
+
+.zt-format__input-wrapper textarea {
+  resize: vertical;
+}
+
+.zt-format__input-wrapper > *:not(.checkbox-container) {
+  width: 100% !important;
+}
+
+.is-deprecated .zt-format__input-wrapper button {
+  width: auto !important;
+  flex-grow: 0;
+  flex-shrink: 0;
+  margin-left: 5px;
+}
+
+.zt-format__delete-btn {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  line-height: 1;
+  padding: 7px 9px;
+  margin-left: 10px;
+  flex-shrink: 0;
+  flex-grow: 0;
+}
+
+.zt-json-viewer {
+  font-size: 13px;
+}
+
+.zt-json-viewer .react-json-view {
+  padding: 1em;
+  border-radius: 10px;
+  margin-top: 1em;
+  overflow: auto;
+  font-family: var(--font-monospace) !important;
+}
+
+.zt-json-viewer__btns {
+  display: flex;
+  align-items: center;
+  justify-content: flex-start;
+}
+
+.zt-json-viewer__btns label {
+  display: block;
+  font-weight: bold;
+  padding-top: 1em;
+}
+
+.zt-json-viewer__btns select {
+  font-size: 1em;
+}
+
+.zt-json-viewer__btns button {
+  font-size: 1em;
+  margin-right: 5px;
+}
+
+.zt-json-viewer__preview,
+.zt-json-viewer__data {
+  border: 1px solid var(--background-modifier-border);
+  border-radius: 10px;
+  padding: 1em;
+  margin-top: 1em;
+}
+
+.zt-json-viewer__preview.error {
+  background-color: #ff000011;
+  font-family: var(--font-monospace);
+}
+
+.zt-json-viewer__preview pre {
+  overflow: auto;
+  white-space: pre-wrap;
+  margin: 0;
+}
+
+.zt-json-viewer__preview pre,
+.zt-json-viewer__preview code {
+  font-family: inherit;
+}
+
+.zt-json-viewer__preview:not(.error) pre {
+  font-family: var(--font-text, --font-default, --default-font);
+  max-height: 70vh;
+  min-height: 400px;
+}
+
+.zt-multiselect {
+  width: 300px;
+  text-align: left;
+}
+
+.zt-multiselect input {
+  outline: none !important;
+  box-shadow: none !important;
+}
+
+.zt-format__input-note {
+  font-style: italic;
+  font-size: 0.9em;
+  padding-top: 10px;
+  margin-bottom: 10px;
+}
+
+.zt-setting-item pre,
+.zt-format__input-note pre {
+  display: inline-block;
+  margin: 0;
+  padding: 0 6px;
+  background-color: var(--background-secondary-alt);
+  border-radius: 4px;
+}
+
+.zt-asset-success {
+  text-align: left;
+  display: flex;
+}
+
+.zt-asset-success__icon {
+  color: var(--interactive-success);
+  font-size: 24px;
+  margin-right: 5px;
+}
+
+.zt-asset-success__icon svg {
+  width: 1em !important;
+  height: 1em !important;
+}
+
+.zt-asset-success__message {
+  font-size: 0.9em;
+}
+
+.zt-suggest-title {
+  font-size: var(--font-ui-small);
+  color: var(--text-muted);
+  display: block;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  padding-top: var(--size-4-1);
+}
+
+.zt-suggest-loading-wrapper {
+  display: flex;
+  position: relative;
+  align-items: center;
+  justify-content: center;
+  padding: var(--size-4-2) 0;
+}
+
+.zt-suggest-loading,
+.zt-suggest-loading:before,
+.zt-suggest-loading:after {
+  border-radius: 999px;
+  width: 1em;
+  height: 1em;
+  animation-fill-mode: both;
+  animation: bblFadInOut 1.6s infinite ease-in-out;
+}
+
+.zt-suggest-loading {
+  display: block;
+  color: var(--text-muted);
+  font-size: 7px;
+  position: relative;
+  animation-delay: -0.16s;
+  top: -1em;
+}
+.zt-suggest-loading:before,
+.zt-suggest-loading:after {
+  content: '';
+  position: absolute;
+}
+.zt-suggest-loading:before {
+  left: -2em;
+  animation-delay: -0.32s;
+}
+.zt-suggest-loading:after {
+  left: 2em;
+}
+
+.zt-color-chip {
+  display: inline-block;
+  width: 1em;
+  height: 1em;
+  border: 1px solid var(--background-modifier-border);
+  border-radius: var(--radius-s);
+  margin-right: var(--size-4-1);
+}
+
+@keyframes bblFadInOut {
+  0%,
+  80%,
+  100% {
+    box-shadow: 0 1em 0 -1.3em;
+  }
+  40% {
+    box-shadow: 0 1em 0 0;
+  }
+}

+ 1 - 0
site/content/.obsidian/plugins/remotely-save/.gitignore

@@ -0,0 +1 @@
+data.json

Файловите разлики са ограничени, защото са твърде много
+ 6 - 0
site/content/.obsidian/plugins/remotely-save/main.js


+ 11 - 0
site/content/.obsidian/plugins/remotely-save/manifest.json

@@ -0,0 +1,11 @@
+{
+  "id": "remotely-save",
+  "name": "Remotely Save",
+  "version": "0.5.18",
+  "minAppVersion": "0.13.21",
+  "description": "Yet another unofficial plugin allowing users to synchronize notes between local device and the cloud service.",
+  "author": "fyears",
+  "authorUrl": "https://github.com/fyears",
+  "isDesktopOnly": false,
+  "fundingUrl": "https://remotelysave.com"
+}

+ 240 - 0
site/content/.obsidian/plugins/remotely-save/styles.css

@@ -0,0 +1,240 @@
+/* set the styles */
+
+.password-second-confirm {
+  font-weight: bold;
+}
+
+.password-disclaimer {
+  font-weight: bold;
+}
+
+.encryptionmethod-second-confirm {
+  font-weight: bold;
+}
+
+.settings-auth-related {
+  border-top: 1px solid var(--background-modifier-border);
+  padding-top: 18px;
+}
+
+.settings-percentage-custom-hide {
+  display: none;
+}
+
+.settings-encryption-method-hide {
+  display: none;
+}
+
+.s3-disclaimer {
+  font-weight: bold;
+}
+.s3-hide {
+  display: none;
+}
+
+.dropbox-disclaimer {
+  font-weight: bold;
+}
+.dropbox-hide {
+  display: none;
+}
+
+.dropbox-auth-button-hide {
+  display: none;
+}
+
+.dropbox-revoke-auth-button-hide {
+  display: none;
+}
+
+.onedrive-disclaimer {
+  font-weight: bold;
+}
+.onedrive-hide {
+  display: none;
+}
+
+.onedrive-auth-button-hide {
+  display: none;
+}
+
+.onedrive-revoke-auth-button-hide {
+  display: none;
+}
+
+.onedrivefull-allow-to-use-hide {
+  display: none;
+}
+
+.onedrivefull-disclaimer {
+  font-weight: bold;
+}
+.onedrivefull-hide {
+  display: none;
+}
+
+.onedrivefull-auth-button-hide {
+  display: none;
+}
+
+.onedrivefull-revoke-auth-button-hide {
+  display: none;
+}
+
+.webdav-disclaimer {
+  font-weight: bold;
+}
+.webdav-hide {
+  display: none;
+}
+
+.webdav-customheaders-textarea {
+  font-family: monospace;
+}
+
+.webdis-disclaimer {
+  font-weight: bold;
+}
+.webdis-hide {
+  display: none;
+}
+
+.googledrive-disclaimer {
+  font-weight: bold;
+}
+.googledrive-hide {
+  display: none;
+}
+
+.googledrive-allow-to-use-hide {
+  display: none;
+}
+
+.googledrive-auth-button-hide {
+  display: none;
+}
+
+.googledrive-revoke-auth-button-hide {
+  display: none;
+}
+
+.box-disclaimer {
+  font-weight: bold;
+}
+.box-hide {
+  display: none;
+}
+
+.box-allow-to-use-hide {
+  display: none;
+}
+
+.box-auth-button-hide {
+  display: none;
+}
+
+.box-revoke-auth-button-hide {
+  display: none;
+}
+
+.pcloud-disclaimer {
+  font-weight: bold;
+}
+.pcloud-hide {
+  display: none;
+}
+
+.pcloud-allow-to-use-hide {
+  display: none;
+}
+
+.pcloud-auth-button-hide {
+  display: none;
+}
+
+.pcloud-revoke-auth-button-hide {
+  display: none;
+}
+
+.yandexdisk-disclaimer {
+  font-weight: bold;
+}
+.yandexdisk-hide {
+  display: none;
+}
+
+.yandexdisk-allow-to-use-hide {
+  display: none;
+}
+
+.yandexdisk-auth-button-hide {
+  display: none;
+}
+
+.yandexdisk-revoke-auth-button-hide {
+  display: none;
+}
+
+.koofr-disclaimer {
+  font-weight: bold;
+}
+.koofr-hide {
+  display: none;
+}
+
+.koofr-allow-to-use-hide {
+  display: none;
+}
+
+.koofr-auth-button-hide {
+  display: none;
+}
+
+.koofr-revoke-auth-button-hide {
+  display: none;
+}
+
+.azureblobstorage-disclaimer {
+  font-weight: bold;
+}
+.azureblobstorage-hide {
+  display: none;
+}
+
+.azureblobstorage-allow-to-use-hide {
+  display: none;
+}
+
+.qrcode-img {
+  width: 350px;
+  height: 350px;
+}
+
+.ignorepaths-textarea {
+  font-family: monospace;
+}
+
+.logtohttpserver-warning {
+  color: red;
+  font-weight: bolder;
+}
+
+.setting-need-wrapping .setting-item-control {
+  /* flex-wrap: wrap; */
+  display: grid;
+}
+
+.pro-disclaimer {
+  font-weight: bold;
+}
+.pro-hide {
+  display: none;
+}
+
+.pro-auth-button-hide {
+  display: none;
+}
+
+.pro-revoke-auth-button-hide {
+  display: none;
+}

+ 6 - 0
site/content/.obsidian/plugins/table-editor-obsidian/data.json

@@ -0,0 +1,6 @@
+{
+  "formatType": "normal",
+  "showRibbonIcon": true,
+  "bindEnter": true,
+  "bindTab": true
+}

Файловите разлики са ограничени, защото са твърде много
+ 29162 - 0
site/content/.obsidian/plugins/table-editor-obsidian/main.js


+ 17 - 0
site/content/.obsidian/plugins/table-editor-obsidian/manifest.json

@@ -0,0 +1,17 @@
+{
+  "id": "table-editor-obsidian",
+  "name": "Advanced Tables",
+  "author": "Tony Grosinger",
+  "authorUrl": "https://grosinger.net",
+  "description": "Improved table navigation, formatting, manipulation, and formulas",
+  "isDesktopOnly": false,
+  "minAppVersion": "1.0.0",
+  "version": "0.21.0",
+  "js": "main.js",
+  "fundingUrl": {
+    "Github Sponsor": "https://github.com/sponsors/tgrosinger",
+    "Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
+    "Paypal": "https://paypal.me/tgrosinger"
+  },
+  "donation": "https://buymeacoffee.com/tgrosinger"
+}

+ 78 - 0
site/content/.obsidian/plugins/table-editor-obsidian/styles.css

@@ -0,0 +1,78 @@
+:root {
+  --advanced-tables-helper-size: 28px;
+}
+
+.HyperMD-table-row span.cm-inline-code {
+  font-size: 100%;
+  padding: 0px;
+}
+
+.advanced-tables-buttons>div>.title {
+  font-weight: var(--font-medium);
+  font-size: var(--nav-item-size);
+  color: var(--nav-item-color);
+  text-decoration: underline;
+}
+
+[data-type="advanced-tables-toolbar"] .nav-buttons-container {
+  column-gap: 0.2rem;
+  margin: 0.2rem 0 0.2rem 0;
+  justify-content: start;
+}
+
+[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
+  min-width: 2.6rem;
+  line-height: var(--advanced-tables-helper-size);
+  font-size: var(--nav-item-size);
+  font-weight: var(--nav-item-weight);
+  color: var(--nav-item-color);
+}
+
+[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
+  height: var(--advanced-tables-helper-size);
+  line-height: var(--advanced-tables-helper-size);
+}
+
+[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
+  width: var(--advanced-tables-helper-size);
+  height: var(--advanced-tables-helper-size);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: var(--radius-s);
+}
+
+[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
+  background-color: var(--nav-item-background-hover);
+  color: var(--nav-item-color-hover);
+  font-weight: var(--nav-item-weight-hover);
+}
+
+.advanced-tables-row-label {
+  width: 50px;
+}
+
+.widget-icon {
+  width: 20px;
+  height: 20px;
+  fill: var(--text-muted);
+}
+
+.widget-icon:hover {
+  fill: var(--text-normal);
+}
+
+.advanced-tables-csv-export textarea {
+  height: 200px;
+  width: 100%;
+}
+
+.advanced-tables-donation {
+  width: 70%;
+  margin: 0 auto;
+  text-align: center;
+}
+
+.advanced-tables-donate-button {
+  margin: 10px;
+}

+ 27 - 0
site/content/.obsidian/plugins/zotlit/data.json

@@ -0,0 +1,27 @@
+{
+  "logLevel": "INFO",
+  "citationEditorSuggester": true,
+  "showCitekeyInSuggester": false,
+  "literatureNoteFolder": "文献阅读",
+  "enableServer": true,
+  "serverPort": 9091,
+  "serverHostname": "127.0.0.1",
+  "template": {
+    "folder": "ZtTemplates",
+    "templates": {
+      "filename": "<%= it.citekey ?? it.DOI ?? it.title ?? it.key %>.md"
+    }
+  },
+  "updateAnnotBlock": false,
+  "updateOverwrite": false,
+  "autoPairEta": false,
+  "autoTrim": [
+    false,
+    false
+  ],
+  "autoRefresh": true,
+  "zoteroDataDir": "D:\\Zotero-database",
+  "citationLibrary": 1,
+  "imgExcerptImport": "copy",
+  "imgExcerptPath": "ZtImgExcerpt"
+}

Файловите разлики са ограничени, защото са твърде много
+ 5 - 0
site/content/.obsidian/plugins/zotlit/main.js


+ 13 - 0
site/content/.obsidian/plugins/zotlit/manifest.json

@@ -0,0 +1,13 @@
+{
+  "id": "zotlit",
+  "name": "ZotLit",
+  "version": "1.1.10",
+  "minAppVersion": "1.6.7",
+  "versions": {
+    "better-sqlite3": "v11.9.1"
+  },
+  "description": "Plugin to integrate with Zotero, create literature notes and insert citations from a Zotero library.",
+  "author": "AidenLx",
+  "authorUrl": "https://github.com/aidenlx",
+  "isDesktopOnly": true
+}

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
site/content/.obsidian/plugins/zotlit/styles.css


+ 9 - 0
site/content/.obsidian/snippets/图片居中.css

@@ -0,0 +1,9 @@
+img {
+    display: block !important;
+    margin-left: auto !important;
+    margin-right: auto !important;
+}
+   
+ .markdown-source-view.mod-cm6 .cm-content > * {
+    margin: auto auto !important;
+}

+ 4 - 0
site/content/.obsidian/snippets/背景颜色.css

@@ -0,0 +1,4 @@
+/* 设置背景颜色为护眼色 */
+.print :is(.markdown-preview-view, .markdown-rendered) {
+    background-color: #fffaf3 !important;
+  }

+ 8 - 0
site/content/.obsidian/themes/Minimal/manifest.json

@@ -0,0 +1,8 @@
+{
+	"name": "Minimal",
+	"version": "8.1.6",
+	"minAppVersion": "1.9.0",
+	"author": "@kepano",
+	"authorUrl": "https://twitter.com/kepano",
+	"fundingUrl": "https://www.buymeacoffee.com/kepano"
+}

Файловите разлики са ограничени, защото са твърде много
+ 40 - 0
site/content/.obsidian/themes/Minimal/theme.css


+ 186 - 0
site/content/.obsidian/workspace.json

@@ -0,0 +1,186 @@
+{
+  "main": {
+    "id": "ca576c4d8f6241c4",
+    "type": "split",
+    "children": [
+      {
+        "id": "0fb1e971281bdd36",
+        "type": "tabs",
+        "children": [
+          {
+            "id": "55b421ccb7286b5d",
+            "type": "leaf",
+            "state": {
+              "type": "markdown",
+              "state": {
+                "file": "_index.md",
+                "mode": "source",
+                "source": false
+              },
+              "icon": "lucide-file",
+              "title": "_index"
+            }
+          }
+        ]
+      }
+    ],
+    "direction": "vertical"
+  },
+  "left": {
+    "id": "7d8c984bda973e13",
+    "type": "split",
+    "children": [
+      {
+        "id": "a37d8acada7a8319",
+        "type": "tabs",
+        "children": [
+          {
+            "id": "c48cb204f04092e8",
+            "type": "leaf",
+            "state": {
+              "type": "file-explorer",
+              "state": {
+                "sortOrder": "alphabetical",
+                "autoReveal": false
+              },
+              "icon": "lucide-folder-closed",
+              "title": "文件列表"
+            }
+          },
+          {
+            "id": "42ac449744138fe8",
+            "type": "leaf",
+            "state": {
+              "type": "search",
+              "state": {
+                "query": "",
+                "matchingCase": false,
+                "explainSearch": false,
+                "collapseAll": false,
+                "extraContext": false,
+                "sortOrder": "alphabetical"
+              },
+              "icon": "lucide-search",
+              "title": "搜索"
+            }
+          },
+          {
+            "id": "7227d2a6dc8304c1",
+            "type": "leaf",
+            "state": {
+              "type": "bookmarks",
+              "state": {},
+              "icon": "lucide-bookmark",
+              "title": "书签"
+            }
+          }
+        ]
+      }
+    ],
+    "direction": "horizontal",
+    "width": 300
+  },
+  "right": {
+    "id": "08115087280dd2af",
+    "type": "split",
+    "children": [
+      {
+        "id": "ab2cb44fb21d922f",
+        "type": "tabs",
+        "children": [
+          {
+            "id": "69426fe961a0df49",
+            "type": "leaf",
+            "state": {
+              "type": "backlink",
+              "state": {
+                "collapseAll": false,
+                "extraContext": false,
+                "sortOrder": "alphabetical",
+                "showSearch": false,
+                "searchQuery": "",
+                "backlinkCollapsed": false,
+                "unlinkedCollapsed": true
+              },
+              "icon": "links-coming-in",
+              "title": "反向链接"
+            }
+          },
+          {
+            "id": "0302d6f7a860177c",
+            "type": "leaf",
+            "state": {
+              "type": "outgoing-link",
+              "state": {
+                "linksCollapsed": false,
+                "unlinkedCollapsed": true
+              },
+              "icon": "links-going-out",
+              "title": "出链"
+            }
+          },
+          {
+            "id": "afb56f4abbe0f599",
+            "type": "leaf",
+            "state": {
+              "type": "tag",
+              "state": {
+                "sortOrder": "frequency",
+                "useHierarchy": true,
+                "showSearch": false,
+                "searchQuery": ""
+              },
+              "icon": "lucide-tags",
+              "title": "标签"
+            }
+          },
+          {
+            "id": "78a0720ebd94c03f",
+            "type": "leaf",
+            "state": {
+              "type": "all-properties",
+              "state": {
+                "sortOrder": "frequency",
+                "showSearch": false,
+                "searchQuery": ""
+              },
+              "icon": "lucide-ghost",
+              "title": "all-properties"
+            }
+          },
+          {
+            "id": "65e36e6432adbe56",
+            "type": "leaf",
+            "state": {
+              "type": "git-view",
+              "state": {},
+              "icon": "git-pull-request",
+              "title": "Source Control"
+            }
+          }
+        ],
+        "currentTab": 4
+      }
+    ],
+    "direction": "horizontal",
+    "width": 300
+  },
+  "left-ribbon": {
+    "hiddenItems": {
+      "remotely-save:Remotely Save": false,
+      "table-editor-obsidian:Advanced Tables Toolbar": false,
+      "switcher:打开快速切换": false,
+      "graph:查看关系图谱": false,
+      "canvas:新建白板": false,
+      "daily-notes:打开/创建今天的日记": false,
+      "templates:插入模板": false,
+      "command-palette:打开命令面板": false,
+      "bases:新建数据库": false,
+      "obsidian-git:Open Git source control": false
+    }
+  },
+  "active": "65e36e6432adbe56",
+  "lastOpenFiles": [
+    "resume/profile.md"
+  ]
+}

+ 1 - 1
site/content/_index.md

@@ -1,5 +1,5 @@
 ---
-title: "IndigoFloyd"
+title: Hello, there!
 date: 2026-03-12T00:00:00+08:00
 draft: false
 ---

Някои файлове не бяха показани, защото твърде много файлове са промени