vault backup: 2023-05-26 09:10:44

This commit is contained in:
2023-05-26 09:10:44 +02:00
parent 83b51075e9
commit 9ad397cb00
34 changed files with 14108 additions and 6201 deletions

View File

@@ -16,7 +16,7 @@
"starred": true,
"markdown-importer": true,
"zk-prefixer": true,
"random-note": false,
"random-note": true,
"outline": true,
"word-count": true,
"slides": true,

View File

@@ -16,6 +16,7 @@
"bookmarks",
"markdown-importer",
"zk-prefixer",
"random-note",
"outline",
"word-count",
"slides",

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.55",
"version": "0.5.56",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",

View File

@@ -2,7 +2,7 @@
"userAdmonitions": {},
"syntaxHighlight": false,
"copyButton": false,
"version": "9.2.1",
"version": "9.3.1",
"autoCollapse": false,
"defaultCollapseType": "open",
"injectColor": true,

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-admonition",
"name": "Admonition",
"version": "9.2.1",
"version": "9.3.1",
"minAppVersion": "1.1.0",
"description": "Enhanced callouts for Obsidian.md",
"author": "Jeremy Valentine",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-desmos",
"name": "Desmos",
"version": "0.6.5",
"version": "0.6.6",
"minAppVersion": "0.9.12",
"description": "Embed Desmos graphs into your notes",
"author": "Nigecat"

View File

@@ -210052,10 +210052,11 @@
}
},
"defaultTrayMode": false,
"previousRelease": "1.8.21",
"previousRelease": "1.9.2",
"showReleaseNotes": true,
"showNewVersionNotification": true,
"mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js",
"latexBoilerplate": "\\color{blue}",
"taskboneEnabled": false,
"taskboneAPIkey": "",
"pinnedScripts": [],
@@ -210371,5 +210372,11 @@
}
}
],
"numberOfCustomPens": 0
"numberOfCustomPens": 0,
"pdfScale": 4,
"pdfBorderBox": true,
"pdfGapSize": 20,
"pdfLockAfterImport": true,
"pdfNumColumns": 1,
"pdfImportScale": 0.3
}

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "1.8.21",
"version": "1.9.2",
"minAppVersion": "1.1.6",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"author": "Zsolt Viczian",

View File

@@ -340,4 +340,8 @@ div.excalidraw-draginfo {
background: var(--color-base-40);
display: block;
border-radius: 5px;
}
.excalidraw [data-radix-popper-content-wrapper] {
position: absolute !important;
}

View File

@@ -26,5 +26,30 @@
"submoduleRecurseCheckout": false,
"gitDir": "",
"showFileMenu": true,
"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"
},
"autoCommitMessage": "vault backup: {{date}}"
}

File diff suppressed because it is too large Load Diff

View File

@@ -5,5 +5,5 @@
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"js": "main.js",
"version": "2.19.0"
"version": "2.20.0"
}

View File

@@ -55,7 +55,9 @@
display: flex;
align-items: center;
justify-content: center;
width: 11px;
}
.git-tools .type[data-type="M"] {
color: orange;
}
@@ -482,4 +484,24 @@
.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag {
border: 1px solid #3572b0;
}
}
/* ====================== 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. */
}

View File

@@ -19,7 +19,8 @@
"bottom": 2,
"left": 2
},
"emojiStyle": "none"
"emojiStyle": "none",
"iconInTabsEnabled": false
},
"Fizyka": "FasGear",
"AMiAL": "RiCalculatorLine",

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-icon-folder",
"name": "Icon Folder",
"version": "1.7.0",
"version": "2.0.1",
"minAppVersion": "0.9.12",
"description": "This plugin allows to add an emoji or an icon to a folder or file.",
"author": "Florian Woelki",

View File

