MacBookPro.lan 2026-7-5:20:1:24

This commit is contained in:
oskar
2026-07-05 20:01:25 +02:00
parent 471b0aa399
commit 236ceccda4
50 changed files with 14364 additions and 6929 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "better-export-pdf",
"name": "Better Export PDF",
"version": "2.0.2",
"version": "2.0.3",
"minAppVersion": "0.15.0",
"description": "Export your notes to PDF, support export preview, add bookmarks outline and header/footer.",
"author": "l1xnan",
+3 -3
View File
@@ -286,7 +286,7 @@
"prevs"
],
"lock_view": false,
"lock_path": "matrices particulières.md",
"lock_path": "language tool.md",
"custom_sort_fields": false,
"custom_sort_field_labels": []
},
@@ -295,9 +295,9 @@
"show_attributes": [],
"merge_fields": false,
"lock_view": false,
"lock_path": "matrices particulières.md",
"lock_path": "language tool.md",
"field_group_labels": [
"ups"
"downs"
],
"edge_sort_id": {
"field": "basename",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "darlal-switcher-plus",
"name": "Quick Switcher++",
"version": "6.1.3",
"version": "6.1.4",
"minAppVersion": "1.12.7",
"description": "Enhanced Quick Switcher, search open panels, and symbols.",
"author": "darlal",
-10
View File
@@ -66,16 +66,6 @@
justify-content: left;
}
/* highlight recently used file suggestions */
.suggestion-item.qsp-recent-file .qsp-title {
text-decoration: underline dotted var(--text-muted);
}
/* highlight currently open editor suggestions */
.suggestion-item.qsp-open-editor .qsp-title {
text-decoration: underline var(--text-accent);
}
/* highlight the open editor flair icon */
.suggestion-item.qsp-open-editor .suggestion-aux.qsp-aux .qsp-editor-indicator,
.suggestion-item.qsp-open-editor .suggestion-aux.qsp-aux .qsp-editor-indicator svg {
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,8 +1,8 @@
{
"id": "header-enhancer",
"name": "Header Enhancer",
"version": "0.5.2",
"minAppVersion": "0.14.0",
"version": "0.6.0",
"minAppVersion": "1.8.7",
"description": "Level up your headers, customize your notes. Header Enhancer makes your notes header better and more useful.",
"author": "Hobee Liu",
"authorUrl": "https://github.com/HoBeedzc",
+464 -5
View File
@@ -1,8 +1,467 @@
/*
/* Header and title font settings */
body.header-enhancer-custom-header-font-family .markdown-preview-view h1,
body.header-enhancer-custom-header-font-family .markdown-preview-view h2,
body.header-enhancer-custom-header-font-family .markdown-preview-view h3,
body.header-enhancer-custom-header-font-family .markdown-preview-view h4,
body.header-enhancer-custom-header-font-family .markdown-preview-view h5,
body.header-enhancer-custom-header-font-family .markdown-preview-view h6,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-1,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-2,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-3,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-4,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-5,
body.header-enhancer-custom-header-font-family .markdown-source-view.mod-cm6 .HyperMD-header-6 {
font-family: var(--header-enhancer-header-font-family) !important;
}
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
body.header-enhancer-custom-header-font-size .markdown-preview-view h1,
body.header-enhancer-custom-header-font-size .markdown-preview-view h2,
body.header-enhancer-custom-header-font-size .markdown-preview-view h3,
body.header-enhancer-custom-header-font-size .markdown-preview-view h4,
body.header-enhancer-custom-header-font-size .markdown-preview-view h5,
body.header-enhancer-custom-header-font-size .markdown-preview-view h6,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-1,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-2,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-3,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-4,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-5,
body.header-enhancer-custom-header-font-size .markdown-source-view.mod-cm6 .HyperMD-header-6 {
font-size: var(--header-enhancer-header-font-size) !important;
}
If your plugin does not need CSS, delete this file.
body.header-enhancer-custom-title-font-family .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-family .workspace-tab-header .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-family .workspace-tabs .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-family .workspace-leaf-content .view-header-title,
body.header-enhancer-custom-title-font-family .inline-title,
body.header-enhancer-custom-title-font-family .markdown-preview-view .inline-title,
body.header-enhancer-custom-title-font-family .markdown-source-view .inline-title,
body.header-enhancer-custom-title-font-family .nav-file-title-content,
body.header-enhancer-custom-title-font-family .tree-item-inner.nav-file-title-content,
body.header-enhancer-custom-title-font-family .frontmatter-container .metadata-property[data-property-key="title"] .metadata-property-value {
font-family: var(--header-enhancer-title-font-family) !important;
}
*/
body.header-enhancer-custom-title-font-size .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-size .workspace-tab-header .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-size .workspace-tabs .workspace-tab-header-inner-title,
body.header-enhancer-custom-title-font-size .workspace-leaf-content .view-header-title,
body.header-enhancer-custom-title-font-size .inline-title,
body.header-enhancer-custom-title-font-size .markdown-preview-view .inline-title,
body.header-enhancer-custom-title-font-size .markdown-source-view .inline-title,
body.header-enhancer-custom-title-font-size .nav-file-title-content,
body.header-enhancer-custom-title-font-size .tree-item-inner.nav-file-title-content,
body.header-enhancer-custom-title-font-size .frontmatter-container .metadata-property[data-property-key="title"] .metadata-property-value {
font-size: var(--header-enhancer-title-font-size) !important;
}
/* Ribbon icon state styles */
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-global-disabled {
opacity: 0.4;
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-global-disabled:hover {
opacity: 0.6;
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-document-enabled {
color: var(--color-accent);
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-document-enabled:hover {
color: var(--color-accent-hover);
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-document-disabled {
opacity: 0.7;
color: var(--text-muted);
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-document-disabled:hover {
opacity: 1;
color: var(--text-normal);
}
.side-dock-ribbon-action[aria-label*="Header Enhancer"].header-enhancer-global-disabled::before {
content: "";
position: absolute;
top: 2px;
right: 2px;
width: 6px;
height: 6px;
border-radius: 50%;
background-color: var(--text-error);
z-index: 10;
}
/* Settings page */
.header-enhancer-global-disabled-info,
.header-enhancer-off-info {
margin: 1.5em 0;
padding: 1.2em;
border: 2px solid var(--text-muted);
border-radius: 8px;
background: var(--background-secondary);
opacity: 0.8;
}
.header-enhancer-info-title {
font-weight: 600;
color: var(--text-muted);
margin-bottom: 0.8em;
display: flex;
align-items: center;
}
.header-enhancer-info-description {
line-height: 1.6;
color: var(--text-muted);
}
.header-enhancer-font-preview,
.header-enhancer-title-font-preview {
margin: 1em 0;
padding: 1em;
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
background: var(--background-secondary);
}
.header-enhancer-preview-title {
font-size: 1.5em;
font-weight: bold;
margin: 0.5em 0;
}
.header-enhancer-auto-detection-preview {
margin: 1em 0;
padding: 1.2em;
border: 2px solid var(--color-green);
border-radius: 8px;
background: var(--background-secondary);
position: relative;
}
.header-enhancer-auto-detection-title {
font-weight: 600;
font-size: 1em;
color: var(--color-green);
margin-bottom: 0.8em;
display: flex;
align-items: center;
}
.header-enhancer-muted-italic {
color: var(--text-muted);
font-style: italic;
}
.header-enhancer-empty-analysis {
color: var(--text-muted);
text-align: center;
padding: 1em;
}
.header-enhancer-analysis-grid {
display: grid;
gap: 0.8em;
line-height: 1.6;
}
.header-enhancer-analysis-row {
display: flex;
align-items: center;
gap: 0.8em;
}
.header-enhancer-analysis-row-start {
align-items: flex-start;
}
.header-enhancer-analysis-label {
color: var(--text-normal);
min-width: 70px;
}
.header-enhancer-analysis-row-start .header-enhancer-analysis-label {
margin-top: 0.2em;
}
.header-enhancer-analysis-values {
display: flex;
gap: 0.4em;
flex-wrap: wrap;
}
.header-enhancer-level-chip {
background: var(--tag-background);
color: var(--tag-color);
padding: 0.2em 0.4em;
border-radius: 3px;
font-family: monospace;
}
.header-enhancer-mapping-chip {
background: var(--background-modifier-hover);
padding: 0.2em 0.4em;
border-radius: 3px;
font-family: monospace;
}
.header-enhancer-range-badge,
.header-enhancer-total-badge {
color: var(--text-on-accent);
padding: 0.3em 0.6em;
border-radius: 4px;
font-weight: 500;
}
.header-enhancer-range-badge {
background: var(--color-green);
}
.header-enhancer-total-badge {
background: var(--color-blue);
}
.header-enhancer-format-preview-container {
margin: 1.5em 0;
}
.header-enhancer-format-preview-title {
font-weight: 600;
font-size: 1.1em;
color: var(--text-accent);
margin-bottom: 1em;
display: flex;
align-items: center;
gap: 0.5em;
}
.header-enhancer-format-preview-icon {
color: var(--color-accent);
}
.header-enhancer-format-state {
text-align: center;
padding: 1.5em;
border: 2px dashed var(--background-modifier-border);
border-radius: 8px;
background: var(--background-modifier-hover);
}
.header-enhancer-format-state-muted {
color: var(--text-muted);
}
.header-enhancer-format-state-yaml {
color: var(--text-accent);
border-color: var(--color-blue);
}
.header-enhancer-format-state-icon {
font-size: 1.5em;
margin-bottom: 0.5em;
}
.header-enhancer-format-state-text {
font-size: 1em;
font-weight: 500;
}
.header-enhancer-format-preview {
display: flex;
flex-direction: column;
gap: 1.5em;
}
.header-enhancer-format-example-wrapper {
text-align: center;
}
.header-enhancer-format-example {
font-family: monospace;
font-size: 1.8em;
font-weight: 700;
color: var(--color-accent);
background: var(--background-primary);
padding: 1em;
border-radius: 8px;
border: 2px solid var(--color-accent);
}
.header-enhancer-format-details {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1em;
}
.header-enhancer-format-level-info {
display: flex;
align-items: center;
gap: 0.5em;
font-weight: 500;
color: var(--text-normal);
}
.header-enhancer-status-badge {
color: white;
padding: 0.3em 0.8em;
border-radius: 15px;
font-size: 0.85em;
font-weight: 600;
white-space: nowrap;
}
.header-enhancer-status-auto {
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);
}
.header-enhancer-status-warning {
background: var(--color-orange);
}
.header-enhancer-status-muted {
background: var(--text-muted);
}
.header-enhancer-status-manual {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
}
.header-enhancer-yaml-info {
margin: 1.5em 0;
padding: 1.2em;
border: 2px solid var(--color-blue);
border-radius: 8px;
background: var(--background-secondary);
}
.header-enhancer-yaml-title {
font-weight: 600;
color: var(--color-blue);
margin-bottom: 0.8em;
display: flex;
align-items: center;
}
.header-enhancer-yaml-description {
display: grid;
gap: 1em;
line-height: 1.6;
color: var(--text-normal);
}
.header-enhancer-yaml-example {
background: var(--code-background);
padding: 0.5em;
border-radius: 4px;
display: block;
font-family: monospace;
white-space: pre-wrap;
}
/* Auto numbering dialog styles */
.header-enhancer-removal-dialog,
.header-enhancer-activation-dialog {
max-width: 500px;
}
.header-enhancer-removal-dialog .modal-title,
.header-enhancer-activation-dialog .modal-title {
margin-bottom: 1em;
padding-bottom: 0.5em;
color: var(--text-accent);
border-bottom: 1px solid var(--background-modifier-border);
}
.header-enhancer-removal-dialog .modal-message,
.header-enhancer-activation-dialog .modal-message {
margin-bottom: 1.5em;
line-height: 1.5;
color: var(--text-normal);
}
.header-enhancer-removal-dialog .modal-actions,
.header-enhancer-activation-dialog .modal-actions {
margin-top: 1em;
padding-top: 1em;
border-top: 1px solid var(--background-modifier-border);
}
.header-enhancer-removal-dialog .modal-actions .setting-item,
.header-enhancer-activation-dialog .modal-actions .setting-item {
margin-bottom: 0.75em;
padding: 0.75em;
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
transition: all 0.2s ease;
}
.header-enhancer-removal-dialog .modal-actions .setting-item:hover,
.header-enhancer-activation-dialog .modal-actions .setting-item:hover {
background-color: var(--background-secondary-alt);
border-color: var(--background-modifier-border-hover);
}
.header-enhancer-removal-dialog .setting-item-warning,
.header-enhancer-removal-dialog .setting-item-tip,
.header-enhancer-activation-dialog .setting-item-warning,
.header-enhancer-activation-dialog .setting-item-tip {
margin-top: 0.5em;
font-size: 0.85em;
line-height: 1.3;
}
.header-enhancer-removal-dialog .warning-label,
.header-enhancer-activation-dialog .warning-label {
color: var(--text-error);
font-weight: 600;
}
.header-enhancer-removal-dialog .warning-text,
.header-enhancer-removal-dialog .progress-text,
.header-enhancer-activation-dialog .warning-text,
.header-enhancer-activation-dialog .progress-text {
color: var(--text-muted);
margin: 0;
}
.header-enhancer-removal-dialog .manual-tip-text,
.header-enhancer-activation-dialog .manual-tip-text {
color: var(--text-muted);
font-style: italic;
}
.header-enhancer-removal-dialog .modal-cancel,
.header-enhancer-activation-dialog .modal-cancel {
margin-top: 1em;
padding-top: 1em;
text-align: center;
border-top: 1px solid var(--background-modifier-border-focus);
}
.header-enhancer-removal-dialog .progress-container,
.header-enhancer-activation-dialog .progress-container {
margin-top: 1em;
padding: 1em;
background-color: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
text-align: center;
}
.header-enhancer-removal-dialog .progress-text,
.header-enhancer-activation-dialog .progress-text {
font-size: 0.9em;
}
.header-enhancer-removal-dialog button:disabled,
.header-enhancer-activation-dialog button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
+11668 -5296
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,8 +1,8 @@
{
"id": "metaedit",
"name": "MetaEdit",
"version": "1.8.4",
"minAppVersion": "1.4.1",
"version": "1.10.1",
"minAppVersion": "1.12.7",
"description": "MetaEdit helps you manage your metadata.",
"author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com",
+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
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "notebook-navigator",
"name": "Notebook Navigator",
"version": "3.1.2",
"version": "3.2.2",
"minAppVersion": "1.11.0",
"description": "Replace the default file explorer with a clean two-pane interface featuring folder tree, tag browsing, file previews, keyboard navigation, drag-and-drop, pinned notes, and customizable display options.",
"author": "Johan Sanneblad",
+625 -118
View File
@@ -201,8 +201,8 @@ body {
--nn-theme-calendar-feature-image-overlay-color: rgb(0 0 0 / 0.05);
--nn-theme-calendar-day-today-color: var(--nn-theme-calendar-day-in-month-color);
--nn-theme-calendar-day-today-bg: var(--text-selection);
--nn-theme-calendar-day-active-border-color: #f94040;
--nn-theme-calendar-day-active-border-width: 3px;
--nn-theme-calendar-day-active-border-color: var(--interactive-accent);
--nn-theme-calendar-day-active-border-width: 2px;
/* -- Folder & Tag Items -- */
--nn-theme-navitem-chevron-color: var(--nn-theme-foreground-muted);
@@ -2980,6 +2980,11 @@ button.nn-navigation-calendar-year-month {
z-index: 2;
}
.nn-navigation-calendar-day.has-feature-image.is-active-editor-file .nn-navigation-calendar-active-outline,
.nn-navigation-calendar-year-month.has-feature-image.is-selected-month .nn-navigation-calendar-active-outline {
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}
.nn-navigation-calendar-year-month-label {
position: relative;
z-index: 1;
@@ -3711,16 +3716,13 @@ button.nn-navigation-calendar-day {
z-index: 2;
}
.nn-virtual-file-item-has-custom-background::after,
.nn-virtual-file-item-has-custom-background-next::after {
display: none;
}
.nn-virtual-file-item-has-filled-background-previous > .nn-file,
.nn-virtual-file-item-has-custom-background-previous > .nn-file.nn-has-custom-background {
--nn-file-top-left-radius: 0;
--nn-file-top-right-radius: 0;
}
.nn-virtual-file-item-has-filled-background-next > .nn-file,
.nn-virtual-file-item-has-custom-background-next > .nn-file.nn-has-custom-background {
--nn-file-bottom-left-radius: 0;
--nn-file-bottom-right-radius: 0;
@@ -3788,7 +3790,11 @@ button.nn-navigation-calendar-day {
/* Hide separator when flagged by renderer (selection) or context menu */
.nn-virtual-file-item.nn-hide-separator-selection::after,
.nn-virtual-file-item.nn-hide-separator-context-menu::after {
.nn-virtual-file-item.nn-hide-separator-context-menu::after,
.nn-virtual-file-item.nn-virtual-file-item-has-filled-background::after,
.nn-virtual-file-item.nn-virtual-file-item-has-filled-background-next::after,
.nn-virtual-file-item.nn-virtual-file-item-has-custom-background::after,
.nn-virtual-file-item.nn-virtual-file-item-has-custom-background-next::after {
display: none;
}
@@ -3916,17 +3922,13 @@ button.nn-navigation-calendar-day {
display: none;
}
.nn-manual-sort-row-hide-separator::after,
.nn-manual-sort-row-has-custom-background::after,
.nn-manual-sort-row-has-custom-background-next::after {
display: none;
}
.nn-manual-sort-row-has-filled-background-previous .nn-file,
.nn-manual-sort-row-has-custom-background-previous .nn-file.nn-has-custom-background {
--nn-file-top-left-radius: 0;
--nn-file-top-right-radius: 0;
}
.nn-manual-sort-row-has-filled-background-next .nn-file,
.nn-manual-sort-row-has-custom-background-next .nn-file.nn-has-custom-background {
--nn-file-bottom-left-radius: 0;
--nn-file-bottom-right-radius: 0;
@@ -3955,6 +3957,14 @@ button.nn-navigation-calendar-day {
pointer-events: none;
}
.nn-manual-sort-row.nn-manual-sort-row-hide-separator::after,
.nn-manual-sort-row.nn-manual-sort-row-has-filled-background::after,
.nn-manual-sort-row.nn-manual-sort-row-has-filled-background-next::after,
.nn-manual-sort-row.nn-manual-sort-row-has-custom-background::after,
.nn-manual-sort-row.nn-manual-sort-row-has-custom-background-next::after {
display: none;
}
.nn-manual-sort-file {
flex: 1;
min-width: 0;
@@ -4813,11 +4823,20 @@ button.nn-navigation-calendar-day {
}
.nn-list-group-header-folder-segment {
flex: 0 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.nn-list-group-header-folder-segment:not(:last-child) {
flex-shrink: 0;
}
.nn-list-group-header-folder-segment:last-child {
flex: 1 1 auto;
}
.nn-list-group-header-path-separator {
flex: 0 0 auto;
padding-inline: 4px;
@@ -4944,6 +4963,64 @@ button.nn-list-group-header-collapse-button .nn-list-group-header-icon {
border-right: none;
border-bottom: 1px solid var(--nn-theme-divider-border-color);
}
/* Source: src/styles/sections/inline-rename.css */
/* ========================================================================
Inline Rename Styles
======================================================================== */
.nn-inline-rename-input {
flex: 1 1 auto;
min-width: 0;
width: 100%;
box-sizing: border-box;
padding: 0 6px;
border: 1px solid var(--interactive-accent);
border-radius: 4px;
background-color: var(--background-primary);
color: var(--text-normal);
font: inherit;
line-height: normal;
}
.nn-inline-rename-input:focus {
outline: 2px solid var(--interactive-accent);
outline-offset: -2px;
}
.nn-inline-rename-input:disabled {
opacity: 0.75;
}
.nn-navitem-inline-rename {
height: calc(var(--nn-setting-nav-item-height) - 8px);
font-size: var(--nn-setting-nav-font-size);
font-weight: var(--nn-theme-navitem-name-font-weight);
}
.notebook-navigator-mobile .nn-navitem-inline-rename {
height: calc(var(--nn-setting-nav-item-height-mobile) - 10px);
}
.nn-file-name--inline-renaming {
display: flex;
align-items: center;
gap: 0;
max-height: none;
overflow: visible;
white-space: nowrap;
word-break: normal;
}
.nn-file-name--inline-renaming .nn-file-ext-suffix {
flex-shrink: 0;
}
.nn-file-inline-rename {
height: var(--nn-file-title-line-height);
font-size: var(--nn-file-name-size-mobile, var(--nn-file-name-size));
font-weight: var(--nn-theme-file-name-font-weight);
}
/* Source: src/styles/sections/ui-empty-state.css */
/* ========================================================================
@@ -4983,7 +5060,10 @@ button.nn-list-group-header-collapse-button .nn-list-group-header-icon {
bottom: -0.5px;
/* Pre-composited solid color prevents hairlines by blending alpha with pane background */
background-color: var(--nn-selected-file-bg-color);
border-radius: var(--nn-file-item-border-radius);
border-top-left-radius: var(--nn-file-top-left-radius, var(--nn-file-item-border-radius));
border-top-right-radius: var(--nn-file-top-right-radius, var(--nn-file-item-border-radius));
border-bottom-left-radius: var(--nn-file-bottom-left-radius, var(--nn-file-item-border-radius));
border-bottom-right-radius: var(--nn-file-bottom-right-radius, var(--nn-file-item-border-radius));
box-shadow: inset 0 0 0 var(--nn-theme-file-border-width) var(--nn-selected-file-border-color);
z-index: 0; /* Below separator lines */
}
@@ -5126,30 +5206,20 @@ body.nn-resizing {
outline: none;
}
/* Empty placeholder to hide browser's default drag preview */
.nn-drag-empty-placeholder {
position: absolute;
width: 1px;
height: 1px;
left: -9999px;
top: -9999px;
opacity: 0;
}
/* Drag ghost element - follows the cursor during drag */
.nn-drag-ghost {
/* Offscreen element used as the browser-native drag image */
.nn-drag-native-preview {
position: fixed;
left: -1000px;
top: -1000px;
display: inline-flex;
padding: 10px 0 0 12px;
pointer-events: none;
z-index: 999999;
opacity: 0.9;
will-change: transform;
left: 0;
top: 0;
transform: translate(var(--nn-drag-ghost-x, -1000px), var(--nn-drag-ghost-y, -1000px));
}
/* Badge shown on drag ghost for multiple files - Apple-style red badge */
.nn-drag-ghost-badge {
/* Badge shown in the native drag image for multiple files */
.nn-drag-preview-badge {
background-color: #dc3545;
color: white;
font-weight: bold;
@@ -5164,8 +5234,8 @@ body.nn-resizing {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* Icon shown on drag ghost for single file/folder - dark circular background */
.nn-drag-ghost-icon {
/* Icon shown in the native drag image for single items */
.nn-drag-preview-icon {
background-color: #000000; /* Default black for light mode */
border-radius: 50%;
display: inline-flex;
@@ -5177,12 +5247,12 @@ body.nn-resizing {
}
/* Dark mode: use dark gray background */
.theme-dark .nn-drag-ghost-icon {
.theme-dark .nn-drag-preview-icon {
background-color: var(--background-modifier-border-hover);
}
/* Style the Lucide icon inside drag ghost - white icon */
.nn-drag-ghost-icon svg {
/* Style the Lucide icon inside the drag preview */
.nn-drag-preview-icon svg {
width: 16px;
height: 16px;
color: #ffffff;
@@ -5953,6 +6023,61 @@ body.nn-resizing {
object-fit: cover;
}
/* Release video */
.nn-whats-new-video-frame {
position: relative;
display: block;
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
border-radius: 8px;
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
margin-bottom: 12px;
}
.nn-whats-new-video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
background: #000000;
}
.nn-whats-new-video-open {
position: absolute;
top: 8px;
right: 8px;
z-index: 2;
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
color: var(--text-normal);
background: var(--background-primary);
border: 1px solid var(--background-modifier-border);
border-radius: 6px;
opacity: 0.9;
text-decoration: none;
}
.nn-whats-new-video-open:hover {
color: var(--text-normal);
background: var(--background-secondary);
}
.nn-whats-new-video-open:focus-visible {
outline: 2px solid var(--interactive-accent);
outline-offset: 2px;
}
.nn-whats-new-video-open svg {
width: 16px;
height: 16px;
}
/* YouTube link preview */
.nn-whats-new-youtube-link {
display: block;
@@ -6048,6 +6173,15 @@ body.nn-resizing {
font-weight: 600;
}
.nn-whats-new-info code,
.nn-whats-new-version li code {
color: var(--code-normal);
background-color: var(--code-background);
padding: 0.1em 0.35em;
border-radius: 4px;
font-size: 0.9em;
}
/* Support container */
.nn-whats-new-support {
margin-top: 0;
@@ -7259,8 +7393,6 @@ button.nn-youtube-button svg {
}
.nn-preview-label,
.nn-rgb-label,
.nn-rgb-title,
.nn-hex-title {
font-size: 11px;
color: var(--nn-theme-foreground-muted);
@@ -7321,99 +7453,121 @@ button.nn-youtube-button svg {
height: 16px;
}
/* RGB sliders section */
.nn-rgb-section,
/* Visual color picker section */
.nn-color-area-section,
.nn-color-preview-section {
padding-bottom: 15px;
}
.nn-rgb-section {
.nn-color-area-section {
display: flex;
flex-direction: column;
gap: 14px;
margin-bottom: auto; /* Push everything below to the bottom */
}
.nn-rgb-title {
margin-bottom: 6px;
.nn-color-controls {
display: flex;
flex-direction: column;
gap: 14px;
}
.nn-rgb-row {
/* Header above the saturation/value area; matches the preset header height so the picker
lines up with the swatch grid in the left column. Hidden on mobile where the area sits
beside the sliders. */
.nn-sv-header {
display: flex;
align-items: center;
gap: 8px;
min-height: 20px;
margin-bottom: 8px;
}
.nn-rgb-row:last-child {
.nn-sv-area {
position: relative;
width: 100%;
height: 150px;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background-color: var(--nn-sv-hue, #ff0000);
background-image: linear-gradient(to top, #000000, rgba(0, 0, 0, 0)), linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));
cursor: crosshair;
touch-action: none;
}
.nn-sv-thumb {
position: absolute;
width: 14px;
height: 14px;
border: 2px solid #ffffff;
border-radius: 50%;
background: var(--nn-thumb-color, #ffffff);
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
pointer-events: none;
transform: translate(-50%, -50%);
}
.nn-color-slider {
position: relative;
width: calc(100% - 16px);
height: 14px;
margin: 0 8px;
border-radius: 7px;
cursor: pointer;
touch-action: none;
}
.nn-hue-slider {
background: linear-gradient(
to right,
#ff0000 0%,
#ffff00 16.66%,
#00ff00 33.33%,
#00ffff 50%,
#0000ff 66.66%,
#ff00ff 83.33%,
#ff0000 100%
);
}
.nn-alpha-gradient {
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(to right, rgba(0, 0, 0, 0), var(--nn-alpha-color, #000000));
pointer-events: none;
}
.nn-color-slider .nn-slider-thumb {
position: absolute;
top: 50%;
z-index: 1;
width: 16px;
height: 16px;
border: 2px solid #ffffff;
border-radius: 50%;
background: transparent;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
pointer-events: none;
transform: translate(-50%, -50%);
}
/* Hex input section - sits at the bottom of the picker, below the alpha slider */
.nn-hex-section {
margin-bottom: 0;
}
.nn-rgb-label {
width: 16px;
}
.nn-rgb-slider {
flex: 1;
height: 4px;
-webkit-appearance: none;
appearance: none;
background: var(--background-modifier-border);
border-radius: 2px;
outline: none;
cursor: pointer;
}
/* Slider thumb */
.nn-rgb-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--interactive-accent);
cursor: pointer;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.nn-rgb-slider::-moz-range-thumb {
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--interactive-accent);
cursor: pointer;
border: none;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
/* RGB value display */
.nn-rgb-value {
width: 32px;
text-align: right;
font-size: 11px;
color: var(--nn-theme-foreground-muted);
font-family: var(--font-monospace);
}
/* Color gradients for sliders */
.nn-rgb-slider-r {
background: linear-gradient(to right, #000000, #ff0000);
}
.nn-rgb-slider-g {
background: linear-gradient(to right, #000000, #00ff00);
}
.nn-rgb-slider-b {
background: linear-gradient(to right, #000000, #0000ff);
}
/* Hex input section */
.nn-hex-section {
margin-bottom: 20px;
.nn-hex-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 6px;
}
.nn-hex-title {
display: block;
margin-bottom: 6px;
height: 17px; /* Match the preview label height for alignment */
margin-bottom: 0;
}
.nn-hex-container {
@@ -7531,11 +7685,14 @@ button.nn-youtube-button svg {
}
/* Preset and Recent colors sections */
.nn-preset-section,
.nn-recent-section {
.nn-preset-section {
margin-top: auto; /* Align to bottom */
}
.nn-recent-section {
margin-top: 0;
}
.nn-preset-colors,
.nn-recent-colors {
display: grid;
@@ -7544,6 +7701,16 @@ button.nn-youtube-button svg {
overflow: hidden;
}
.nn-recent-colors {
grid-template-columns: repeat(10, 36px);
}
.nn-recent-colors .nn-color-dot {
width: 36px;
height: 36px;
aspect-ratio: auto;
}
.nn-preset-colors {
margin-top: 8px;
}
@@ -7689,6 +7856,29 @@ button.nn-youtube-button svg {
grid-template-columns: repeat(8, 1fr);
}
.nn-sv-header {
display: none;
}
/* Saturation/value area on the left, hue + transparency + hex stacked on the right.
The SV area stretches to match the height of that stack. */
.nn-color-area-section {
flex-direction: row;
align-items: stretch;
gap: 14px;
}
.nn-sv-area {
flex: 1 1 0;
width: auto;
height: auto;
}
.nn-color-controls {
flex: 1 1 0;
min-width: 0;
}
.modal.nn-color-picker-modal .modal-content {
padding: 16px 16px 12px;
gap: 12px;
@@ -7699,6 +7889,311 @@ button.nn-youtube-button svg {
padding-top: 12px;
}
}
/* Source: src/styles/sections/modal-appearance.css */
/* ========================================================================
Appearance Modal - icon, foreground color, and background color editor
======================================================================== */
.modal.nn-appearance-modal {
width: 620px;
max-width: calc(100vw - 40px);
max-height: 86vh;
}
.modal.nn-appearance-modal .modal-content {
display: flex;
flex-direction: column;
gap: 12px;
box-sizing: border-box;
width: 100%;
padding: 16px;
overflow: hidden;
}
.modal.nn-appearance-modal .modal-close-button {
z-index: 10;
pointer-events: auto;
}
.nn-appearance-header {
display: flex;
align-items: center;
justify-content: center;
min-width: 0;
padding: 14px 16px;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
background: var(--background-secondary);
}
@media (hover: hover) and (pointer: fine) {
.nn-appearance-preview-item:hover .nn-appearance-clear-button,
.nn-appearance-preview-item:focus-within .nn-appearance-clear-button {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
}
.nn-appearance-clear-button.nn-appearance-clear-hidden {
display: none;
}
.nn-appearance-preview-item {
position: relative;
display: inline-flex;
align-items: center;
max-width: 100%;
gap: 8px;
padding: 6px 14px;
border-radius: var(--radius-s);
background: var(--nn-preview-bg, var(--background-secondary));
color: var(--nn-preview-fg, var(--nn-theme-foreground));
font-size: 14px;
font-weight: 600;
}
.nn-appearance-preview-icon {
display: inline-flex;
align-items: center;
flex: 0 0 auto;
}
.nn-appearance-preview-icon svg {
width: 18px;
height: 18px;
}
.nn-appearance-preview-icon-empty {
display: none;
}
.nn-appearance-preview-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nn-appearance-tabs {
display: flex;
gap: 4px;
border-bottom: 1px solid var(--background-modifier-border);
}
.nn-appearance-tab {
display: inline-flex;
align-items: center;
gap: 8px;
min-width: 0;
padding: 7px 12px;
margin: 0 0 -1px;
border: 0;
border-bottom: 2px solid transparent;
border-radius: 0;
background: transparent;
color: var(--nn-theme-foreground-muted);
font-size: 13px;
font-weight: 500;
cursor: pointer;
}
.nn-appearance-tab:hover {
color: var(--nn-theme-foreground);
}
.nn-appearance-tab.nn-active {
border-bottom-color: var(--interactive-accent);
color: var(--nn-theme-foreground);
}
.nn-appearance-tab-chip {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
overflow: hidden;
border: 1px solid var(--background-modifier-border);
}
.nn-appearance-tab-icon-chip {
width: 24px;
height: 24px;
border-radius: var(--radius-s);
color: var(--nn-theme-foreground);
}
.nn-appearance-tab-icon-chip svg {
width: 16px;
height: 16px;
}
.nn-appearance-tab-color-chip {
width: 32px;
height: 18px;
border-radius: 4px;
}
.nn-appearance-tab-chip-empty {
opacity: 0.55;
}
.nn-appearance-tab-label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nn-appearance-body {
flex: 1 1 auto;
height: 360px;
overflow-y: auto;
overflow-x: hidden;
}
.nn-appearance-panel {
display: flex;
flex-direction: column;
gap: 10px;
height: 100%;
min-height: 0;
}
.nn-appearance-panel-hidden {
display: none;
}
.nn-appearance-reset-button {
padding: 4px 10px;
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-s);
background: transparent;
color: var(--nn-theme-foreground-muted);
font-size: 12px;
cursor: pointer;
}
.nn-appearance-reset-button:hover {
border-color: var(--background-modifier-border-hover);
color: var(--nn-theme-foreground);
}
.nn-appearance-reset-button.nn-appearance-reset-active {
border-color: var(--interactive-accent);
color: var(--interactive-accent);
}
.nn-appearance-picker-host {
display: flex;
flex-direction: column;
gap: 12px;
flex: 1 1 auto;
min-height: 0;
}
.nn-appearance-picker-host .nn-icon-provider-tabs {
margin-bottom: 0;
}
.nn-appearance-picker-host .nn-icon-search-container {
padding: 0 8px;
border-bottom: 0;
}
.nn-appearance-picker-host .nn-icon-results-container {
flex: 1 1 auto;
height: auto;
min-height: 0;
}
.nn-appearance-picker-host .nn-color-picker-content {
gap: 16px;
padding-bottom: 0;
overflow: visible;
}
.nn-appearance-picker-host .nn-color-picker-left {
flex-basis: 220px;
}
.nn-appearance-picker-host .nn-color-picker-left-no-preview .nn-preset-section {
margin-top: 0;
}
.nn-appearance-picker-host .nn-recent-section {
margin-top: 4px;
}
.nn-appearance-picker-host .nn-preset-header,
.nn-appearance-picker-host .nn-hex-header,
.nn-appearance-picker-host .nn-recent-header {
justify-content: flex-start;
gap: 8px;
}
.nn-appearance-picker-host .nn-recent-colors {
grid-template-columns: repeat(5, 1fr);
}
.nn-appearance-picker-host .nn-recent-colors .nn-color-dot {
width: auto;
height: auto;
aspect-ratio: 1;
}
.nn-icon-item.nn-icon-item-selected {
outline: 2px solid var(--interactive-accent);
outline-offset: -2px;
}
.nn-appearance-footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding-top: 12px;
border-top: 1px solid var(--background-modifier-border);
}
.nn-appearance-footer-actions {
display: flex;
gap: 8px;
}
@media (max-width: 600px) {
.modal.nn-appearance-modal {
width: 100%;
max-width: calc(100vw - 20px);
}
.nn-appearance-tabs {
overflow-x: auto;
}
.nn-appearance-tab {
flex: 0 0 auto;
}
/* Size the body to its content rather than a fixed height so the modal adapts to large
fonts and display scaling. The base max-height caps it to the viewport and the body
scrolls instead of clipping. The modal resizes between tabs because each tab fits its
own content. */
.nn-appearance-body {
height: auto;
min-height: 0;
}
.nn-appearance-picker-host .nn-icon-results-container {
flex: 0 0 auto;
height: 240px;
min-height: 240px;
}
.nn-appearance-picker-host .nn-recent-colors {
grid-template-columns: repeat(8, 1fr);
}
}
/* Source: src/styles/sections/theme-folder-colors.css */
/* ========================================================================
@@ -8114,6 +8609,18 @@ button.nn-mobile-toolbar-button {
.notebook-navigator-ios .nn-list-pane .nn-virtual-item {
transform: translateZ(0);
}
/*
* iOS/iPadOS: WebKit paint workaround for pinned navigation shortcuts.
*
* Pinned shortcuts can remain mounted and measurable while their row contents stop repainting after the mobile
* single-pane transform finishes. Keep the pinned shortcut surface and its rows on composited layers.
*/
.notebook-navigator-ios .nn-shortcut-pinned,
.notebook-navigator-ios .nn-shortcut-pinned-scroll,
.notebook-navigator-ios .nn-shortcut-pinned .nn-navitem {
transform: translateZ(0);
}
/* Source: src/styles/sections/platform-android.css */
/* ========================================================================
@@ -8855,8 +9362,8 @@ settings:
default-dark: '#'
-
id: nn-theme-calendar-day-active-border-color
title: Active day outline color
description: Border color for the outline shown on the active day in the calendar.
title: Selection outline color
description: Border color for active calendar outlines.
type: variable-themed-color
opacity: true
format: rgb
@@ -8864,10 +9371,10 @@ settings:
default-dark: '#'
-
id: nn-theme-calendar-day-active-border-width
title: Active day outline thickness
description: Border width for the outline shown on the active day in the calendar.
title: Selection outline thickness
description: Border width for active calendar outlines.
type: variable-number-slider
default: 3
default: 2
format: px
min: 1
max: 4
+2 -2
View File
@@ -120,7 +120,7 @@
"library2": {
"type": "excalidrawlib",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag2.23.12",
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.25.0",
"libraryItems": []
},
"imageElementNotice": true,
@@ -156,7 +156,7 @@
}
}
},
"previousRelease": "2.23.12",
"previousRelease": "2.25.0",
"showReleaseNotes": true,
"excalidrawMasteryPromoCollapsed": false,
"compareManifestToPluginVersion": true,
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.23.12",
"version": "2.25.0",
"minAppVersion": "1.8.7",
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
"author": "Zsolt Viczian",
File diff suppressed because one or more lines are too long
+147 -147
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.3"
"version": "2.38.5"
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "obsidian-markmind",
"name": "Markmind",
"version": "3.5.3",
"version": "3.5.5",
"minAppVersion": "0.9.12",
"description": "This is a mindmap , outline tool for obsidian.",
"author": "Mark",
+3 -2
View File
@@ -1665,7 +1665,8 @@ class CreateNewItem {
const childIsFolded = list.isFoldRoot();
const endPos = list.getLastLineContentEnd();
const endOfLine = cursor.line === endPos.line && cursor.ch === endPos.ch;
const onChildLevel = listIsZoomingRoot || (hasChildren && !childIsFolded && endOfLine);
const onChildLevel = this.after &&
(listIsZoomingRoot || (hasChildren && !childIsFolded && endOfLine));
const indent = onChildLevel
? hasChildren
? list.getChildren()[0].getFirstLineIndent()
@@ -1689,7 +1690,7 @@ class CreateNewItem {
list.addBeforeAll(newList);
}
else {
if (!childIsFolded || !endOfLine) {
if (this.after && (!childIsFolded || !endOfLine)) {
const children = list.getChildren();
for (const child of children) {
list.removeChild(child);
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "obsidian-outliner",
"name": "Outliner",
"version": "4.10.1",
"version": "4.10.2",
"minAppVersion": "1.11.7",
"description": "Work with your lists like in Workflowy or RoamResearch.",
"author": "Viacheslav Slinko",
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.1.0",
"version": "8.2.2",
"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
File diff suppressed because one or more lines are too long
+12 -12
View File
@@ -1,14 +1,14 @@
{
"id": "obsidian42-brat",
"name": "BRAT",
"version": "2.0.8",
"minAppVersion": "1.11.4",
"description": "Easily install plugin beta versions for testing.",
"author": "TfTHacker",
"authorUrl": "https://github.com/TfTHacker",
"helpUrl": "https://tfthacker.com/BRAT",
"isDesktopOnly": false,
"fundingUrl": {
"Visit my site": "https://tfthacker.com"
}
"id": "obsidian42-brat",
"name": "BRAT",
"version": "2.2.0",
"minAppVersion": "1.11.4",
"description": "Easily install plugin beta versions for testing.",
"author": "TfTHacker",
"authorUrl": "https://github.com/TfTHacker",
"helpUrl": "https://tfthacker.com/BRAT",
"isDesktopOnly": false,
"fundingUrl": {
"Visit my site": "https://tfthacker.com"
}
}
+161 -69
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,11 +1,11 @@
{
"id": "podnotes",
"name": "PodNotes",
"version": "2.16.0",
"version": "2.17.2",
"minAppVersion": "0.15.9",
"description": "Helps you write notes on podcasts.",
"author": "Christian B. B. Houmann",
"authorUrl": "https://bagerbach.com",
"fundingUrl": "https://buymeacoffee.com/chhoumann",
"isDesktopOnly": false
}
}
+8 -27
View File
@@ -1233,26 +1233,6 @@ var StatusMessage = class extends import_obsidian2.Notice {
};
// src/crypto.ts
async function _generateKey(seed) {
const keyMaterial = await window.crypto.subtle.importKey(
"raw",
seed,
{ name: "PBKDF2" },
false,
["deriveBits"]
);
const masterKey = await window.crypto.subtle.deriveBits(
{
name: "PBKDF2",
salt: new Uint8Array(16),
iterations: 1e5,
hash: "SHA-256"
},
keyMaterial,
256
);
return new Uint8Array(masterKey);
}
function masterKeyToString(masterKey) {
return arrayBufferToBase64(masterKey);
}
@@ -1284,7 +1264,7 @@ async function encryptString(plaintext, existingKey) {
if (existingKey) {
key = base64ToArrayBuffer(existingKey);
} else {
key = await _generateKey(window.crypto.getRandomValues(new Uint8Array(64)).buffer);
key = window.crypto.getRandomValues(new Uint8Array(16)).buffer;
}
const aesKey = await _getAesGcmKey(key);
const ciphertext = [];
@@ -1308,7 +1288,11 @@ async function encryptString(plaintext, existingKey) {
return {
ciphertext,
ivs,
key: masterKeyToString(key).slice(0, 43)
// Strip base64 padding rather than slicing to a fixed length: a fresh
// 16-byte key yields 22 chars, while an older reused 32-byte key still
// yields its full 43 chars. Hardcoding 22 would truncate (and break)
// re-shares of notes that were first encrypted with a 256-bit key.
key: masterKeyToString(key).replace(/=+$/, "")
};
}
async function sha(algorithm, data) {
@@ -3429,18 +3413,15 @@ async function captureRenderedNote(leaf, options = {}) {
elements.push(getElementStyle("pusher", renderer.pusherEl));
const html = await sampleRenderedHtml(view);
const contentDom = new DOMParser().parseFromString(html, "text/html");
const mjxStyleEl = contentDom.querySelector("mjx-container") ? activeDocument.getElementById("MJX-CHTML-styles") : null;
const mjxText = (_c = mjxStyleEl == null ? void 0 : mjxStyleEl.textContent) == null ? void 0 : _c.trim();
const cssRules = [];
for (const sheet of Array.from(activeDocument.styleSheets)) {
if (mjxText && sheet.ownerNode === mjxStyleEl) continue;
if (((_c = sheet.ownerNode) == null ? void 0 : _c.id) === "MJX-CHTML-styles") continue;
for (const rule of Array.from(sheet.cssRules)) cssRules.push(rule);
}
let css = cssRules.filter((rule) => {
const css = cssRules.filter((rule) => {
var _a2;
return ((_a2 = rule.media) == null ? void 0 : _a2[0]) !== "print";
}).map((rule) => rule.cssText).join("").replace(/\n/g, "");
if (mjxText) css += mjxText.replace(/\n/g, "");
return { contentDom, cssRules, css, elements };
}
var RENDER_POLL_MAX_TICKS = 40;
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "share-note",
"name": "Share Note",
"version": "1.5.3",
"version": "1.5.5",
"minAppVersion": "1.8.7",
"description": "Instantly share a note, with the full theme and content exactly like you see in Reading View. Data is shared encrypted by default, and only you and the person you send it to have the key.",
"author": "Alan Grainger",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "tasks-calendar-wrapper",
"name": "Tasks Calendar Wrapper",
"version": "0.3.1",
"version": "0.3.2",
"minAppVersion": "0.15.0",
"description": "This is a simple wrapper for Obsidian-Tasks-Calendar (https://github.com/702573N/Obsidian-Tasks-Calendar) and Obsidian-Tasks-Timeline (https://github.com/702573N/Obsidian-Tasks-Timeline).",
"author": "zhuwenq",
+10 -5
View File
@@ -12,7 +12,7 @@ If your plugin does not need CSS, delete this file.
user-select: none;
margin-bottom: 15%;
--taskido-color-warning: var(--color-red);
--taskido-color-focus: var(--interactive-accent);
--taskido-color-focus: var(--text-accent, var(--interactive-accent));
--taskido-color-focus-hsl: var(--interactive-accent-hsl);
--taskido-color-overdue: var(--taskido-color-warning);
--taskido-color-done: var(--color-green);
@@ -30,7 +30,7 @@ If your plugin does not need CSS, delete this file.
.taskido .task .internal-link,
.taskido .task .external-link {
color: var(--interactive-accent);
color: var(--text-accent, var(--interactive-accent));
text-decoration: underline !important;
}
@@ -507,7 +507,7 @@ If your plugin does not need CSS, delete this file.
.taskido.unplannedFocus .counter#unplanned,
.taskido.unplannedFilter .counter#unplanned {
color: var(--taskido-color-focus);
background: hsla(var(--taskido-color-focus-hsl), 0.2);
background: var(--background-modifier-hover);
box-shadow: var(--input-shadow);
}
@@ -550,17 +550,22 @@ If your plugin does not need CSS, delete this file.
padding: 0;
}
.taskido .details.today {
background: transparent !important;
background-color: transparent !important;
}
.taskido.todoFocus .task.due,
.taskido.todoFocus .task.scheduled,
.taskido.todoFocus .task.process,
.taskido.todoFocus .task.start,
.taskido.overdueFocus .task.overdue,
.taskido.unplannedFocus .task.unplanned {
background: hsla(var(--taskido-color-focus-hsl), 0.2);
background: var(--background-modifier-hover);
}
.taskido .task:hover {
background: hsla(var(--taskido-color-focus-hsl), 0.2);
background: var(--background-modifier-hover);
}
/* Filter */
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "templater-obsidian",
"name": "Templater",
"version": "2.20.5",
"version": "2.20.6",
"description": "Advanced templating and automation using handlebars-like syntax.",
"minAppVersion": "1.12.2",
"author": "SilentVoid",
+36 -3
View File
@@ -816,6 +816,11 @@ function isEOTinCodeBlock(text2) {
}
return inCodeBlock;
}
function isInsideInlineCode(lineUntilCursor) {
var _a, _b;
const backquotes = (_b = (_a = lineUntilCursor.match(/`/g)) == null ? void 0 : _a.length) != null ? _b : 0;
return backquotes % 2 === 1;
}
// src/app-helper.ts
var AppHelper = class {
@@ -978,6 +983,9 @@ var AppHelper = class {
inCodeBlock(editor) {
return isEOTinCodeBlock(this.getContentUntilCursor(editor));
}
inInlineCode(editor) {
return isInsideInlineCode(this.getCurrentLineUntilCursor(editor));
}
searchPhantomLinks() {
return Object.entries(this.unsafeApp.metadataCache.unresolvedLinks).flatMap(
([path2, obj]) => Object.keys(obj).map((link) => ({ path: path2, link }))
@@ -1369,10 +1377,14 @@ function suggestWords(indexedWords, query, maxNum, option = {}) {
frontMatter,
selectionHistoryStorage,
providerMinChars,
globalMinChar
globalMinChar,
excludeInternalLink
} = option;
const queryStartWithUpper = capitalizeFirstLetter(query) === query;
const shouldIncludeProvider = (providerType) => {
if (excludeInternalLink && providerType === "internalLink") {
return false;
}
if (!providerMinChars) {
return true;
}
@@ -1540,10 +1552,14 @@ function suggestWordsByPartialMatch(indexedWords, query, maxNum, option = {}) {
frontMatter,
selectionHistoryStorage,
providerMinChars,
globalMinChar
globalMinChar,
excludeInternalLink
} = option;
const queryStartWithUpper = capitalizeFirstLetter(query) === query;
const shouldIncludeProvider = (providerType) => {
if (excludeInternalLink && providerType === "internalLink") {
return false;
}
if (!providerMinChars) {
return true;
}
@@ -1801,6 +1817,7 @@ var DEFAULT_SETTINGS = {
excludeSelfInternalLink: false,
excludeExistingInActiveFileInternalLinks: false,
excludeUnresolvedInternalLinks: false,
excludeInternalLinksInCode: false,
updateInternalLinksOnSave: true,
insertAliasTransformedFromDisplayedInternalLink: {
enabled: false,
@@ -2723,6 +2740,20 @@ var VariousComplementsSettingTab = class extends import_obsidian3.PluginSettingT
});
}
);
addFilterableSetting(
"Exclude internal links in code",
"Exclude internal link suggestions when the cursor is inside a code block or inline code. Unlike the 'Disable suggestions in the Code block' option, this targets only internal link suggestions and also applies to inline code.",
(setting) => {
setting.addToggle((tc) => {
tc.setValue(
this.plugin.settings.excludeInternalLinksInCode
).onChange(async (value) => {
this.plugin.settings.excludeInternalLinksInCode = value;
await this.plugin.saveSettings();
});
});
}
);
addFilterableSetting(
"Insert an alias that is transformed from the displayed internal link",
null,
@@ -7574,6 +7605,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian7.Ed
const matchStrategy = MatchStrategy.fromName(
parsedQuery.completionMode
);
const excludeInternalLinkInCode = this.settings.excludeInternalLinksInCode && this.completionMode === this.matchStrategy.name && (this.appHelper.inInlineCode(context.editor) || this.appHelper.inCodeBlock(context.editor));
let words = parsedQuery.queries.filter(
(x, i, xs) => parsedQuery.currentFrontMatter || this.settings.minNumberOfWordsTriggeredPhrase + i - 1 < xs.length && x.word.length >= this.minNumberTriggered && !x.word.endsWith(" ")
).map((q) => {
@@ -7594,7 +7626,8 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian7.Ed
customDictionary: this.settings.customDictionaryMinNumberOfCharactersForTrigger,
internalLink: this.settings.internalLinkMinNumberOfCharactersForTrigger
},
globalMinChar: this.settings.minNumberOfCharactersTriggered || this.tokenizerStrategy.triggerThreshold
globalMinChar: this.settings.minNumberOfCharactersTriggered || this.tokenizerStrategy.triggerThreshold,
excludeInternalLink: excludeInternalLinkInCode
}
).map((word) => ({ ...word, offset: q.offset }));
}).flat().sort((a, b) => Number(a.fuzzy) - Number(b.fuzzy));
+1 -1
View File
@@ -1,7 +1,7 @@
{
"id": "various-complements",
"name": "Various Complements",
"version": "11.3.0",
"version": "11.4.0",
"minAppVersion": "1.11.4",
"description": "This plugin enables you to complete words like the auto-completion of IDE",
"author": "tadashi-aikawa",