vault backup: 2026-09-01 11:05:57

This commit is contained in:
Thomas Peetz
2026-09-01 11:05:57 +02:00
parent 72bcb95438
commit 7db9c232cb
135 changed files with 34269 additions and 21370 deletions
+84 -8
View File
@@ -607,6 +607,15 @@ function toHexRGB(color) {
return parts.map((c) => c.toString(16).padStart(2, "0")).join("");
}
var REGEX_RGB = /^\s*rgba?\(\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?\s*)\)\s*$/i;
var REGEX_RGBA = /^\s*rgba\(\s*([\d.]+%?)\s*,\s*([\d.]+%?)\s*,\s*([\d.]+%?)\s*,\s*([\d.]+%?)\s*\)\s*$/i;
var REGEX_HEX = /^\s*#([\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})\s*$/i;
function parseColor(color) {
const trimmed2 = color.trim();
if (trimmed2.startsWith("#")) {
return parseColorHex(color);
}
return parseColorRGBA(color);
}
function parseColorRGB(rgb) {
const matches2 = REGEX_RGB.exec(rgb);
if (matches2 === null)
@@ -625,6 +634,67 @@ function parseColorRGB(rgb) {
b: rgbComponents[2]
};
}
function parseColorRGBA(rgba) {
const asRGB = parseColorRGB(rgba);
if (asRGB != null) {
asRGB.a = 255;
return asRGB;
}
const matches2 = REGEX_RGBA.exec(rgba);
if (matches2 === null)
return null;
const components = matches2.slice(1).map((v) => v.trim());
const rgbComponents = rgbComponentStringsToNumber(components.slice(0, 3));
if (rgbComponents === null) {
return null;
}
let alphaComponent = 255;
const alphaString = components[3];
if (alphaString != null) {
if (alphaString.endsWith("%")) {
alphaComponent = Math.floor(parseFloat(alphaString.substring(0, alphaString.length - 1)) * 255 / 100);
} else {
alphaComponent = Math.floor(parseFloat(alphaString) * 255);
}
}
const allComponents = [...rgbComponents, alphaComponent];
if (void 0 !== allComponents.find((v) => isNaN(v) || v < 0 || v > 255)) {
return null;
}
return {
r: allComponents[0],
g: allComponents[1],
b: allComponents[2],
a: allComponents[3]
};
}
function parseColorHex(hex) {
const matches2 = REGEX_HEX.exec(hex);
if (matches2 === null)
return null;
const hexString = matches2[1];
let hexDigits;
if (hexString.length < 6)
hexDigits = hexString.split("").map((c) => `${c}${c}`);
else {
hexDigits = [hexString.slice(0, 2), hexString.slice(2, 4), hexString.slice(4, 6), hexString.slice(6, 8)].filter(
(v) => v != ""
);
}
const hexComponents = hexDigits.map((v) => parseInt(v, 16));
if (void 0 !== hexComponents.find((v) => isNaN(v) || v < 0 || v > 255)) {
return null;
}
const hexRGB = {
r: hexComponents[0],
g: hexComponents[1],
b: hexComponents[2]
};
if (hexComponents.length > 3) {
hexRGB.a = hexComponents[3];
}
return hexRGB;
}
function rgbComponentStringsToNumber(components) {
if (components[0].endsWith("%")) {
if (void 0 !== components.slice(1, 3).find((c) => !c.endsWith("%"))) {
@@ -640,7 +710,7 @@ function rgbComponentStringsToNumber(components) {
// src/callout-util.ts
function getColorFromCallout(callout) {
return parseColorRGB(`rgb(${callout.color})`);
return parseColor(callout.color);
}
function getTitleFromCallout(callout) {
const matches2 = /^(.)(.*)/u.exec(callout.id);
@@ -1233,7 +1303,7 @@ var CalloutPreviewComponent = class extends import_obsidian8.Component {
calloutEl.style.removeProperty("--callout-color");
return this;
}
calloutEl.style.setProperty("--callout-color", `${color.r}, ${color.g}, ${color.b}`);
calloutEl.style.setProperty("--callout-color", `rgb(${color.r}, ${color.g}, ${color.b})`);
return this;
}
/**
@@ -1512,7 +1582,7 @@ function calloutSettingsToStyles(settings, environment) {
}
const { changes } = setting;
if (changes.color != null)
styles.push(`--callout-color: ${changes.color}`);
styles.push(`--callout-color: rgb(${changes.color})`);
if (changes.icon != null)
styles.push(`--callout-icon: ${changes.icon}`);
if (changes.customStyles != null)
@@ -3852,7 +3922,12 @@ var import_obsidian24 = require("obsidian");
var import_obsidian23 = require("obsidian");
// CHANGELOG.md
var CHANGELOG_default = `# Version 1.1.1
var CHANGELOG_default = `# Version 1.1.2
> [!fix] Quick Fix for Obsidian 1.13
> Thank you to everyone who reported issues after upgrading to Obsidian 1.13. This release should fix any immediate issues.
# Version 1.1.1
> [!new] Export Callouts as CSS
> There's now a button to copy your callout changes.
@@ -3902,10 +3977,10 @@ The first release available on Obsidian's community plugin browser!
`;
// src/changelog.ts
function getSections(parent) {
function getSections(app, parent) {
const frag = document.createDocumentFragment();
const renderedEl = frag.createDiv();
import_obsidian23.MarkdownRenderer.renderMarkdown(CHANGELOG_default, renderedEl, "", parent);
import_obsidian23.MarkdownRenderer.render(app, CHANGELOG_default, renderedEl, "", parent);
const sections = /* @__PURE__ */ new Map();
let heading = null;
let sectionContainer = frag.createEl("details");
@@ -3961,7 +4036,7 @@ var ChangelogPane = class extends UIPane {
super();
this.title = "Changelog";
this.plugin = plugin;
const sections = getSections(plugin);
const sections = getSections(plugin.app, plugin);
const frag = document.createDocumentFragment();
this.changelogEl = frag.createDiv({ cls: "calloutmanager-changelog" });
Array.from(sections.values()).forEach(({ version, containerEl: el }) => {
@@ -4028,7 +4103,7 @@ var ManagePluginPane = class extends UIPane {
new import_obsidian24.Setting(containerEl).setHeading().setName("What's New").setDesc(`Version ${this.plugin.manifest.version}`).addExtraButton((btn) => {
btn.setIcon("lucide-more-horizontal").setTooltip("More Changelogs").onClick(() => this.nav.open(new ChangelogPane(plugin)));
});
const latestChanges = getSections(this.root).get(this.plugin.manifest.version);
const latestChanges = getSections(this.plugin.app, this.root).get(this.plugin.manifest.version);
if (latestChanges != null) {
const desc = document.createDocumentFragment();
desc.appendChild(latestChanges.contentsEl);
@@ -4403,4 +4478,5 @@ var CalloutManagerPlugin = class extends import_obsidian25.Plugin {
}
};
/* nosourcemap */
+2 -2
View File
@@ -1,10 +1,10 @@
{
"id": "callout-manager",
"version": "1.1.1",
"version": "1.1.2",
"description": "Easily create and customize callouts.",
"author": "eth-p",
"authorUrl": "https://github.com/eth-p",
"name": "Callout Manager",
"minAppVersion": "1.0.0",
"minAppVersion": "1.13.0",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+10 -10
View File
@@ -1,11 +1,11 @@
{
"id": "cmdr",
"name": "Commander",
"version": "0.5.5",
"minAppVersion": "1.4.0",
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
"author": "jsmorabito & phibr0",
"authorUrl": "https://github.com/phibr0",
"fundingUrl": "https://ko-fi.com/phibr0",
"isDesktopOnly": false
}
"id": "cmdr",
"name": "Commander",
"version": "0.5.10",
"minAppVersion": "1.4.4",
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
"author": "jsmorabito & phibr0",
"authorUrl": "https://github.com/phibr0",
"fundingUrl": "https://ko-fi.com/phibr0",
"isDesktopOnly": false
}
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -1,10 +1,11 @@
{
"id": "find-unlinked-files",
"name": "Find orphaned files and broken links",
"version": "1.10.1",
"version": "1.11.0",
"description": "Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.",
"author": "Vinzent",
"fundingUrl": "https://ko-fi.com/vinzent",
"authorUrl": "https://github.com/Vinzent03",
"minAppVersion": "1.6.6",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+2847 -2230
View File
File diff suppressed because it is too large Load Diff
+6 -34
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,9 +1,9 @@
{
"id": "journals",
"name": "Journals",
"version": "2.1.10",
"minAppVersion": "1.0.0",
"description": "Manage your journals in Obsidian",
"version": "3.2.0",
"minAppVersion": "1.8.7",
"description": "Manage your journals, calendars, and periodic notes.",
"author": "Sergii Kostyrko",
"authorUrl": "https://github.com/srg-kostyrko",
"isDesktopOnly": false
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -5,7 +5,8 @@
},
"IgnoredProperties": {
"enabled": false,
"properties": []
"properties": [],
"hideFileTags": false
},
"AutoProperties": {
"enabled": true,
+11699 -5307
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,10 +1,10 @@
{
"id": "metaedit",
"name": "MetaEdit",
"version": "1.8.4",
"minAppVersion": "1.4.1",
"version": "1.10.3",
"minAppVersion": "1.12.7",
"description": "MetaEdit helps you manage your metadata.",
"author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com",
"isDesktopOnly": false
}
}
+210 -1
View File
@@ -12,4 +12,213 @@
font: inherit;
cursor: pointer;
outline: inherit;
}
}
.metaedit-hidden {
display: none;
}
.metaedit-setting-with-details {
display: block;
}
.metaedit-table-label {
margin-bottom: 0;
}
.metaedit-suggester-command {
font-weight: var(--font-semibold);
}
/* Lay the row out as flex so the action icons sit flush-right and stay
vertically centered against the property label (float:right aligned to the
line box, not the row center, which left them looking off). */
.suggestion-item:has(.metaedit-suggester-action-button) {
display: flex;
align-items: center;
}
.metaedit-suggester-action-button {
margin-left: 4px;
}
/* First action button pushes the whole icon group to the right edge. */
.metaedit-suggester-action-button:first-of-type {
margin-left: auto;
}
.metaedit-dataview-empty-header {
border: none;
}
.metaedit-bulk-modal-description {
color: var(--text-muted);
margin-top: 0;
}
.metaedit-bulk-options {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 12px;
}
.metaedit-bulk-option {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 2px;
width: 100%;
height: auto;
padding: 10px 12px;
text-align: left;
white-space: normal;
cursor: pointer;
}
.metaedit-bulk-option-label {
font-weight: var(--font-semibold);
}
.metaedit-bulk-option-description {
color: var(--text-muted);
font-size: var(--font-ui-smaller);
}
.metaedit-native-property-prompt {
min-width: min(520px, 88vw);
}
/* Obsidian's .metadata-property:focus-within ring wraps the whole row (pill +
value) with no inner padding of its own, so give the composite breathing room
- otherwise the pill's rounded background collides with the ring's corner and
wrapped chips sit flush against it. Same treatment as the create row. */
.metaedit-native-property-row {
display: flex;
align-items: flex-start;
gap: 8px;
margin: 12px 0;
padding: 4px;
}
.metaedit-native-property-host {
flex: 1 1 auto;
min-width: 0;
width: 100%;
}
.metaedit-native-property-host > * {
width: 100%;
}
.metaedit-native-property-error,
.metaedit-native-property-fallback-note {
color: var(--text-muted);
font-size: var(--font-ui-small);
margin-bottom: 8px;
}
.metaedit-native-property-fallback-input {
width: 100%;
}
.metaedit-native-wikilink-suggest-mirror {
height: 1px;
opacity: 0;
pointer-events: none;
position: absolute;
width: 1px;
}
/* Widen the modal BOX itself (not the content past the box padding, which caused
the horizontal scrollbar). Height hugs the content - no reserved space; the
key-name dropdown floats as a capped overlay (see below). */
.metaedit-fluid-create-modal {
width: min(620px, 92vw);
max-width: 92vw;
}
.metaedit-fluid-create-row {
display: flex;
align-items: flex-start;
gap: 8px;
flex-wrap: nowrap;
margin: 16px 0 6px;
padding: 4px;
}
/* The type pill shared by the fluid create modal and the native edit prompt. */
.metaedit-type-pill {
display: inline-flex;
align-items: center;
gap: 6px;
flex: 0 0 auto;
height: var(--input-height);
padding: 0 10px;
border-radius: var(--radius-s);
background: var(--interactive-normal);
box-shadow: var(--input-shadow);
color: var(--text-normal);
font-size: var(--font-ui-small);
cursor: pointer;
}
.metaedit-type-pill:hover {
background: var(--interactive-hover);
}
.metaedit-type-pill.is-locked {
cursor: default;
opacity: 0.75;
}
.metaedit-type-pill-icon {
display: inline-flex;
align-items: center;
}
.metaedit-type-pill-icon .svg-icon {
width: var(--icon-s);
height: var(--icon-s);
}
.metaedit-fluid-create-key {
flex: 2 1 0;
min-width: 0;
}
.metaedit-fluid-create-value {
flex: 3 1 0;
min-width: 0;
}
/* The key-name suggestion dropdown floats as a capped overlay (~6-7 rows +
internal scroll) so the modal stays compact when it's closed, instead of
reserving permanent vertical space. */
.metaedit-fluid-create-suggest {
max-height: 190px;
overflow-y: auto;
}
.metaedit-fluid-create-autoprop {
flex: 1 1 auto;
align-self: center;
color: var(--text-muted);
font-size: var(--font-ui-small);
}
.metaedit-fluid-create-hint {
color: var(--text-muted);
font-size: var(--font-ui-small);
margin: 0 0 6px;
}
.metaedit-fluid-create-hint-accept {
cursor: pointer;
}
.metaedit-fluid-create-warning {
color: var(--text-error);
font-size: var(--font-ui-small);
margin: 0 0 6px;
}
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -2,9 +2,9 @@
"id": "nldates-obsidian",
"name": "Natural Language Dates",
"description": "Create date-links based on natural language",
"version": "0.6.2",
"author": "Argentina Ortega Sainz",
"authorUrl": "https://argentinaos.com/",
"version": "0.6.4",
"author": "Obsidian Community (Formerly Argentina Ortega Sainz)",
"authorUrl": "https://github.com/obsidian-community/nldates",
"isDesktopOnly": false,
"minAppVersion": "1.0.0"
}
+4 -3
View File
@@ -19,11 +19,10 @@
"defaultDurationMinutes": 30,
"minimalDurationMinutes": 10,
"showTimestampInTaskBlock": true,
"showUncheduledTasks": true,
"showUnscheduledNestedTasks": true,
"showNow": true,
"showNext": true,
"pluginVersion": "0.30.0",
"pluginVersion": "0.35.1",
"showCompletedTasks": true,
"showSubtasksInTaskBlocks": true,
"icals": [],
@@ -34,11 +33,13 @@
"sortTasksInPlanAfterEdit": true,
"firstDayOfWeek": "monday",
"multiDayRange": "full-week",
"showTimelineInSidebar": true,
"showActiveClockInStatusBar": true,
"timelineColumns": {
"planner": true,
"timeTracker": false
},
"showUncheduledTasks": true,
"showTimelineInSidebar": true,
"dataviewSource": "\"Journal\" OR #process/task",
"showTimeTracker": false,
"showActiveClocks": true,
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,9 +1,9 @@
{
"id": "obsidian-day-planner",
"name": "Day Planner",
"version": "0.30.0",
"minAppVersion": "0.16.0",
"description": "A day planner with clean UI and readable syntax",
"version": "0.35.1",
"minAppVersion": "1.6.0",
"description": "Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.",
"author": "James Lynch, continued by Ivan Lednev",
"authorUrl": "https://github.com/ivan-lednev",
"fundingUrl": "https://www.buymeacoffee.com/machineelf",
File diff suppressed because one or more lines are too long
+165 -153
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,5 +6,5 @@
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.5"
"version": "2.39.0"
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "obsidian-tasks-plugin",
"name": "Tasks",
"version": "8.2.2",
"version": "8.4.0",
"minAppVersion": "1.8.7",
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
"helpUrl": "https://publish.obsidian.md/tasks/",
File diff suppressed because one or more lines are too long
+74 -12
View File
@@ -695,13 +695,18 @@
"inputPrompt": "single-line",
"persistInputPromptDrafts": true,
"useSelectionAsCaptureValue": true,
"searchNestedChoices": true,
"templateFolderLauncherRow": "bottom",
"devMode": false,
"templateFolderPath": "Resources/Templates",
"templateFolderPaths": [
"Resources/Templates"
],
"announceUpdates": "all",
"version": "2.12.3",
"version": "2.23.0",
"globalVariables": {},
"onePageInputEnabled": false,
"disableOnlineFeatures": true,
"enableUriCallbacks": false,
"enableRibbonIcon": false,
"showCaptureNotification": true,
"showInputCancellationNotification": false,
@@ -744,20 +749,74 @@
"name": "gpt-4",
"maxTokens": 8192
},
{
"name": "gpt-4-32k",
"maxTokens": 32768
},
{
"name": "gpt-4-1106-preview",
"maxTokens": 128000
},
{
"name": "text-davinci-003",
"maxTokens": 4096
},
{
"name": "gpt-5.5",
"maxTokens": 1050000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4",
"maxTokens": 1050000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4-mini",
"maxTokens": 400000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-5.4-nano",
"maxTokens": 400000,
"maxOutputTokens": 128000,
"supportsTemperature": false
},
{
"name": "gpt-4.1",
"maxTokens": 1047576,
"maxOutputTokens": 32768,
"supportsTemperature": true
},
{
"name": "gpt-4.1-mini",
"maxTokens": 1047576,
"maxOutputTokens": 32768,
"supportsTemperature": true
},
{
"name": "gpt-4o",
"maxTokens": 128000,
"maxOutputTokens": 16384,
"supportsTemperature": true
},
{
"name": "gpt-4o-mini",
"maxTokens": 128000,
"maxOutputTokens": 16384,
"supportsTemperature": true
},
{
"name": "o3",
"maxTokens": 200000,
"maxOutputTokens": 100000,
"supportsTemperature": false
},
{
"name": "o4-mini",
"maxTokens": 200000,
"maxOutputTokens": 100000,
"supportsTemperature": false
}
],
"modelSource": "auto"
"modelSource": "modelsDev",
"autoSyncModels": true,
"id": "openai"
}
]
},
@@ -774,7 +833,10 @@
"backfillFileOpeningDefaults": true,
"migrateProviderApiKeysToSecretStorage": true,
"consolidateFileExistsBehavior": true,
"repairTemplateFileExistsBehavior": true
"repairTemplateFileExistsBehavior": true,
"migrateToMultipleTemplateFolders": true,
"refreshStaleDefaultModelSeeds": true,
"pinAiModelRefs": true
},
"macros": []
}
+400 -82
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -1,12 +1,12 @@
{
"id": "quickadd",
"name": "QuickAdd",
"version": "2.12.3",
"minAppVersion": "1.11.4",
"version": "2.23.0",
"minAppVersion": "1.13.0",
"description": "Quickly add new pages or content to your vault.",
"author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com",
"fundingUrl": "https://www.buymeacoffee.com/chhoumann",
"helpUrl": "https://quickadd.obsidian.guide/docs/",
"isDesktopOnly": false
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -3,9 +3,9 @@
"name": "Tag Wrangler",
"author": "PJ Eby",
"authorUrl": "https://github.com/pjeby",
"version": "0.6.4",
"minAppVersion": "1.5.8",
"description": "Rename, merge, toggle, and search tags from the tags view",
"version": "0.6.5",
"minAppVersion": "1.12.7",
"description": "Rename, merge, toggle, and search tags from the tags view; create/open tag pages, and more.",
"fundingUrl": "https://dirtsimple.org/tips/tag-wrangler",
"isDesktopOnly": false
}
+15810 -12547
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "task-list-kanban",
"name": "Task List Kanban",
"version": "2.7.3",
"version": "2.13.0",
"minAppVersion": "1.5.3",
"description": "Organizes all of the tasks within your files into a kanban view. Reduce duplication of effort when managing and prioritising tasks by simply using the task format in your files to automatically appear in your Task List Kanban.",
"author": "Chris Kerr, Erika Rice Scherpelz",
+688 -1
View File
@@ -20,6 +20,443 @@ If your plugin does not need CSS, delete this file.
width: 100%;
}
/* Kanban filter surface
Svelte 5 emits component CSS with low-specificity :where() selectors.
Obsidian themes and other plugins often style plain input/button/select
elements more strongly, so keep the always-visible search bar and its
expanded editor protected behind the view's root class. */
.task-list-kanban-view .board-toolbar {
position: relative !important;
z-index: 120 !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
gap: var(--size-2-2) !important;
width: 100% !important;
max-width: min(1120px, calc(100% - var(--size-4-8))) !important;
margin: 0 auto var(--size-4-2) auto !important;
line-height: 1 !important;
}
.task-list-kanban-view .board-content {
overflow: visible !important;
}
.task-list-kanban-view .view-control,
.task-list-kanban-view .settings-control {
position: relative !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
flex: 0 0 auto !important;
width: auto !important;
height: 42px !important;
min-height: 0 !important;
margin: 0 !important;
box-sizing: border-box !important;
}
.task-list-kanban-view .view-editor-popover {
position: absolute !important;
top: calc(100% + 8px) !important;
z-index: 200 !important;
box-sizing: border-box !important;
width: max-content !important;
overflow: auto !important;
}
.task-list-kanban-view .view-editor-toggle {
box-sizing: border-box !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: var(--size-2-2) !important;
height: 42px !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 var(--size-4-3) !important;
border: var(--input-border-width, 1px) solid var(--background-modifier-border) !important;
border-radius: 999px !important;
background: var(--background-primary) !important;
box-shadow: var(--shadow-s) !important;
color: var(--text-normal) !important;
font-size: var(--font-ui-small) !important;
font-weight: 600 !important;
line-height: 1 !important;
cursor: pointer !important;
}
.task-list-kanban-view .settings-control .clickable-icon {
box-sizing: border-box !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 42px !important;
height: 42px !important;
min-width: 42px !important;
min-height: 42px !important;
margin: 0 !important;
padding: 0 !important;
border-radius: 999px !important;
line-height: 1 !important;
}
.task-list-kanban-view .filter-bar-container {
position: relative !important;
z-index: 100 !important;
flex: 1 1 auto !important;
width: auto !important;
min-width: 0 !important;
max-width: none !important;
margin: 0 !important;
}
.task-list-kanban-view .filter-bar {
box-sizing: border-box !important;
display: flex !important;
align-items: center !important;
gap: var(--size-2-3) !important;
width: 100% !important;
height: 42px !important;
min-height: 0 !important;
padding: 0 var(--size-2-3) 0 var(--size-4-3) !important;
background: var(--background-primary) !important;
border: var(--input-border-width, 1px) solid var(--background-modifier-border) !important;
border-radius: 999px !important;
box-shadow: var(--shadow-s) !important;
}
.task-list-kanban-view .filter-bar:focus-within {
box-shadow: 0 0 0 2px var(--background-modifier-border-focus) !important;
}
.task-list-kanban-view .filter-bar input.filter-bar-input {
flex: 1 1 auto !important;
width: auto !important;
min-width: 0 !important;
height: 100% !important;
min-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
background: transparent !important;
border: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
color: var(--text-normal) !important;
font-size: var(--font-ui-medium) !important;
line-height: 1 !important;
}
.task-list-kanban-view .filter-bar input.filter-bar-input:focus,
.task-list-kanban-view .filter-bar input.filter-bar-input:focus-visible {
border: 0 !important;
box-shadow: none !important;
outline: 0 !important;
}
.task-list-kanban-view .filter-bar-clear,
.task-list-kanban-view .filter-bar-expand {
flex: 0 0 auto !important;
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
width: 30px !important;
height: 30px !important;
min-width: 30px !important;
min-height: 30px !important;
margin: 0 !important;
padding: 0 !important;
background: transparent !important;
border: 0 !important;
border-radius: 999px !important;
box-shadow: none !important;
color: var(--text-muted) !important;
cursor: pointer !important;
font-size: 18px !important;
line-height: 1 !important;
}
.task-list-kanban-view .filter-bar-clear:hover,
.task-list-kanban-view .filter-bar-expand:hover,
.task-list-kanban-view .filter-bar-clear:focus-visible,
.task-list-kanban-view .filter-bar-expand:focus-visible {
background: var(--background-modifier-hover) !important;
color: var(--text-normal) !important;
}
.task-list-kanban-view .filter-editor {
box-sizing: border-box !important;
position: absolute !important;
top: 100% !important;
left: 0 !important;
right: 0 !important;
z-index: 200 !important;
display: flex !important;
flex-direction: column !important;
gap: var(--size-4-3) !important;
max-height: min(70vh, 720px) !important;
margin-top: var(--size-2-1) !important;
padding: var(--size-4-4) !important;
overflow-y: auto !important;
background: var(--background-primary) !important;
border: 1px solid var(--background-modifier-border) !important;
border-radius: var(--radius-m) !important;
box-shadow: var(--shadow-s) !important;
}
.task-list-kanban-view .filter-editor .editor-section {
display: grid !important;
grid-template-columns: 72px minmax(0, 1fr) !important;
gap: var(--size-2-3) !important;
align-items: start !important;
}
.task-list-kanban-view .filter-editor .section-label,
.task-list-kanban-view .filter-editor .saved-toggle {
color: var(--text-muted) !important;
font-size: var(--font-ui-small) !important;
}
.task-list-kanban-view .filter-editor .section-rows {
display: flex !important;
flex-direction: column !important;
gap: var(--size-2-2) !important;
min-width: 0 !important;
}
.task-list-kanban-view .filter-editor .editor-row,
.task-list-kanban-view .filter-editor .save-row,
.task-list-kanban-view .filter-editor .date-condition-row {
display: flex !important;
align-items: center !important;
gap: var(--size-2-2) !important;
min-width: 0 !important;
}
.task-list-kanban-view .filter-editor .suggestion-anchor {
position: relative !important;
display: flex !important;
flex: 1 1 auto !important;
min-width: 0 !important;
}
.task-list-kanban-view .filter-editor input.text-input,
.task-list-kanban-view .filter-editor input[type="date"],
.task-list-kanban-view .filter-editor select.dropdown {
box-sizing: border-box !important;
min-width: 0 !important;
height: auto !important;
min-height: 0 !important;
margin: 0 !important;
background: transparent !important;
border: 0 !important;
border-bottom: 1px solid var(--background-modifier-border) !important;
border-radius: 0 !important;
box-shadow: none !important;
color: var(--text-normal) !important;
font-size: var(--font-ui-small) !important;
line-height: 1.4 !important;
}
.task-list-kanban-view .filter-editor input.text-input {
flex: 1 1 auto !important;
width: 100% !important;
padding: var(--size-2-2) 0 !important;
}
.task-list-kanban-view .filter-editor select.dropdown {
flex: 0 1 auto !important;
padding-left: 0 !important;
}
.task-list-kanban-view .filter-editor input.text-input:focus,
.task-list-kanban-view .filter-editor input.text-input:focus-visible,
.task-list-kanban-view .filter-editor input[type="date"]:focus,
.task-list-kanban-view .filter-editor input[type="date"]:focus-visible,
.task-list-kanban-view .filter-editor select.dropdown:focus,
.task-list-kanban-view .filter-editor select.dropdown:focus-visible {
border-bottom-color: var(--interactive-accent) !important;
box-shadow: none !important;
outline: 0 !important;
}
.task-list-kanban-view .filter-editor button {
min-height: 0 !important;
margin: 0 !important;
box-shadow: none !important;
cursor: pointer !important;
font-size: var(--font-ui-small) !important;
line-height: 1.2 !important;
}
.task-list-kanban-view .filter-editor .row-remove,
.task-list-kanban-view .filter-editor .add-row-btn,
.task-list-kanban-view .filter-editor .saved-toggle,
.task-list-kanban-view .filter-editor .editor-clear-btn {
background: transparent !important;
border: 0 !important;
color: var(--text-muted) !important;
}
.task-list-kanban-view .filter-editor .row-remove {
flex: 0 0 auto !important;
width: 28px !important;
height: 28px !important;
padding: 0 !important;
border-radius: 999px !important;
font-size: 18px !important;
line-height: 1 !important;
}
.task-list-kanban-view .filter-editor .add-row-btn,
.task-list-kanban-view .filter-editor .saved-toggle {
align-self: flex-start !important;
padding: var(--size-2-1) 0 !important;
}
.task-list-kanban-view .filter-editor .save-filter-btn {
flex: 0 0 auto !important;
padding: var(--size-2-2) var(--size-4-3) !important;
background: transparent !important;
border: 1px solid var(--background-modifier-border) !important;
border-radius: 999px !important;
color: var(--text-muted) !important;
}
.task-list-kanban-view .filter-editor .date-value-toggle {
display: inline-flex !important;
align-items: stretch !important;
overflow: hidden !important;
background: var(--background-modifier-form-field, var(--background-primary)) !important;
border: var(--input-border-width, 1px) solid var(--background-modifier-border) !important;
border-radius: var(--input-radius) !important;
}
.task-list-kanban-view .filter-editor .date-value-toggle button {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
padding: var(--size-2-2) var(--size-2-3) !important;
background: transparent !important;
border: 0 !important;
border-radius: 0 !important;
color: var(--text-muted) !important;
font-size: var(--font-ui-smaller) !important;
}
.task-list-kanban-view .filter-editor .date-value-toggle button + button {
border-left: var(--input-border-width, 1px) solid var(--background-modifier-border) !important;
}
.task-list-kanban-view .filter-editor .date-value-toggle button.active,
.task-list-kanban-view .filter-editor .editor-search-btn {
background: var(--interactive-accent) !important;
color: var(--text-on-accent) !important;
}
.task-list-kanban-view .filter-editor .editor-actions {
display: flex !important;
justify-content: flex-end !important;
gap: var(--size-2-3) !important;
padding-top: var(--size-2-3) !important;
border-top: 1px solid var(--background-modifier-border) !important;
}
.task-list-kanban-view .filter-editor .editor-clear-btn,
.task-list-kanban-view .filter-editor .editor-search-btn {
padding: var(--size-2-2) var(--size-4-3) !important;
border: 0 !important;
border-radius: 999px !important;
}
.task-list-kanban-view .filter-editor .editor-search-btn {
padding-right: var(--size-4-5) !important;
padding-left: var(--size-4-5) !important;
}
.task-list-kanban-view .filter-editor .saved-filter-list {
display: flex !important;
flex-direction: column !important;
gap: var(--size-2-1) !important;
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
}
.task-list-kanban-view .filter-editor .saved-filter-list li {
display: flex !important;
align-items: center !important;
gap: var(--size-2-1) !important;
min-width: 0 !important;
}
.task-list-kanban-view .filter-editor .saved-filter-name {
display: block !important;
flex: 1 1 auto !important;
min-width: 0 !important;
padding: var(--size-2-1) var(--size-2-2) !important;
overflow: hidden !important;
background: transparent !important;
border: 0 !important;
border-radius: var(--radius-s) !important;
color: var(--text-normal) !important;
text-align: left !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
.task-list-kanban-view .filter-editor .row-remove:hover,
.task-list-kanban-view .filter-editor .add-row-btn:hover,
.task-list-kanban-view .filter-editor .saved-toggle:hover,
.task-list-kanban-view .filter-editor .editor-clear-btn:hover,
.task-list-kanban-view .filter-editor .save-filter-btn:hover:not(:disabled),
.task-list-kanban-view .filter-editor .saved-filter-name:hover,
.task-list-kanban-view .filter-editor .date-value-toggle button:hover {
background: var(--background-modifier-hover) !important;
color: var(--text-normal) !important;
}
.task-list-kanban-view .filter-editor .row-remove:hover {
color: var(--color-red) !important;
}
.task-list-kanban-view .filter-editor .save-filter-btn:disabled {
opacity: 0.5 !important;
cursor: default !important;
}
.task-list-kanban-view .filter-suggestions {
box-sizing: border-box !important;
position: absolute !important;
top: 100% !important;
right: 0 !important;
left: 0 !important;
z-index: 300 !important;
max-height: 240px !important;
margin: var(--size-2-1) 0 0 0 !important;
padding: var(--size-2-1) !important;
overflow-y: auto !important;
background: var(--background-primary) !important;
border: 1px solid var(--background-modifier-border) !important;
border-radius: var(--radius-m) !important;
box-shadow: var(--shadow-s) !important;
list-style: none !important;
}
.task-list-kanban-view .filter-suggestions li {
display: flex !important;
align-items: baseline !important;
gap: var(--size-2-3) !important;
padding: var(--size-2-2) var(--size-2-3) !important;
border-radius: var(--radius-s) !important;
cursor: pointer !important;
}
.task-list-kanban-view .filter-suggestions li:hover,
.task-list-kanban-view .filter-suggestions li.selected {
background: var(--background-modifier-hover) !important;
}
/* Settings modal shell */
.task-list-kanban-settings-modal-container {
display: flex;
@@ -128,6 +565,56 @@ If your plugin does not need CSS, delete this file.
margin-top: 18px;
}
.task-list-kanban-create-card-modal-container {
width: min(680px, calc(100vw - 48px));
}
.task-list-kanban-create-card-modal h2 {
margin-top: 0;
margin-bottom: 18px;
}
.task-list-kanban-create-card-modal .create-card-setting {
display: grid;
grid-template-columns: 120px minmax(0, 1fr);
gap: 14px;
align-items: start;
padding: 10px 0;
border-top: 0;
}
.task-list-kanban-create-card-modal .create-card-setting .setting-item-info {
width: auto;
min-width: 0;
margin-right: 0;
padding-top: 6px;
}
.task-list-kanban-create-card-modal .create-card-setting .setting-item-control {
width: 100%;
min-width: 0;
justify-content: stretch;
}
.task-list-kanban-create-card-modal .create-card-text,
.task-list-kanban-create-card-modal .create-card-select {
width: 100%;
max-width: none;
box-sizing: border-box;
}
.task-list-kanban-create-card-modal .create-card-text {
min-height: 112px;
resize: vertical;
line-height: 1.35;
}
.task-list-kanban-create-card-modal .confirm-modal-actions {
margin-top: 22px;
padding-top: 14px;
border-top: var(--border-width) solid var(--background-modifier-border);
}
.settings-body {
display: grid;
grid-template-columns: 180px minmax(0, 1fr);
@@ -176,6 +663,56 @@ If your plugin does not need CSS, delete this file.
scroll-behavior: smooth;
}
.global-board-defaults-editor {
margin-top: 10px;
}
.task-list-kanban-global-settings > h2,
.task-list-kanban-global-settings > .setting-item-description,
.task-list-kanban-global-settings .setting-item-heading,
.task-list-kanban-settings-inline .settings-header,
.task-list-kanban-settings-inline .settings-header h2,
.task-list-kanban-settings-inline .settings-section-header,
.task-list-kanban-settings-inline .settings-section-header h2 {
margin-left: 0 !important;
padding-left: 0 !important;
}
.task-list-kanban-global-settings > h2 {
margin-top: 0 !important;
}
.task-list-kanban-global-settings > .setting-item,
.task-list-kanban-global-settings > .setting-item-description {
width: 100%;
box-sizing: border-box;
}
.task-list-kanban-settings-inline .settings-scroll-wrapper {
display: block;
overflow: visible;
min-height: 0;
}
.task-list-kanban-settings-inline .settings-header {
margin-top: 18px;
}
.task-list-kanban-settings-inline .settings-header h2 {
margin: 0;
font-size: 1.35em;
}
.task-list-kanban-settings-inline .settings-body-inline {
display: block;
padding-top: 18px;
}
.task-list-kanban-settings-inline .settings-content {
overflow: visible;
padding: 0;
}
.settings-section {
padding-bottom: 22px;
scroll-margin-top: 10px;
@@ -201,6 +738,76 @@ If your plugin does not need CSS, delete this file.
color: var(--text-muted);
}
.settings-section-header-row {
display: flex;
align-items: baseline;
justify-content: flex-start;
gap: 10px;
}
.settings-section-header-row h2 {
margin: 0 0 4px;
font-size: 1.35em;
}
/* Inherited-vs-overridden indicator (SPEC 0030 Phase 4). Reads as small
bold text, not a button: Obsidian's default button chrome is stripped
and the flex sizing pinned so row layouts can't stretch it. */
.settings-override-chip {
appearance: none;
background: none;
border: none;
border-radius: 0;
box-shadow: none;
height: auto;
flex: 0 0 auto;
align-self: center;
width: auto;
color: var(--text-faint);
cursor: pointer;
font-size: var(--font-smallest);
font-weight: var(--font-semibold, 600);
line-height: 1.4;
margin-left: 8px;
padding: 0;
vertical-align: middle;
}
.settings-override-chip:hover {
background: none;
box-shadow: none;
color: var(--text-muted);
text-decoration: underline;
}
.settings-override-chip.is-overridden {
color: var(--text-normal);
}
/* The section-level reset shares the chip's text styling; it sits right
after the section title and dims when nothing in the section is
overridden. */
.settings-section-reset {
flex: 0 0 auto;
margin-left: 0;
color: var(--text-normal);
/* A step above the item-level chips, still well below the h2, so the
section action reads as the top of the reset hierarchy. */
font-size: var(--font-small, 0.875em);
}
.settings-section-reset:hover:not(:disabled) {
color: var(--text-normal);
text-decoration: underline;
}
.settings-section-reset:disabled {
color: var(--text-faint);
cursor: default;
text-decoration: none;
opacity: 0.6;
}
.settings-section-body > .setting-item:first-child {
border-top: 0;
}
@@ -361,7 +968,14 @@ If your plugin does not need CSS, delete this file.
}
.column-editor-row.is-bookend .column-editor-summary {
grid-template-columns: minmax(180px, 1fr) minmax(150px, auto);
/* The trailing auto column holds the override chip; it collapses to
nothing in the global-defaults editor where no chip is rendered. */
grid-template-columns: minmax(180px, 1fr) minmax(150px, auto) auto;
}
.column-editor-summary > .settings-override-chip {
justify-self: start;
margin-left: 0;
}
.column-editor-pill {
@@ -660,6 +1274,15 @@ If your plugin does not need CSS, delete this file.
white-space: nowrap;
}
.task-list-kanban-create-card-modal .create-card-setting {
grid-template-columns: 1fr;
gap: 6px;
}
.task-list-kanban-create-card-modal .create-card-setting .setting-item-info {
padding-top: 0;
}
.column-editor-summary {
grid-template-columns: minmax(160px, 1fr) auto auto;
}
@@ -732,3 +1355,67 @@ If your plugin does not need CSS, delete this file.
max-width: 100%;
}
}
/* Shared add/remove string-list editors in the settings modal */
.settings-list-add-row {
display: flex;
gap: 8px;
margin-bottom: 8px;
}
.settings-list-add-row input[type="text"] {
flex-grow: 1;
}
.settings-list-indent {
margin-left: 16px;
}
.settings-list-block {
margin-bottom: 12px;
}
.settings-list-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 4px 8px;
border-bottom: 1px solid var(--background-modifier-border);
}
.settings-list-label {
flex-grow: 1;
}
.settings-list-label-mono {
font-family: var(--font-monospace);
font-size: var(--font-ui-smaller);
}
.settings-list-note {
color: var(--text-muted);
font-style: italic;
font-size: var(--font-smallest);
}
.settings-list-note.is-warning {
color: var(--text-error);
}
.settings-list-remove-icon {
margin-left: 8px;
cursor: pointer;
background: none;
border: none;
color: var(--text-muted);
padding: 2px 6px;
}
.settings-list-remove-text {
padding: 2px 8px;
font-size: var(--font-ui-smaller);
}
.settings-subsection {
margin-bottom: 12px;
}
+7 -16
View File
@@ -1,29 +1,20 @@
{
"data_version": 2,
"command_timeout": 5,
"templates_folder": "Resources/Templates",
"templates_pairs": [
[
"",
""
]
],
"trigger_on_file_creation": true,
"templates_pairs": [],
"trigger_on_file_creation_mode": "folder",
"auto_jump_to_cursor": true,
"enable_system_commands": false,
"jump_to_cursor_after_file_name": false,
"shell_path": "",
"user_scripts_folder": "Resources/Functions",
"enable_folder_templates": true,
"folder_templates": [],
"enable_file_templates": false,
"file_templates": [
{
"regex": ".*",
"template": ""
}
],
"file_templates": [],
"syntax_highlighting": true,
"syntax_highlighting_mobile": false,
"enabled_templates_hotkeys": [],
"startup_templates": [],
"intellisense_render": "1",
"ignore_folders_on_creation": [],
"enable_ribbon_icon": true
}
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,9 +1,9 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.20.6",
"version": "2.25.0",
"description": "Advanced templating and automation using handlebars-like syntax.",
"minAppVersion": "1.12.2",
"minAppVersion": "1.13.0",
"author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13",
"fundingUrl": {
+5 -61
View File
@@ -1,69 +1,8 @@
.templater_search {
width: calc(100% - 20px);
}
.templater_div {
border-top: 1px solid var(--background-modifier-border);
}
.templater_div > .setting-item {
border-top: none !important;
align-self: center;
}
.templater_div > .setting-item > .setting-item-control {
justify-content: space-around;
padding: 0;
width: 100%;
}
.templater_div
> .setting-item
> .setting-item-control
> .setting-editor-extra-setting-button {
align-self: center;
}
.templater_donating {
margin: 10px;
}
.templater_title {
margin: 0;
padding: 0;
margin-top: 5px;
text-align: center;
}
.templater_template {
align-self: center;
margin-left: 5px;
margin-right: 5px;
width: 70%;
}
.templater_cmd {
margin-left: 5px;
margin-right: 5px;
font-size: 14px;
width: 100%;
}
.templater_div2 > .setting-item {
align-content: center;
justify-content: center;
}
.templater-prompt-div,
.templater-multisuggester-div {
display: flex;
}
.templater-prompt-form {
display: flex;
flex-grow: 1;
}
.templater-prompt-input,
.templater-multisuggester-input {
flex-grow: 1;
@@ -80,6 +19,11 @@ textarea.templater-prompt-input {
height: 10rem;
}
.templater-ignore-folder-modal .modal-content input[type="text"],
.templater-startup-template-modal .modal-content input[type="text"] {
width: 100%;
}
textarea.templater-prompt-input:focus {
border-color: var(--interactive-accent);
}