@@ -1,209 +1,213 @@
{
"ruleConfigs": {
"Escape YAML Special Characters": {
"Escapes colons with a space after them (: ), single quotes ('), and double quotes (\") in YAML.": false,
"Try to Escape Single Line Arrays": false
},
"Format Tags in YAML": {
"Remove Hashtags from tags in the YAML frontmatter, as they make the tags there invalid.": false
},
"Format Yaml Array": {
"Allows for the formatting of regular yaml arrays as either multi-line or single-line and `tags` and `aliases` are allowed to have some Obsidian specific yaml formats. Note that single string to single-line goes from a single string entry to a single-line array if more than 1 entry is present. The same is true for single string to multi-line except it becomes a multi-line array.": false,
"Format yaml aliases section": true,
"Format yaml tags section": true,
"Default yaml array section style": "single-line",
"Format yaml array sections": true,
"Force key values to be single-line arrays": "",
"Force key values to be multi-line arrays": ""
},
"Insert YAML attributes": {
"Inserts the given YAML attributes into the YAML frontmatter. Put each attribute on a single line.": false,
"Text to insert": "aliases: \ntags: "
},
"Move Tags to Yaml": {
"Move all tags to Yaml frontmatter of the document.": false,
"Tags to ignore": "",
"Body tag operation": "Nothing"
},
"Remove YAML Keys": {
"Removes the YAML keys specified": false,
"YAML Keys to Remove": ""
},
"YAML Key Sort": {
"Sorts the YAML keys based on the order and priority specified. Note: may remove blank lines as well.": false,
"YAML Key Priority Sort Order": "",
"Priority Keys at Start of YAML": true,
"YAML Sort Order for Other Keys": "None"
},
"YAML Timestamp": {
"Keep track of the date the file was last edited in the YAML front matter. Gets dates from file metadata.": false,
"Date Created": true,
"Date Created Key": "date created",
"Date Modified": true,
"Date Modified Key": "date modified",
"Format": "dddd, MMMM Do YYYY, h:mm:ss a"
},
"YAML Title": {
"Inserts the title of the file into the YAML frontmatter. Gets the title from the first H1 or filename if there is no H1.": false,
"Title Key": "title"
},
"YAML Title Alias": {
"Inserts the title of the file into the YAML frontmatter's aliases section. Gets the title from the first H1 or filename.": false,
"Preserve existing aliases section style": true,
"Keep alias that matches the filename": false,
"Use the YAML key `linter-yaml-title-alias` to help with filename and heading changes": true
},
"Capitalize Headings": {
"Headings should be formatted with capitalization": true,
"Style": "Title Case",
"Ignore Cased Words": true,
"Ignore Words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript",
"Lowercase Words": "via, a, an, the, and, or, but, for, nor, so, yet, at, by, in, of, on, to, up, as, is, if, it, for, to, with, without, into, onto, per"
},
"File Name Heading": {
"Inserts the file name as a H1 heading if no H1 heading exists.": true
},
"Header Increment": {
"Heading levels should only increment by one level at a time": true
},
"Footnote after Punctuation": {
"Ensures that footnote references are placed after punctuation, not before.": true
},
"Move Footnotes to the bottom": {
"Move all footnotes to the bottom of the document.": true
},
"Re-Index Footnotes": {
"Re-indexes footnote keys and footnote, based on the order of occurrence (NOTE: This rule deliberately does *not* preserve the relation between key and footnote, to be able to re-index duplicate keys.)": false
},
"Convert Bullet List Markers": {
"Converts common bullet list marker symbols to markdown list markers.": true
},
"Emphasis Style": {
"Makes sure the emphasis style is consistent.": true,
"Style": "consistent"
},
"No Bare URLs": {
"Encloses bare URLs with angle brackets except when enclosed in back ticks, square braces, or single or double quotes.": true
},
"Ordered List Style": {
"Makes sure that ordered lists follow the style specified. Note that 2 spaces or 1 tab is considered to be an indentation level.": true,
"Number Style": "ascending",
"Ordered List Indicator End Style": "."
},
"Proper Ellipsis": {
"Replaces three consecutive dots with an ellipsis.": true
},
"Remove Consecutive List Markers": {
"Removes consecutive list markers. Useful when copy-pasting list items.": true
},
"Remove Empty List Markers": {
"Removes empty list markers, i.e. list items without content.": true
},
"Remove Hyphenated Line Breaks": {
"Removes hyphenated line breaks. Useful when pasting text from textbooks.": true
},
"Remove Multiple Spaces": {
"Removes two or more consecutive spaces. Ignores spaces at the beginning and ending of the line. ": false
},
"Strong Style": {
"Makes sure the strong style is consistent.": false,
"Style": "consistent"
},
"Two Spaces Between Lines with Content": {
"Makes sure that two spaces are added to the ends of lines with content continued on the next line for paragraphs, blockquotes, and list items": false
},
"Unordered List Style": {
"Makes sure that unordered lists follow the style specified.": true,
"List item style": "-"
},
"Compact YAML": {
"Removes leading and trailing blank lines in the YAML front matter.": false,
"Inner New Lines": false
},
"Consecutive blank lines": {
"There should be at most one consecutive blank line.": false
},
"Convert Spaces to Tabs": {
"Converts leading spaces to tabs.": false,
"Tabsize": 4
},
"Empty Line Around Blockquotes": {
"Ensures that there is an empty line around blockquotes unless they start or end a document. **Note that an empty line is either one less level of nesting for blockquotes or a newline character.**": false
},
"Empty Line Around Code Fences": {
"Ensures that there is an empty line around code fences unless they start or end a document.": false
},
"Empty Line Around Tables": {
"Ensures that there is an empty line around github flavored tables unless they start or end a document.": true
},
"Heading blank lines": {
"All headings have a blank line both before and after (except where the heading is at the beginning or end of the document).": false,
"Bottom": true,
"Empty Line Between Yaml and Header": true
},
"Line Break at Document End": {
"Ensures that there is exactly one line break at the end of a document.": false
},
"Paragraph blank lines": {
"All paragraphs should have exactly one blank line both before and after.": false
},
"Remove Empty Lines Between List Markers and Checklists": {
"There should not be any empty lines between list markers and checklists.": false
},
"Remove link spacing": {
"Removes spacing around link text.": false
},
"Remove Space around Fullwidth Characters": {
"Ensures that fullwidth characters are not followed by whitespace (either single spaces or a tab). Note that this may causes issues with markdown format in some cases.": false
},
"Space after list markers": {
"There should be a single space after list markers and checkboxes.": false
"escape-yaml-special-characters": {
"enabled": false,
"try-to-escape-single-line-arrays": false
},
"Trailing spaces": {
"Removes extra spaces after every line.": false,
"Two Space Linebreak": false
"force-yaml-escape": {
"enabled": false,
"force-yaml-escape-keys": ""
},
"Force YAML Escape": {
"Escapes the values for the specified YAML keys.": false,
"Force YAML Escape on Keys": ""
"format-tags-in-yaml": {
"enabled": false
},
"Empty Line Around Math Blocks": {
"Ensures that there is an empty line around math blocks using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math.": true
"format-yaml-array": {
"enabled": false,
"alias-key": true,
"tag-key": true,
"default-array-style": "single-line",
"default-array-keys": true,
"force-single-line-array-style": "",
"force-multi-line-array-style": ""
},
"Move Math Block Indicators to Their Own Line": {
"Move all starting and ending math block indicators to their own lines using `Number of Dollar Signs to Indicate a Math Block` to determine how many dollar signs indicates a math block for single-line math.": false
"insert-yaml-attributes": {
"enabled": false,
"text-to-insert": "aliases: \ntags: "
},
"Add Blockquote Indentation on Paste": {
"Adds blockquotes to all but the first line, when the cursor is in a blockquote/callout line during pasting": false
"move-tags-to-yaml": {
"enabled": false,
"how-to-handle-existing-tags": "Nothing",
"tags-to-ignore": ""
},
"Prevent Double Checklist Indicator on Paste": {
"Removes starting checklist indicator from the text to paste if the line the cursor is on in the file has a checklist indicator": false
"remove-yaml-keys": {
"enabled": false,
"yaml-keys-to-remove": ""
},
"Prevent Double List Item Indicator on Paste": {
"Removes starting list indicator from the text to paste if the line the cursor is on in the file has a list indicator": false
"yaml-key-sort": {
"enabled": false,
"yaml-key-priority-sort-order": "",
"priority-keys-at-start-of-yaml": true,
"yaml-sort-order-for-other-keys": "None"
},
"Proper Ellipsis on Paste": {
"Replaces three consecutive dots with an ellipsis even if they have a space between them in the text to paste": false
"yaml-timestamp": {
"enabled": false,
"date-created": true,
"date-created-key": "date created",
"force-retention-of-create-value": false,
"date-modified": true,
"date-modified-key": "date modified",
"format": "dddd, MMMM Do YYYY, h:mm:ss a"
},
"Remove Hyphens on Paste": {
"Removes hyphens from the text to paste": false
"yaml-title": {
"enabled": false,
"title-key": "title",
"mode": "first-h1-or-filename-if-h1-missing"
},
"Remove Leading or Trailing Whitespace on Paste": {
"Removes any leading non-tab whitespace and all trailing whitespace for the text to paste": false
"yaml-title-alias": {
"enabled": false,
"preserve-existing-alias-section-style": true,
"keep-alias-that-matches-the-filename": false,
"use-yaml-key-to-keep-track-of-old-filename-or-heading": true
},
"Remove Leftover Footnotes from Quote on Paste": {
"Removes any leftover footnote references for the text to paste": false
"capitalize-headings": {
"enabled": true,
"style": "Title Case",
"ignore-case-words": true,
"ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript",
"lowercase-words": "via, a, an, the, and, or, but, for, nor, so, yet, at, by, in, of, on, to, up, as, is, if, it, for, to, with, without, into, onto, per"
},
"Remove Multiple Blank Lines on Paste": {
"Condenses multiple blank lines down into one blank line for the text to paste": false
"file-name-heading": {
"enabled": true
},
"Space between Chinese Japanese or Korean and English or numbers": {
"Ensures that Chinese, Japanese, or Korean and English or numbers are separated by a single space. Follows these [guidelines](https://github.com/sparanoid/chinese-copywriting-guidelines)": false
"header-increment": {
"enabled": true,
"start-at-h2": false
},
"footnote-after-punctuation": {
"enabled": true
},
"move-footnotes-to-the-bottom": {
"enabled": true
},
"re-index-footnotes": {
"enabled": false
},
"convert-bullet-list-markers": {
"enabled": true
},
"emphasis-style": {
"enabled": true,
"style": "consistent"
},
"no-bare-urls": {
"enabled": true
},
"ordered-list-style": {
"enabled": true,
"number-style": "ascending",
"list-end-style": "."
},
"proper-ellipsis": {
"enabled": true
},
"remove-consecutive-list-markers": {
"enabled": true
},
"remove-empty-list-markers": {
"enabled": true
},
"remove-hyphenated-line-breaks": {
"enabled": true
},
"remove-multiple-spaces": {
"enabled": false
},
"strong-style": {
"enabled": false,
"style": "consistent"
},
"two-spaces-between-lines-with-content": {
"enabled": false
},
"unordered-list-style": {
"enabled": true,
"list-style": "-"
},
"compact-yaml": {
"enabled": false,
"inner-new-lines": false
},
"consecutive-blank-lines": {
"enabled": false
},
"convert-spaces-to-tabs": {
"enabled": false,
"tabsize": 4
},
"empty-line-around-blockquotes": {
"enabled": false
},
"empty-line-around-code-fences": {
"enabled": false
},
"empty-line-around-math-blocks": {
"enabled": true
},
"empty-line-around-tables": {
"enabled": true
},
"heading-blank-lines": {
"enabled": false,
"bottom": true,
"empty-line-after-yaml": true
},
"line-break-at-document-end": {
"enabled": false
},
"move-math-block-indicators-to-their-own-line": {
"enabled": false
},
"paragraph-blank-lines": {
"enabled": false
},
"remove-empty-lines-between-list-markers-and-checklists": {
"enabled": false
},
"remove-link-spacing": {
"enabled": false
},
"space-after-list-markers": {
"enabled": false
},
"space-between-chinese-japanese-or-korean-and-english-or-numbers": {
"enabled": false
},
"trailing-spaces": {
"enabled": false,
"twp-space-line-break": false
},
"add-blockquote-indentation-on-paste": {
"enabled": false
},
"prevent-double-checklist-indicator-on-paste": {
"enabled": false
},
"prevent-double-list-item-indicator-on-paste": {
"enabled": false
},
"proper-ellipsis-on-paste": {
"enabled": false
},
"remove-hyphens-on-paste": {
"enabled": false
},
"remove-leading-or-trailing-whitespace-on-paste": {
"enabled": false
},
"remove-leftover-footnotes-from-quote-on-paste": {
"enabled": false
},
"remove-multiple-blank-lines-on-paste": {
"enabled": false
}
},
"lintOnSave": false,
"recordLintOnSaveLogs": false,
"displayChanged": true,
"settingsConvertedToConfigKeyValues": true,
"foldersToIgnore": [],
"linterLocale": "system-default",
"logLevel": 4,

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-linter",
"name": "Linter",
"version": "1.10.3",
"version": "1.15.1",
"minAppVersion": "0.15.6",
"description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.",
"author": "Victor Tao",

View File

@@ -54,7 +54,7 @@
background-color: var(--interactive-accent) !important;
color: var(--text-on-accent);
padding: 4px 9px !important;
max-width: 200px !important;
max-width: 100% !important;
border: 1px solid var(--background-modifier-border);
border-radius: 8px 8px 2px 2px;
border-bottom: 0px;

View File

@@ -0,0 +1,12 @@
{
"styleLists": true,
"debug": false,
"stickCursor": "bullet-and-checkbox",
"betterEnter": true,
"betterTab": true,
"selectAll": true,
"listLines": false,
"listLineAction": "toggle-folding",
"dnd": true,
"previousRelease": "4.7.1"
}

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
{
"id": "obsidian-outliner",
"name": "Outliner",
"version": "4.3.0",
"minAppVersion": "1.0.0",
"version": "4.7.1",
"minAppVersion": "1.1.16",
"description": "Work with your lists like in Workflowy or RoamResearch.",
"author": "Viacheslav Slinko",
"authorUrl": "https://github.com/vslinko",

View File

@@ -1,14 +1,13 @@
/* lists */
/* lists and bullets */
.outliner-plugin-better-lists .cm-s-obsidian .HyperMD-list-line {
padding-top: 0.4em;
}
/* bullets */
.outliner-plugin-better-bullets .cm-formatting-list-ul {
.outliner-plugin-better-lists .cm-formatting-list-ul {
margin-right: 0.3em;
}
.outliner-plugin-better-bullets .list-bullet::after {
.outliner-plugin-better-lists .list-bullet::after {
width: 0.4em;
height: 0.4em;
background-color: var(--text-muted);
@@ -69,3 +68,38 @@
.cm-indent::before {
content: none;
}
/* drag-n-drop */
.outliner-plugin-dropping-line {
background-color: hsla(var(--interactive-accent-hsl), 0.4);
}
.outliner-plugin-dragging-line {
opacity: 0.5;
background-color: hsla(var(--interactive-accent-hsl), 0.2);
}
.outliner-plugin-drop-zone {
width: 300px;
height: 4px;
background: var(--color-accent);
z-index: 999;
position: absolute;
pointer-events: none;
}
.outliner-plugin-drop-zone-padding {
position: absolute;
height: 4px;
}
body.outliner-plugin-dnd:not(.outliner-plugin-dragging) .cm-formatting-list,
body.outliner-plugin-dnd:not(.outliner-plugin-dragging)
.cm-fold-indicator
.collapse-indicator {
cursor: grab !important;
}
html body.outliner-plugin-dnd.outliner-plugin-dragging {
cursor: grabbing !important;
}

View File

@@ -3737,9 +3737,18 @@ class CSSSettingsManager {
Object.keys(config).forEach((settingId) => {
const setting = config[settingId];
if (setting.type === SettingType.CLASS_TOGGLE) {
if (this.getSetting(section, settingId)) {
document.body.classList.remove(setting.id);
}
document.body.classList.remove(setting.id);
}
else if (setting.type === SettingType.CLASS_SELECT) {
const multiToggle = setting;
multiToggle.options.forEach((v) => {
if (typeof v === 'string') {
document.body.classList.remove(v);
}
else {
document.body.classList.remove(v.value);
}
});
}
});
});
@@ -3819,16 +3828,22 @@ class CSSSettingsManager {
setSetting(sectionId, settingId, value) {
this.settings[`${sectionId}@@${settingId}`] = value;
this.save();
this.removeClasses();
this.initClasses();
}
setSettings(settings) {
Object.keys(settings).forEach((id) => {
this.settings[id] = settings[id];
});
this.removeClasses();
this.initClasses();
return this.save();
}
clearSetting(sectionId, settingId) {
delete this.settings[`${sectionId}@@${settingId}`];
this.save();
this.removeClasses();
this.initClasses();
}
clearSection(sectionId) {
Object.keys(this.settings).forEach((key) => {
@@ -3838,6 +3853,8 @@ class CSSSettingsManager {
}
});
this.save();
this.removeClasses();
this.initClasses();
}
export(section, config) {
new ExportModal(this.plugin.app, this.plugin, section, config).open();
@@ -8027,13 +8044,6 @@ function createDescription(description, def, defLabel) {
}
return fragment;
}
let timer;
function customDebounce(cb, timeout = 300) {
clearTimeout(timer);
timer = setTimeout(() => {
cb();
}, timeout);
}
var fuzzysort = createCommonjsModule(function (module) {
((root, UMD) => {
@@ -8579,16 +8589,28 @@ var fuzzysort = createCommonjsModule(function (module) {
// TODO: (perf) prepareSearch seems slow
});
class AbstractSettingComponent {
constructor(sectionId, sectionName, setting, settingsManager, isView) {
class AbstractSettingComponent extends obsidian.Component {
constructor(parent, sectionId, sectionName, setting, settingsManager, isView) {
super();
this.childEl = null;
this.parent = parent;
this.sectionId = sectionId;
this.sectionName = sectionName;
this.setting = setting;
this.settingsManager = settingsManager;
this.isView = isView;
this.onInit();
}
onInit() { }
get containerEl() {
return this.parent instanceof HTMLElement
? this.parent
: this.parent.childEl;
}
onload() {
this.render();
}
onunload() {
this.destroy();
}
/**
* Matches the Component against `str`. A perfect match returns 0, no match returns negative infinity.
*
@@ -8614,10 +8636,10 @@ class AbstractSettingComponent {
const resetTooltip = 'Restore default';
class ClassToggleSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(description !== null && description !== void 0 ? description : '');
this.settingEl.addToggle((toggle) => {
@@ -8625,12 +8647,6 @@ class ClassToggleSettingComponent extends AbstractSettingComponent {
toggle.setValue(value !== undefined ? !!value : !!this.setting.default);
toggle.onChange((value) => {
this.settingsManager.setSetting(this.sectionId, this.setting.id, value);
if (value) {
document.body.classList.add(this.setting.id);
}
else {
document.body.classList.remove(this.setting.id);
}
});
this.toggleComponent = toggle;
});
@@ -8639,12 +8655,6 @@ class ClassToggleSettingComponent extends AbstractSettingComponent {
b.onClick(() => {
const value = !!this.setting.default;
this.toggleComponent.setValue(value);
if (value) {
document.body.classList.add(this.setting.id);
}
else {
document.body.classList.remove(this.setting.id);
}
this.settingsManager.clearSetting(this.sectionId, this.setting.id);
});
b.setTooltip(resetTooltip);
@@ -8658,7 +8668,7 @@ class ClassToggleSettingComponent extends AbstractSettingComponent {
}
class ClassMultiToggleSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting.default !== 'string') {
@@ -8666,7 +8676,7 @@ class ClassMultiToggleSettingComponent extends AbstractSettingComponent {
}
let prevValue = this.getPreviousValue();
const defaultLabel = this.getDefaultOptionLabel();
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default, defaultLabel));
this.settingEl.addDropdown((dropdown) => {
@@ -8684,12 +8694,6 @@ class ClassMultiToggleSettingComponent extends AbstractSettingComponent {
dropdown.setValue(prevValue);
dropdown.onChange((value) => {
this.settingsManager.setSetting(this.sectionId, this.setting.id, value);
if (value !== 'none') {
document.body.classList.add(value);
}
if (prevValue) {
document.body.classList.remove(prevValue);
}
prevValue = value;
});
this.dropdownComponent = dropdown;
@@ -8697,14 +8701,7 @@ class ClassMultiToggleSettingComponent extends AbstractSettingComponent {
this.settingEl.addExtraButton((b) => {
b.setIcon('reset');
b.onClick(() => {
const value = this.setting.default || 'none';
this.dropdownComponent.setValue(this.setting.default || 'none');
if (value !== 'none') {
document.body.classList.add(value);
}
if (prevValue) {
document.body.classList.remove(prevValue);
}
this.settingsManager.clearSetting(this.sectionId, this.setting.id);
});
b.setTooltip(resetTooltip);
@@ -8749,13 +8746,13 @@ class ClassMultiToggleSettingComponent extends AbstractSettingComponent {
}
class VariableTextSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting.default !== 'string') {
return console.error(`${t('Error:')} ${title} ${t('missing default value')}`);
}
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default));
this.settingEl.addText((text) => {
@@ -8787,13 +8784,13 @@ class VariableTextSettingComponent extends AbstractSettingComponent {
}
class VariableNumberSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting.default !== 'number') {
return console.error(`${t('Error:')} ${title} ${t('missing default value')}`);
}
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default.toString(10)));
this.settingEl.addText((text) => {
@@ -8823,13 +8820,13 @@ class VariableNumberSettingComponent extends AbstractSettingComponent {
}
class VariableNumberSliderSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting.default !== 'number') {
return console.error(`${t('Error:')} ${title} ${t('missing default value')}`);
}
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default.toString(10)));
this.settingEl.addSlider((slider) => {
@@ -8860,14 +8857,14 @@ class VariableNumberSliderSettingComponent extends AbstractSettingComponent {
}
class VariableSelectSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting.default !== 'string') {
return console.error(`${t('Error:')} ${title} ${t('missing default value')}`);
}
const defaultLabel = this.getDefaultOptionLabel();
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default, defaultLabel));
this.settingEl.addDropdown((dropdown) => {
@@ -8932,7 +8929,7 @@ var pickr_min = createCommonjsModule(function (module, exports) {
var Pickr = /*@__PURE__*/getDefaultExportFromCjs(pickr_min);
class VariableColorSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
var _a;
const title = getTitle(this.setting);
const description = getDescription(this.setting);
@@ -8954,16 +8951,16 @@ class VariableColorSettingComponent extends AbstractSettingComponent {
if (value !== undefined) {
swatches.push(value);
}
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
this.settingEl.setDesc(createDescription(description, this.setting.default));
// fix, so that the color is correctly shown before the color picker has been opened
const defaultColor = value !== undefined ? value : this.setting.default;
containerEl.style.setProperty('--pcr-color', defaultColor);
this.containerEl.style.setProperty('--pcr-color', defaultColor);
this.pickr = Pickr.create(getPickrSettings({
isView: this.isView,
el: this.settingEl.controlEl.createDiv({ cls: 'picker' }),
containerEl: containerEl,
containerEl: this.containerEl,
swatches: swatches,
opacity: this.setting.opacity,
defaultColor: defaultColor,
@@ -8977,7 +8974,9 @@ class VariableColorSettingComponent extends AbstractSettingComponent {
});
this.pickr.on('show', () => {
const { result } = this.pickr.getRoot().interaction;
requestAnimationFrame(() => requestAnimationFrame(() => result.select()));
activeWindow.requestAnimationFrame(() => {
activeWindow.requestAnimationFrame(() => result.select());
});
});
this.pickr.on('cancel', onPickrCancel);
this.settingEl.addExtraButton((b) => {
@@ -8999,7 +8998,7 @@ class VariableColorSettingComponent extends AbstractSettingComponent {
}
class VariableThemedColorSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
if (typeof this.setting['default-light'] !== 'string' ||
@@ -9028,7 +9027,7 @@ class VariableThemedColorSettingComponent extends AbstractSettingComponent {
if (valueDark !== undefined) {
swatchesDark.push(valueDark);
}
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setName(title);
// Construct description
this.settingEl.descEl.createSpan({}, (span) => {
@@ -9051,9 +9050,9 @@ class VariableThemedColorSettingComponent extends AbstractSettingComponent {
cls: 'themed-color-wrapper',
});
// Create light color picker
this.createColorPickerLight(wrapper, containerEl, swatchesLight, valueLight, idLight);
this.createColorPickerLight(wrapper, this.containerEl, swatchesLight, valueLight, idLight);
// Create dark color picker
this.createColorPickerDark(wrapper, containerEl, swatchesDark, valueDark, idDark);
this.createColorPickerDark(wrapper, this.containerEl, swatchesDark, valueDark, idDark);
this.settingEl.settingEl.dataset.id = this.setting.id;
}
destroy() {
@@ -9081,7 +9080,7 @@ class VariableThemedColorSettingComponent extends AbstractSettingComponent {
}));
this.pickrLight.on('show', () => {
const { result } = this.pickrLight.getRoot().interaction;
requestAnimationFrame(() => requestAnimationFrame(() => result.select()));
activeWindow.requestAnimationFrame(() => activeWindow.requestAnimationFrame(() => result.select()));
});
this.pickrLight.on('save', (color, instance) => this.onSave(idLight, color, instance));
this.pickrLight.on('cancel', onPickrCancel);
@@ -9110,7 +9109,7 @@ class VariableThemedColorSettingComponent extends AbstractSettingComponent {
}));
this.pickrDark.on('show', () => {
const { result } = this.pickrDark.getRoot().interaction;
requestAnimationFrame(() => requestAnimationFrame(() => result.select()));
activeWindow.requestAnimationFrame(() => activeWindow.requestAnimationFrame(() => result.select()));
});
this.pickrDark.on('save', (color, instance) => this.onSave(idDark, color, instance));
this.pickrDark.on('cancel', onPickrCancel);
@@ -9132,17 +9131,17 @@ class VariableThemedColorSettingComponent extends AbstractSettingComponent {
}
class InfoTextSettingComponent extends AbstractSettingComponent {
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setClass('style-settings-info-text');
if (title) {
this.settingEl.setName(title);
}
if (description) {
if (this.setting.markdown) {
obsidian.MarkdownRenderer.renderMarkdown(description, this.settingEl.descEl, '', undefined);
obsidian.MarkdownRenderer.renderMarkdown(description, this.settingEl.descEl, '', this);
this.settingEl.descEl.addClass('style-settings-markdown');
}
else {
@@ -9157,52 +9156,84 @@ class InfoTextSettingComponent extends AbstractSettingComponent {
}
}
function createSettingComponent(sectionId, sectionName, setting, settingsManager, isView) {
function createSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView) {
if (setting.type === SettingType.HEADING) {
return new HeadingSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new HeadingSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.INFO_TEXT) {
return new InfoTextSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new InfoTextSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.CLASS_TOGGLE) {
return new ClassToggleSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new ClassToggleSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.CLASS_SELECT) {
return new ClassMultiToggleSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new ClassMultiToggleSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_TEXT) {
return new VariableTextSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableTextSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_NUMBER) {
return new VariableNumberSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableNumberSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_NUMBER_SLIDER) {
return new VariableNumberSliderSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableNumberSliderSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_SELECT) {
return new VariableSelectSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableSelectSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_COLOR) {
return new VariableColorSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableColorSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else if (setting.type === SettingType.VARIABLE_THEMED_COLOR) {
return new VariableThemedColorSettingComponent(sectionId, sectionName, setting, settingsManager, isView);
return new VariableThemedColorSettingComponent(parent, sectionId, sectionName, setting, settingsManager, isView);
}
else {
return undefined;
}
}
function buildSettingComponentTree(opts) {
const { containerEl, isView, sectionId, settings, settingsManager, sectionName, } = opts;
const root = new HeadingSettingComponent(containerEl, sectionId, sectionName, settings[0], settingsManager, isView);
let currentHeading = root;
for (const setting of settings.splice(1)) {
if (setting.type === 'heading') {
const newHeading = setting;
if (newHeading.level < currentHeading.setting.level) {
while (newHeading.level < currentHeading.setting.level) {
currentHeading = currentHeading.parent;
}
if (currentHeading.setting.id === root.setting.id) {
currentHeading = currentHeading.addSettingChild(newHeading);
}
else {
currentHeading = currentHeading.parent.addSettingChild(newHeading);
}
}
else if (newHeading.level === currentHeading.setting.level) {
currentHeading = currentHeading.parent.addSettingChild(newHeading);
}
else {
currentHeading = currentHeading.addSettingChild(newHeading);
}
}
else {
currentHeading.addSettingChild(setting);
}
}
return root;
}
class HeadingSettingComponent extends AbstractSettingComponent {
onInit() {
constructor() {
super(...arguments);
this.children = [];
this.filteredChildren = [];
this.filterMode = false;
this.filterResultCount = 0;
}
render(containerEl) {
render() {
const title = getTitle(this.setting);
const description = getDescription(this.setting);
this.settingEl = new obsidian.Setting(containerEl);
this.settingEl = new obsidian.Setting(this.containerEl);
this.settingEl.setHeading();
this.settingEl.setClass('style-settings-heading');
this.settingEl.setName(title);
@@ -9214,28 +9245,28 @@ class HeadingSettingComponent extends AbstractSettingComponent {
});
obsidian.setIcon(iconContainer, 'right-triangle');
this.settingEl.nameEl.prepend(iconContainer);
if (this.filterMode) {
this.settingEl.nameEl.createSpan({
cls: 'style-settings-filter-result-count',
text: `${this.filterResultCount} Results`,
});
}
this.resultsEl = this.settingEl.nameEl.createSpan({
cls: 'style-settings-filter-result-count',
text: this.filterMode ? `${this.filterResultCount} Results` : undefined,
});
this.settingEl.settingEl.addEventListener('click', () => {
this.toggleVisible();
});
this.addResetButton();
this.addExportButton();
this.childEl = containerEl.createDiv({ cls: 'style-settings-container' });
this.childEl = this.containerEl.createDiv({
cls: 'style-settings-container',
});
this.setCollapsed(this.setting.collapsed);
}
destroy() {
var _a;
if (!this.setting.collapsed) {
this.destroyChildren();
}
this.removeChildren();
(_a = this.settingEl) === null || _a === void 0 ? void 0 : _a.settingEl.remove();
this.childEl.remove();
}
filter(filterString) {
var _a;
this.filteredChildren = [];
this.filterResultCount = 0;
for (const child of this.children) {
@@ -9254,10 +9285,18 @@ class HeadingSettingComponent extends AbstractSettingComponent {
}
}
this.filterMode = true;
this.setting.collapsed = false;
if (this.filterResultCount) {
this.setCollapsed(false);
}
else {
this.setCollapsed(true);
}
this.renderChildren();
(_a = this.resultsEl) === null || _a === void 0 ? void 0 : _a.setText(`${this.filterResultCount} Results`);
return this.filterResultCount;
}
clearFilter() {
var _a;
this.filteredChildren = [];
for (const child of this.children) {
if (child.setting.type === SettingType.HEADING) {
@@ -9265,36 +9304,37 @@ class HeadingSettingComponent extends AbstractSettingComponent {
}
}
this.filterMode = false;
this.setting.collapsed = true;
this.setCollapsed(true);
this.renderChildren();
(_a = this.resultsEl) === null || _a === void 0 ? void 0 : _a.empty();
}
renderChildren() {
this.destroyChildren();
this.removeChildren();
if (this.filterMode) {
for (const child of this.filteredChildren) {
child.render(this.childEl);
this.addChild(child);
}
}
else {
for (const child of this.children) {
child.render(this.childEl);
this.addChild(child);
}
}
}
destroyChildren() {
var _a;
removeChildren() {
for (const child of this.children) {
child.destroy();
this.removeChild(child);
}
(_a = this.childEl) === null || _a === void 0 ? void 0 : _a.empty();
}
toggleVisible() {
this.setCollapsed(!this.setting.collapsed);
}
setCollapsed(collapsed) {
var _a;
this.setting.collapsed = collapsed;
this.settingEl.settingEl.toggleClass('is-collapsed', collapsed);
(_a = this.settingEl) === null || _a === void 0 ? void 0 : _a.settingEl.toggleClass('is-collapsed', collapsed);
if (collapsed) {
this.destroyChildren();
this.removeChildren();
}
else {
this.renderChildren();
@@ -9322,14 +9362,11 @@ class HeadingSettingComponent extends AbstractSettingComponent {
});
});
}
addChild(child) {
const newSettingComponent = createSettingComponent(this.sectionId, this.sectionName, child, this.settingsManager, this.isView);
addSettingChild(child) {
const newSettingComponent = createSettingComponent(this, this.sectionId, this.sectionName, child, this.settingsManager, this.isView);
if (!newSettingComponent) {
return undefined;
}
if (newSettingComponent.setting.type === SettingType.HEADING) {
newSettingComponent.parent = this;
}
this.children.push(newSettingComponent);
return newSettingComponent;
}
@@ -9344,40 +9381,10 @@ class HeadingSettingComponent extends AbstractSettingComponent {
return children;
}
}
function buildSettingComponentTree(opts) {
const { isView, sectionId, settings, settingsManager, sectionName } = opts;
const root = new HeadingSettingComponent(sectionId, sectionName, settings[0], settingsManager, isView);
let currentHeading = root;
for (const setting of settings.splice(1)) {
if (setting.type === 'heading') {
const newHeading = setting;
if (newHeading.level < currentHeading.setting.level) {
while (newHeading.level < currentHeading.setting.level) {
currentHeading = currentHeading.parent;
}
if (currentHeading.setting.id === root.setting.id) {
currentHeading = currentHeading.addChild(newHeading);
}
else {
currentHeading = currentHeading.parent.addChild(newHeading);
}
}
else if (newHeading.level === currentHeading.setting.level) {
currentHeading = currentHeading.parent.addChild(newHeading);
}
else {
currentHeading = currentHeading.addChild(newHeading);
}
}
else {
currentHeading.addChild(setting);
}
}
return root;
}
class SettingsMarkup {
class SettingsMarkup extends obsidian.Component {
constructor(app, plugin, containerEl, isView) {
super();
this.settingsComponentTrees = [];
this.filterString = '';
this.settings = [];
@@ -9387,23 +9394,31 @@ class SettingsMarkup {
this.containerEl = containerEl;
this.isView = !!isView;
}
onload() {
this.display();
}
onunload() {
this.settingsComponentTrees = [];
}
display() {
this.generate(this.settings);
}
removeChildren() {
for (const settingsComponentTree of this.settingsComponentTrees) {
this.removeChild(settingsComponentTree);
}
}
/**
* Recursively destroys all setting elements.
*/
cleanup() {
var _a;
for (const settingsComponentTree of this.settingsComponentTrees) {
settingsComponentTree.destroy();
}
this.removeChildren();
(_a = this.settingsContainerEl) === null || _a === void 0 ? void 0 : _a.empty();
}
setSettings(settings, errorList) {
this.settings = settings;
this.errorList = errorList;
this.plugin.settingsManager.setConfig(settings);
if (this.containerEl.parentNode) {
this.generate(settings);
}
@@ -9479,17 +9494,15 @@ class SettingsMarkup {
// move the search component from the back to the front
setting.nameEl.appendChild(setting.controlEl.lastChild);
searchComponent.setValue(this.filterString);
searchComponent.onChange((value) => {
customDebounce(() => {
this.filterString = value;
if (value) {
this.filter();
}
else {
this.clearFilter();
}
}, 250);
});
searchComponent.onChange(obsidian.debounce((value) => {
this.filterString = value;
if (value) {
this.filter();
}
else {
this.clearFilter();
}
}, 250, true));
searchComponent.setPlaceholder('Search Style Settings...');
});
this.settingsContainerEl = containerEl.createDiv();
@@ -9504,20 +9517,21 @@ class SettingsMarkup {
collapsed: (_a = s.collapsed) !== null && _a !== void 0 ? _a : true,
resetFn: () => {
plugin.settingsManager.clearSection(s.id);
this.generate(this.settings);
this.rerender();
},
},
...s.settings,
];
try {
const settingsComponentTree = buildSettingComponentTree({
containerEl: this.settingsContainerEl,
isView: this.isView,
sectionId: s.id,
sectionName: s.name,
settings: options,
settingsManager: plugin.settingsManager,
});
settingsComponentTree.render(this.settingsContainerEl);
this.addChild(settingsComponentTree);
this.settingsComponentTrees.push(settingsComponentTree);
}
catch (e) {
@@ -9529,39 +9543,45 @@ class SettingsMarkup {
* Recursively filter all setting elements based on `filterString` and then re-renders.
*/
filter() {
this.cleanup();
for (const settingsComponentTree of this.settingsComponentTrees) {
settingsComponentTree.filter(this.filterString);
settingsComponentTree.render(this.settingsContainerEl);
}
}
/**
* Recursively clears the filter and then re-renders.
*/
clearFilter() {
this.cleanup();
for (const settingsComponentTree of this.settingsComponentTrees) {
settingsComponentTree.clearFilter();
settingsComponentTree.render(this.settingsContainerEl);
}
}
rerender() {
for (const settingsComponentTree of this.settingsComponentTrees) {
settingsComponentTree.render(this.settingsContainerEl);
}
this.cleanup();
this.display();
}
}
class CSSSettingsTab extends obsidian.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.settingsMarkup = new SettingsMarkup(app, plugin, this.containerEl);
this.plugin = plugin;
}
setSettings(settings, errorList) {
this.settings = settings;
this.errorList = errorList;
if (this.settingsMarkup) {
this.settingsMarkup.setSettings(settings, errorList);
}
}
display() {
this.settingsMarkup.display();
this.settingsMarkup = this.plugin.addChild(new SettingsMarkup(this.app, this.plugin, this.containerEl));
if (this.settings) {
this.settingsMarkup.setSettings(this.settings, this.errorList);
}
}
hide() {
this.settingsMarkup.cleanup();
this.plugin.removeChild(this.settingsMarkup);
this.settingsMarkup = null;
}
}
@@ -9570,7 +9590,22 @@ class SettingsView extends obsidian.ItemView {
constructor(plugin, leaf) {
super(leaf);
this.plugin = plugin;
this.settingsMarkup = new SettingsMarkup(plugin.app, plugin, this.contentEl, true);
}
setSettings(settings, errorList) {
this.settings = settings;
this.errorList = errorList;
if (this.settingsMarkup) {
this.settingsMarkup.setSettings(settings, errorList);
}
}
onload() {
this.settingsMarkup = this.addChild(new SettingsMarkup(this.plugin.app, this.plugin, this.contentEl, true));
if (this.settings) {
this.settingsMarkup.setSettings(this.settings, this.errorList);
}
}
onunload() {
this.settingsMarkup = null;
}
getViewType() {
return viewType;
@@ -9581,16 +9616,6 @@ class SettingsView extends obsidian.ItemView {
getDisplayText() {
return 'Style Settings';
}
onOpen() {
return __awaiter(this, void 0, void 0, function* () {
return this.settingsMarkup.display();
});
}
onClose() {
return __awaiter(this, void 0, void 0, function* () {
return this.settingsMarkup.cleanup();
});
}
}
class CSSSettingsPlugin extends obsidian.Plugin {
@@ -9625,6 +9650,13 @@ class CSSSettingsPlugin extends obsidian.Plugin {
this.darkEl = document.body.createDiv('theme-dark style-settings-ref');
document.body.classList.add('css-settings-manager');
this.parseCSS();
this.app.workspace.onLayoutReady(() => {
if (this.settingsList) {
this.app.workspace.getLeavesOfType(viewType).forEach((leaf) => {
leaf.view.setSettings(this.settingsList, this.errorList);
});
}
});
});
}
getCSSVar(id) {
@@ -9635,15 +9667,16 @@ class CSSSettingsPlugin extends obsidian.Plugin {
}
parseCSS() {
clearTimeout(this.debounceTimer);
this.settingsList = [];
this.errorList = [];
// remove registered theme commands (sadly undocumented API)
for (const command of this.commandList) {
// @ts-ignore
this.app.commands.removeCommand(command.id);
}
this.commandList = [];
this.debounceTimer = window.setTimeout(() => {
this.debounceTimer = activeWindow.setTimeout(() => {
this.settingsList = [];
this.errorList = [];
// remove registered theme commands (sadly undocumented API)
for (const command of this.commandList) {
// @ts-ignore
this.app.commands.removeCommand(command.id);
}
this.commandList = [];
this.settingsManager.removeClasses();
const styleSheets = document.styleSheets;
for (let i = 0, len = styleSheets.length; i < len; i++) {
const sheet = styleSheets.item(i);
@@ -9651,10 +9684,11 @@ class CSSSettingsPlugin extends obsidian.Plugin {
}
// compatability with Settings Search Plugin
this.registerSettingsToSettingsSearch();
this.settingsTab.settingsMarkup.setSettings(this.settingsList, this.errorList);
this.settingsTab.setSettings(this.settingsList, this.errorList);
this.app.workspace.getLeavesOfType(viewType).forEach((leaf) => {
leaf.view.settingsMarkup.setSettings(this.settingsList, this.errorList);
leaf.view.setSettings(this.settingsList, this.errorList);
});
this.settingsManager.setConfig(this.settingsList);
this.settingsManager.initClasses();
this.registerSettingCommands();
}, 100);
@@ -9775,12 +9809,6 @@ class CSSSettingsPlugin extends obsidian.Plugin {
callback: () => {
const value = !this.settingsManager.getSetting(section.id, setting.id);
this.settingsManager.setSetting(section.id, setting.id, value);
if (value) {
document.body.classList.add(setting.id);
}
else {
document.body.classList.remove(setting.id);
}
this.settingsTab.settingsMarkup.rerender();
for (const leaf of this.app.workspace.getLeavesOfType(viewType)) {
leaf.view.settingsMarkup.rerender();
@@ -9795,7 +9823,6 @@ class CSSSettingsPlugin extends obsidian.Plugin {
this.darkEl = null;
document.body.classList.remove('css-settings-manager');
this.settingsManager.cleanup();
this.settingsTab.settingsMarkup.cleanup();
this.deactivateView();
this.unregisterSettingsFromSettingsSearch();
}
@@ -9810,7 +9837,7 @@ class CSSSettingsPlugin extends obsidian.Plugin {
type: viewType,
active: true,
});
leaf.view.settingsMarkup.setSettings(this.settingsList, this.errorList);
leaf.view.setSettings(this.settingsList, this.errorList);
});
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "obsidian-style-settings",
"name": "Style Settings",
"version": "1.0.3",
"version": "1.0.5",
"minAppVersion": "0.11.5",
"description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.",
"author": "mgmeyers",

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"id": "quick-latex",
"name": "Quick Latex for Obsidian",
"version": "2.5.1",
"version": "2.6.1",
"minAppVersion": "0.9.12",
"description": "Speedup latex math typing with auto fraction, align block shortcut, matrix shortcut...etc",
"author": "joeyuping",

View File

@@ -4,33 +4,22 @@
"type": "split",
"children": [
{
"id": "4eb3312ae86092ff",
"id": "0b7e99e39d69488e",
"type": "tabs",
"children": [
{
"id": "938ad38d86b932c5",
"id": "4f3b7a6eabb0779a",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "TC/Wykład/7..md",
"file": "AMiAL/AMiAL.md",
"mode": "source",
"source": false
}
}
},
{
"id": "455e8a63d7cbabc4",
"type": "leaf",
"state": {
"type": "release-notes",
"state": {
"currentVersion": "1.2.8"
}
}
}
],
"currentTab": 1
]
}
],
"direction": "vertical"
@@ -104,7 +93,7 @@
"state": {
"type": "backlink",
"state": {
"file": "TC/Wykład/7..md",
"file": "AMiAL/AMiAL.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@@ -121,7 +110,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "TC/Wykład/7..md",
"file": "AMiAL/AMiAL.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@@ -144,7 +133,7 @@
"state": {
"type": "outline",
"state": {
"file": "TC/Wykład/7..md"
"file": "AMiAL/AMiAL.md"
}
}
},
@@ -225,11 +214,14 @@
"audio-recorder:Start/stop recording": false,
"3d-graph:3D Graph": false,
"juggl:Juggl global graph": false,
"random-note:Open random note": false,
"breadcrumbs:Breadcrumbs Visualisation": false,
"obsidian-excalidraw-plugin:Create new drawing": false
}
},
"active": "455e8a63d7cbabc4",
"active": "4f3b7a6eabb0779a",
"lastOpenFiles": [
"AiSD/AiSD.md",
"TC/Wykład/8. Przerzutniki.md",
"TC/Wykład/7..md",
"TC/Wykład/3. ?.md",
@@ -242,7 +234,6 @@
"AMiAL/Ćwiczenia/Zadania/Całki/Zadanie 2.md",
"AMiAL/!Materiały/calki_1.pdf",
"AMiAL/AMiAL.md",
"AiSD/AiSD.md",
"Elektrotechnika/Ćwiczenia/20230428101941.md",
"!Załączniki/20230428101941 2023-04-28 10.39.09.excalidraw.md",
"!Załączniki/20230428101941 2023-04-28 10.22.19.excalidraw.md",