Compare commits
44 Commits
52958e3686
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d57b5ad160 | |||
| 095fc50a14 | |||
| e23a1dead0 | |||
| 883daa8600 | |||
| ee01f694d1 | |||
| 8024ed17b4 | |||
| 5141bf6508 | |||
| af7dc45db0 | |||
| bc15c851be | |||
| a05fadfc75 | |||
| 779cfecf28 | |||
| 2e3ad73faf | |||
| 3040f5c7ea | |||
| 2d1a43d447 | |||
| 308b7ba5d3 | |||
| c4ce611a63 | |||
| 3079b4854c | |||
| f575ec76ff | |||
| ab29549a71 | |||
| 15f4b20152 | |||
| 3f088fc13d | |||
| 6337e0e32e | |||
| 17d6cff644 | |||
| 3926ea5536 | |||
| c36ea200bb | |||
| aa3f49c476 | |||
| 1f889a4459 | |||
| 937bef48f5 | |||
| c1dfba0c57 | |||
| 2608232f5b | |||
| f3252e2341 | |||
| d7291bd730 | |||
| 285872340f | |||
| 12797b14e9 | |||
| 3110cf066a | |||
| 7e26ea4279 | |||
| 9f0e6503ba | |||
| 93e929944d | |||
| 3cbc984e09 | |||
| 0ac1f1f485 | |||
| 438c9f3fda | |||
| 7c69be107e | |||
| 9ffe120f6a | |||
| 4caab595f9 |
Vendored
+2
-2
@@ -26,7 +26,6 @@
|
||||
"pdf-plus",
|
||||
"breadcrumbs",
|
||||
"obsidian-day-planner",
|
||||
"obsidian-advanced-slides",
|
||||
"calendar",
|
||||
"obsidian-completr",
|
||||
"dataview",
|
||||
@@ -42,5 +41,6 @@
|
||||
"obsidian-pandoc",
|
||||
"break-page",
|
||||
"obsidian-list-callouts",
|
||||
"better-export-pdf"
|
||||
"math-in-callout",
|
||||
"zotlit"
|
||||
]
|
||||
Vendored
+1
-1
@@ -130,6 +130,6 @@
|
||||
"repelStrength": 5.263671875,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 30,
|
||||
"scale": 0.1345612381098431,
|
||||
"scale": 0.31211118817502304,
|
||||
"close": true
|
||||
}
|
||||
Vendored
+10
-1
@@ -1069,5 +1069,14 @@
|
||||
],
|
||||
"key": "L"
|
||||
}
|
||||
]
|
||||
],
|
||||
"breadcrumbs:rebuild-graph": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Mod"
|
||||
],
|
||||
"key": "R"
|
||||
}
|
||||
],
|
||||
"wikilinks-to-mdlinks-obsidian:toggle-wiki-md-links": []
|
||||
}
|
||||
+56
-25885
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "better-export-pdf",
|
||||
"name": "Better Export PDF",
|
||||
"version": "1.11.0",
|
||||
"version": "2.0.2",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Export your notes to PDF, support export preview, add bookmarks outline and header/footer.",
|
||||
"author": "l1xnan",
|
||||
|
||||
+110
-56
@@ -2,66 +2,120 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 75vh;
|
||||
.print-preview {
|
||||
flex: 1;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.setting-wrapper {
|
||||
width: 320px;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.setting-wrapper .setting-item[hidden] {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#better-export-pdf .pdf-preview {
|
||||
flex: auto;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
align-content: flex-start;
|
||||
#better-export-pdf .print-preview {
|
||||
.webview-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.print-size {
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
top: 36px;
|
||||
z-index: 99;
|
||||
font-size: 0.6rem;
|
||||
white-space: pre-wrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
& > div {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
& > div.progress {
|
||||
flex: none;
|
||||
height: auto;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.filename {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-base-60);
|
||||
text-align: center;
|
||||
padding-bottom: calc(var(--p-spacing) / 4);
|
||||
}
|
||||
.filename:not(:first-child) {
|
||||
padding-top: calc(var(--p-spacing) / 2);
|
||||
}
|
||||
}
|
||||
|
||||
#better-export-pdf .pdf-preview .webview-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
#better-export-pdf {
|
||||
.print-preview-container {
|
||||
.print-preview-item {
|
||||
border: 1px solid var(--background-modifier-border, #f2f2f2);
|
||||
height: calc(var(--modal-scale) * 100%);
|
||||
width: calc(var(--modal-scale) * 100%);
|
||||
transform: scale(calc(1 / var(--modal-scale)), calc(1 / var(--modal-scale)));
|
||||
transform-origin: top left;
|
||||
}
|
||||
}
|
||||
|
||||
.preview-wrapper {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.pdf-canvas-page {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.pdf-canvas-page :global(canvas) {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.icon svg {
|
||||
width: var(--icon-xs) !important;
|
||||
height: var(--icon-xs) !important;
|
||||
}
|
||||
}
|
||||
|
||||
#better-export-pdf .pdf-preview .print-size {
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
top: 8px;
|
||||
z-index: 99;
|
||||
font-size: 0.6rem;
|
||||
white-space: pre-wrap;
|
||||
text-align: right;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#better-export-pdf .pdf-preview > div {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
#better-export-pdf .pdf-preview > div.progress {
|
||||
flex: none;
|
||||
height: auto;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#better-export-pdf .pdf-preview .filename {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-base-60);
|
||||
}
|
||||
#better-export-pdf .pdf-preview .filename:not(:first-child) {
|
||||
padding-top: calc(var(--p-spacing));
|
||||
}
|
||||
|
||||
#better-export-pdf webview {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#better-export-pdf .setting-wrapper {
|
||||
width: 320px;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
#better-export-pdf .setting-wrapper .setting-item[hidden] {
|
||||
display: none;
|
||||
/* 必须有此样式, 否则大纲锚点失效 */
|
||||
@media print {
|
||||
.print .markdown-preview-view {
|
||||
height: auto !important;
|
||||
}
|
||||
.md-print-anchor,
|
||||
.blockid {
|
||||
white-space: pre !important;
|
||||
border-left: none !important;
|
||||
border-right: none !important;
|
||||
border-top: none !important;
|
||||
border-bottom: none !important;
|
||||
display: inline-block !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important;
|
||||
height: 1px !important;
|
||||
right: 0 !important;
|
||||
outline: 0 !important;
|
||||
background: 0 0 !important;
|
||||
text-decoration: initial !important;
|
||||
text-shadow: initial !important;
|
||||
}
|
||||
}
|
||||
|
||||
+69
-10
@@ -27,6 +27,9 @@
|
||||
},
|
||||
{
|
||||
"label": "part"
|
||||
},
|
||||
{
|
||||
"label": "sibling"
|
||||
}
|
||||
],
|
||||
"edge_field_groups": [
|
||||
@@ -49,7 +52,8 @@
|
||||
{
|
||||
"label": "sames",
|
||||
"fields": [
|
||||
"same"
|
||||
"same",
|
||||
"sibling"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -152,7 +156,8 @@
|
||||
"default_neighbour_field": ""
|
||||
},
|
||||
"tag_note": {
|
||||
"default_field": "up"
|
||||
"default_field": "up",
|
||||
"default_sibling_field": ""
|
||||
},
|
||||
"regex_note": {
|
||||
"default_field": "up"
|
||||
@@ -161,18 +166,52 @@
|
||||
"enabled": false,
|
||||
"delimiter": ".",
|
||||
"default_field": "up",
|
||||
"display_trimmed": false
|
||||
"display_trimmed": false,
|
||||
"default_sibling_field": ""
|
||||
},
|
||||
"johnny_decimal_note": {
|
||||
"enabled": false,
|
||||
"delimiter": ".",
|
||||
"default_field": "up"
|
||||
"default_field": "up",
|
||||
"default_sibling_field": ""
|
||||
},
|
||||
"date_note": {
|
||||
"enabled": false,
|
||||
"date_format": "yyyy-MM-dd",
|
||||
"default_field": "next",
|
||||
"stretch_to_existing": false
|
||||
"stretch_to_existing": false,
|
||||
"week_start": "monday",
|
||||
"week": {
|
||||
"enabled": false,
|
||||
"date_format": "kkkk-'W'WW",
|
||||
"folder": "",
|
||||
"next_field": "next",
|
||||
"up_field": "up"
|
||||
},
|
||||
"month": {
|
||||
"enabled": false,
|
||||
"date_format": "yyyy-MM",
|
||||
"folder": "",
|
||||
"next_field": "next",
|
||||
"up_field": "up"
|
||||
},
|
||||
"quarter": {
|
||||
"enabled": false,
|
||||
"date_format": "yyyy-'Q'q",
|
||||
"folder": "",
|
||||
"next_field": "next",
|
||||
"up_field": "up"
|
||||
},
|
||||
"year": {
|
||||
"enabled": false,
|
||||
"date_format": "yyyy",
|
||||
"folder": "",
|
||||
"next_field": "next",
|
||||
"up_field": "up"
|
||||
}
|
||||
},
|
||||
"traverse_note": {
|
||||
"default_field": "up"
|
||||
}
|
||||
},
|
||||
"views": {
|
||||
@@ -188,7 +227,7 @@
|
||||
"default_depth": 999,
|
||||
"no_path_message": "",
|
||||
"show_controls": false,
|
||||
"merge_fields": false,
|
||||
"merge_fields": true,
|
||||
"field_group_labels": [
|
||||
"ups"
|
||||
],
|
||||
@@ -210,8 +249,15 @@
|
||||
"prevs"
|
||||
],
|
||||
"next": [
|
||||
"nexts"
|
||||
"nexts",
|
||||
"sames"
|
||||
]
|
||||
},
|
||||
"period_rows": {
|
||||
"week": false,
|
||||
"month": false,
|
||||
"quarter": false,
|
||||
"year": false
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -240,7 +286,7 @@
|
||||
"prevs"
|
||||
],
|
||||
"lock_view": false,
|
||||
"lock_path": "désintégration audioactive.md",
|
||||
"lock_path": "daily/2026-06-13.md",
|
||||
"custom_sort_fields": false,
|
||||
"custom_sort_field_labels": []
|
||||
},
|
||||
@@ -249,8 +295,9 @@
|
||||
"show_attributes": [],
|
||||
"merge_fields": false,
|
||||
"lock_view": false,
|
||||
"lock_path": "désintégration audioactive.md",
|
||||
"lock_path": "anneau intègre.md",
|
||||
"field_group_labels": [
|
||||
"ups",
|
||||
"downs"
|
||||
],
|
||||
"edge_sort_id": {
|
||||
@@ -261,7 +308,12 @@
|
||||
"ext": false,
|
||||
"folder": false,
|
||||
"alias": false
|
||||
}
|
||||
},
|
||||
"default_depth": 5,
|
||||
"find_root": true,
|
||||
"find_root_field_group_labels": [
|
||||
"ups"
|
||||
]
|
||||
}
|
||||
},
|
||||
"codeblocks": {
|
||||
@@ -322,5 +374,12 @@
|
||||
},
|
||||
"debug": {
|
||||
"level": "INFO"
|
||||
},
|
||||
"self_is_sibling": [
|
||||
"same"
|
||||
],
|
||||
"_bc_migrations": {
|
||||
"tree_ups_with_downs_default": true,
|
||||
"tree_find_root_default": true
|
||||
}
|
||||
}
|
||||
+641
-93
File diff suppressed because one or more lines are too long
+11
-8
@@ -1,12 +1,15 @@
|
||||
{
|
||||
"id": "breadcrumbs",
|
||||
"name": "Breadcrumbs",
|
||||
"version": "4.5.0",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Add structured hierarchies to your notes",
|
||||
"author": "SkepticMystic",
|
||||
"authorUrl": "https://github.com/SkepticMystic/breadcrumbs",
|
||||
"fundingUrl": "https://github.com/SkepticMystic/breadcrumbs#donations",
|
||||
"helpUrl": "https://publish.obsidian.md/breadcrumbs-docs",
|
||||
"version": "4.14.2",
|
||||
"minAppVersion": "1.12.3",
|
||||
"description": "Add structured hierarchies to your notes.",
|
||||
"author": "MichaelPPorter",
|
||||
"authorUrl": "https://github.com/michaelpporter",
|
||||
"fundingUrl": {
|
||||
"GitHub Sponsors": "https://github.com/sponsors/michaelpporter",
|
||||
"Buy Me a Coffee": "https://www.buymeacoffee.com/michaelpporter"
|
||||
},
|
||||
"helpUrl": "https://breadcrumbs-docs.michaelpporter.com",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!collapse{visibility:collapse!important}.collapse{visibility:collapse}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-2{bottom:.5rem}.left-2{left:.5rem}.right-2{right:.5rem}.top-2{top:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-1{margin-bottom:.25rem}.mb-4{margin-bottom:1rem}.block{display:block}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-32{height:8rem}.w-10{width:2.5rem}.w-48{width:12rem}.w-60{width:15rem}.w-8{width:2rem}.w-full{width:100%}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.scroll-mt-40{scroll-margin-top:10rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-7{gap:1.75rem}.border{border-width:1px}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-semibold{font-weight:600}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.BC-matrix-view hr:last-child{display:none}.BC-page-views.BC-page-views-sticky{z-index:50;position:sticky;top:calc(var(--file-margins)*-1);background-color:var(--background-primary)}.text-faint{color:var(--text-faint)}.text-warning{color:var(--text-warning)}.text-error{color:var(--text-error)}
|
||||
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
|
||||
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}.mx-auto{margin-inline:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.list-item{display:list-item}.table{display:table}.aspect-square{aspect-ratio:1}.w-full{width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.grow{flex-grow:1}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.border{border-style:var(--tw-border-style);border-width:1px}.text-left{text-align:left}.text-right{text-align:right}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.opacity-20{opacity:.2}.opacity-60{opacity:.6}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.BC-matrix-view hr:last-child{display:none}.BC-page-views{pointer-events:none}.BC-page-views *{pointer-events:auto}.BC-page-views.BC-page-views-sticky{z-index:50;top:calc(var(--file-margins) * -1);background-color:var(--background-primary);position:sticky}.cm-scroller.BC-cm-scroller-inline-page-views:not(.banner-view-active){flex-wrap:wrap;align-content:flex-start}.cm-scroller.BC-cm-scroller-inline-page-views>.BC-page-views{box-sizing:border-box;flex:none;align-self:stretch;width:100%;max-width:100%}.cm-scroller.BC-cm-scroller-inline-page-views.banner-view-active>.cm-gutters{display:none}:root .cm-scroller.BC-cm-scroller-inline-page-views.banner-view-active>.banner-wrapper{width:100%;max-width:100%;margin-left:0;margin-right:0}:root .cm-scroller.BC-cm-scroller-inline-page-views.banner-view-active>.cm-sizer{width:100%;max-width:100%;margin-left:auto;margin-right:auto}.cm-scroller.BC-cm-scroller-inline-page-views>.banner-image{pointer-events:none;position:absolute}.markdown-source-view>.BC-page-views{width:100%;max-width:100%}.markdown-source-view.is-readable-line-width>.BC-page-views,.markdown-source-view.is-readable-line-width .BC-page-views-inner{max-width:var(--file-line-width);margin-left:auto;margin-right:auto}.markdown-source-view:not(.is-readable-line-width)>.BC-page-views.BC-page-views-sticky{max-width:700px;margin-left:auto;margin-right:auto}.markdown-source-view.is-readable-line-width .cm-scroller.BC-cm-scroller-inline-page-views.banner-view-active>.cm-sizer{max-width:700px}.markdown-source-view.is-readable-line-width .cm-scroller.BC-cm-scroller-inline-page-views.banner-view-active>.BC-page-views{max-width:700px;margin-left:auto;margin-right:auto}.text-faint{color:var(--text-faint)}.text-warning{color:var(--text-warning)}.text-error{color:var(--text-error)}.BC-prev-next-view .BC-next-prev-item{padding:.25rem}.BC-prev-next-view .BC-next-prev-item .BC-field{padding-left:.25rem;padding-right:.25rem}.BC-search-input-container{padding:var(--size-2-2) var(--size-4-2)}.BC-search-input-container input[type=search]{width:100%}.BC-codeblock-markmap svg foreignObject div{color:var(--text-normal)}.bc-date-note-setup-warning{background:var(--background-modifier-error);color:var(--text-error);border-radius:4px;margin-bottom:12px;padding:8px 12px}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
|
||||
+2
-2545
File diff suppressed because one or more lines are too long
+3
-4
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "crumbs-obsidian",
|
||||
"name": "Crumbs",
|
||||
"version": "0.1.2",
|
||||
"version": "0.3.1",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Breadcrumb navigation in Obsidian",
|
||||
"description": "Navigate files using breadcrumbs.",
|
||||
"author": "Tony Grosinger",
|
||||
"authorUrl": "https://grosinger.net",
|
||||
"fundingUrl": {
|
||||
@@ -11,6 +11,5 @@
|
||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||
"Paypal": "https://paypal.me/tgrosinger"
|
||||
},
|
||||
"isDesktopOnly": true,
|
||||
"donation": "https://buymeacoffee.com/tgrosinger"
|
||||
"isDesktopOnly": true
|
||||
}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+3
-3
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "darlal-switcher-plus",
|
||||
"name": "Quick Switcher++",
|
||||
"version": "6.1.1",
|
||||
"minAppVersion": "1.12.0",
|
||||
"version": "6.1.3",
|
||||
"minAppVersion": "1.12.7",
|
||||
"description": "Enhanced Quick Switcher, search open panels, and symbols.",
|
||||
"author": "darlal",
|
||||
"authorUrl": "https://github.com/darlal/obsidian-switcher-plus",
|
||||
"authorUrl": "https://github.com/darlal",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@
|
||||
color: var(--text-error);
|
||||
}
|
||||
|
||||
.qsp-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qsp-tag {
|
||||
background-color: var(--background-modifier-hover);
|
||||
border-radius: var(--radius-s);
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "default-template",
|
||||
"name": "Default Template",
|
||||
"version": "1.2.4",
|
||||
"minAppVersion": "0.15.0",
|
||||
"version": "1.2.6",
|
||||
"minAppVersion": "1.4.10",
|
||||
"description": "Automatically apply templates to new notes with user-configurable template selection.",
|
||||
"author": "raeperd",
|
||||
"authorUrl": "https://github.com/raeperd",
|
||||
|
||||
+3
-3
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "editing-toolbar",
|
||||
"name": "Editing Toolbar",
|
||||
"version": "4.0.6",
|
||||
"version": "4.0.8",
|
||||
"minAppVersion": "0.14.0",
|
||||
"description": "The Obsidian Editing Toolbar is modified from cmenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.",
|
||||
"author": "Cuman",
|
||||
|
||||
+315
-11
@@ -548,6 +548,7 @@ button[class^=editingToolbarCommandsubItem]::after {
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
padding-right: 0px !important;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
|
||||
@@ -581,14 +582,19 @@ button[class^=editingToolbarCommandsubItem]::after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai > svg {
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai > svg,
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai svg.svg-icon {
|
||||
flex-shrink: 0;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.editing-toolbar-ai-button-main {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
min-width: 0;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.editing-toolbar-ai-button-label {
|
||||
@@ -616,6 +622,8 @@ button[class^=editingToolbarCommandsubItem]::after {
|
||||
font-size: 9px;
|
||||
line-height: 1;
|
||||
flex-shrink: 0;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-fixed .editing-toolbar-ai-button-arrow {
|
||||
@@ -650,28 +658,75 @@ button[class^=editingToolbarCommandsubItem]::after {
|
||||
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai {
|
||||
opacity: 0.72;
|
||||
opacity: 0.82;
|
||||
pointer-events: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::before,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::before,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai::before {
|
||||
opacity: 1;
|
||||
background: linear-gradient(135deg, color-mix(in srgb, var(--interactive-accent) 14%, transparent), color-mix(in srgb, var(--background-secondary) 90%, transparent));
|
||||
box-shadow: 0 0 0 1px color-mix(in srgb, var(--interactive-accent) 14%, transparent), 0 8px 22px color-mix(in srgb, var(--interactive-accent) 10%, transparent), inset 0 1px 0 color-mix(in srgb, white 16%, transparent);
|
||||
animation: cm-ai-toolbar-glow 2.1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::after,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::after,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: -1px;
|
||||
border-radius: 12px;
|
||||
background: linear-gradient(115deg, transparent 0%, transparent 34%, color-mix(in srgb, white 68%, transparent) 48%, transparent 62%, transparent 100%);
|
||||
transform: translateX(-150%) skewX(-24deg);
|
||||
opacity: 0;
|
||||
animation: cm-ai-sheen 2.8s ease-in-out infinite;
|
||||
pointer-events: none;
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai > svg,
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai svg.svg-icon,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai > svg,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai svg.svg-icon,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai > svg {
|
||||
animation: cm-ai-spin 0.8s linear infinite;
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai > svg,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai svg.svg-icon {
|
||||
animation: cm-ai-toolbar-breathe 1.8s ease-in-out infinite;
|
||||
filter: drop-shadow(0 0 8px color-mix(in srgb, var(--interactive-accent) 26%, transparent));
|
||||
}
|
||||
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-label,
|
||||
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-arrow,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-label,
|
||||
body[data-editing-toolbar-ai-busy="true"]
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-arrow,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-label,
|
||||
body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .cm-ai-result-panel[data-phase="streaming"])
|
||||
:is(#editingToolbarModalBar[data-toolbar-style="fixed"], #editingToolbarModalBar[data-toolbar-style="mobile"], #editingToolbarPopoverBar[data-toolbar-style="fixed"], #editingToolbarPopoverBar[data-toolbar-style="mobile"]) button.editingToolbarCommandsubItem-ai .editing-toolbar-ai-button-arrow {
|
||||
color: var(--text-muted);
|
||||
animation: cm-ai-label-breathe 1.8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.menu.editing-toolbar-ai-dropdown-menu .menu-item.is-disabled {
|
||||
@@ -1452,10 +1507,10 @@ body:has(.workspace-leaf.mod-active .cm-ai-loading, .workspace-leaf.mod-active .
|
||||
|
||||
/* Some themes animate all workspace SVG icons. Opt toolbar controls out so
|
||||
inherited visibility changes hide the whole toolbar in one frame. */
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line),
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line) *:not(.subitem),
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) svg.svg-icon,
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) svg.svg-icon * {
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line):not(.editingToolbarCommandsubItem-ai),
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line):not(.editingToolbarCommandsubItem-ai) *:not(.subitem),
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line):not(.editingToolbarCommandsubItem-ai) svg.svg-icon,
|
||||
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]):not(.editingToolbar-Divider-Line):not(.editingToolbarCommandsubItem-ai) svg.svg-icon * {
|
||||
animation: none;
|
||||
transition: none !important;
|
||||
-webkit-transition: none !important;
|
||||
@@ -2076,10 +2131,174 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
|
||||
width: min(560px, calc(100vw - 32px));
|
||||
}
|
||||
|
||||
.editing-toolbar-ai-consent {
|
||||
.modal.editing-toolbar-text-input-modal-wide {
|
||||
width: min(600px, calc(100vw - 40px));
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-suggestions {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-suggestions-label {
|
||||
margin-bottom: 10px;
|
||||
color: var(--text-muted);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-suggestions-chips {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-suggestion-chip {
|
||||
padding: 7px 12px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 999px;
|
||||
background: var(--background-secondary);
|
||||
color: var(--text-normal);
|
||||
font-size: 12px;
|
||||
line-height: 1.2;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-suggestion-chip:hover {
|
||||
background: color-mix(in srgb, var(--interactive-accent) 12%, var(--background-secondary));
|
||||
border-color: color-mix(in srgb, var(--interactive-accent) 30%, var(--background-modifier-border));
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-field-full {
|
||||
position: relative;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-field-full input,
|
||||
.editing-toolbar-text-input-field-full textarea {
|
||||
width: 100%;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-linked-note-host {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context {
|
||||
margin: 8px 0 12px;
|
||||
padding: 10px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 12px;
|
||||
background: var(--background-secondary);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-label {
|
||||
margin-bottom: 8px;
|
||||
color: var(--text-muted);
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 6px 8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-item + .editing-toolbar-text-input-context-item {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-item:hover {
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-item-label {
|
||||
flex-shrink: 0;
|
||||
color: var(--text-accent);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-context-item-preview {
|
||||
min-width: 0;
|
||||
color: var(--text-muted);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.editing-toolbar-textarea-input {
|
||||
width: 100%;
|
||||
min-height: 80px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-footer-hint {
|
||||
margin-top: 8px;
|
||||
color: var(--text-muted);
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-dropdown {
|
||||
position: absolute;
|
||||
top: calc(100% + 6px);
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 20;
|
||||
display: none;
|
||||
max-height: 220px;
|
||||
overflow-y: auto;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 10px;
|
||||
background: var(--background-primary);
|
||||
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-item + .editing-toolbar-text-input-mention-item {
|
||||
border-top: 1px solid var(--background-modifier-border-hover);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-item:hover,
|
||||
.editing-toolbar-text-input-mention-item.selected {
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-icon {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-name {
|
||||
color: var(--text-normal);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.editing-toolbar-text-input-mention-path {
|
||||
min-width: 0;
|
||||
margin-left: auto;
|
||||
color: var(--text-faint);
|
||||
font-size: 11px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.editing-toolbar-ai-consent {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
font-size: var(--font-ui-small);
|
||||
}
|
||||
|
||||
@@ -2279,6 +2498,91 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-pill-breathe {
|
||||
0%, 100% {
|
||||
transform: translateY(0);
|
||||
box-shadow: 0 6px 20px color-mix(in srgb, var(--interactive-accent) 8%, transparent), inset 0 1px 0 color-mix(in srgb, white 18%, transparent);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-0.5px);
|
||||
box-shadow: 0 10px 28px color-mix(in srgb, var(--interactive-accent) 14%, transparent), 0 0 0 1px color-mix(in srgb, var(--interactive-accent) 10%, transparent), inset 0 1px 0 color-mix(in srgb, white 26%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-breathe {
|
||||
0%, 100% {
|
||||
transform: scale(0.88);
|
||||
opacity: 0.72;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.05);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-toolbar-breathe {
|
||||
0%, 100% {
|
||||
transform: scale(0.9);
|
||||
opacity: 0.78;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.06);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-toolbar-glow {
|
||||
0%, 100% {
|
||||
opacity: 0.62;
|
||||
transform: scale(0.985);
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
transform: scale(1.015);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-glow {
|
||||
0%, 100% {
|
||||
transform: scale(0.9);
|
||||
opacity: 0.24;
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.28);
|
||||
opacity: 0.56;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-label-breathe {
|
||||
0%, 100% {
|
||||
opacity: 0.78;
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cm-ai-sheen {
|
||||
0% {
|
||||
transform: translateX(-140%) skewX(-24deg);
|
||||
opacity: 0;
|
||||
}
|
||||
18% {
|
||||
opacity: 0;
|
||||
}
|
||||
38% {
|
||||
opacity: 0.62;
|
||||
}
|
||||
58% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
transform: translateX(180%) skewX(-24deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.cm-tooltip {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
+3
-4
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "excalibrain",
|
||||
"name": "ExcaliBrain",
|
||||
"version": "0.2.17",
|
||||
"version": "0.2.18",
|
||||
"minAppVersion": "1.1.6",
|
||||
"description": "A clean, intuitive and editable graph view for Obsidian",
|
||||
"author": "Zsolt Viczian",
|
||||
|
||||
+60
-23
@@ -4683,11 +4683,36 @@ var DEFAULT_SETTINGS = {
|
||||
gitLocation: "",
|
||||
syncinterval: 0,
|
||||
isSyncOnLoad: false,
|
||||
checkStatusOnLoad: true
|
||||
checkStatusOnLoad: true,
|
||||
noticeLevel: "ALL",
|
||||
showSyncSuccessNotice: true
|
||||
};
|
||||
var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
shouldShowNotice(severity) {
|
||||
switch (this.settings.noticeLevel) {
|
||||
case "ERROR":
|
||||
return severity === "ERROR";
|
||||
case "WARNING":
|
||||
return severity === "WARNING" || severity === "ERROR";
|
||||
case "ALL":
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
showNotice(message, severity, timeout) {
|
||||
if (!this.shouldShowNotice(severity)) {
|
||||
return;
|
||||
}
|
||||
const text = message instanceof Error ? message.message : String(message);
|
||||
new import_obsidian.Notice(text, timeout);
|
||||
}
|
||||
showSyncSuccessNotice() {
|
||||
if (!this.settings.showSyncSuccessNotice) {
|
||||
return;
|
||||
}
|
||||
this.showNotice("github sync successful", "INFO");
|
||||
}
|
||||
async SyncNotes() {
|
||||
new import_obsidian.Notice("Syncing to GitHub remote");
|
||||
const remote = this.settings.remoteURL.trim();
|
||||
simpleGitOptions = {
|
||||
//@ts-ignore
|
||||
@@ -4700,9 +4725,12 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
let os = require("os");
|
||||
let hostname = os.hostname();
|
||||
let statusResult = await git.status().catch((e) => {
|
||||
new import_obsidian.Notice("Vault is not a Git repo or git binary cannot be found.", 1e4);
|
||||
this.showNotice("Vault is not a Git repo or git binary cannot be found.", "ERROR", 1e4);
|
||||
return;
|
||||
});
|
||||
if (!statusResult) {
|
||||
return;
|
||||
}
|
||||
let clean = statusResult.isClean();
|
||||
let date = new Date();
|
||||
let msg = hostname + " " + date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + ":" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
|
||||
@@ -4710,47 +4738,44 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
try {
|
||||
await git.add("./*").commit(msg);
|
||||
} catch (e) {
|
||||
new import_obsidian.Notice(e);
|
||||
this.showNotice(e, "ERROR", 1e4);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
new import_obsidian.Notice("Working branch clean");
|
||||
}
|
||||
try {
|
||||
await git.removeRemote("origin").catch((e) => {
|
||||
new import_obsidian.Notice(e);
|
||||
this.showNotice(e, "ERROR", 1e4);
|
||||
});
|
||||
await git.addRemote("origin", remote).catch((e) => {
|
||||
new import_obsidian.Notice(e);
|
||||
this.showNotice(e, "ERROR", 1e4);
|
||||
});
|
||||
} catch (e) {
|
||||
new import_obsidian.Notice(e);
|
||||
this.showNotice(e, "ERROR", 1e4);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await git.fetch();
|
||||
} catch (e) {
|
||||
new import_obsidian.Notice(e + "\nGitHub Sync: Invalid remote URL.", 1e4);
|
||||
this.showNotice(String(e) + "\nGitHub Sync: Invalid remote URL.", "ERROR", 1e4);
|
||||
return;
|
||||
}
|
||||
new import_obsidian.Notice("GitHub Sync: Successfully set remote origin url");
|
||||
try {
|
||||
await git.pull("origin", "main", { "--no-rebase": null }, (err, update) => {
|
||||
if (update) {
|
||||
new import_obsidian.Notice("GitHub Sync: Pulled " + update.summary.changes + " changes");
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
let conflictStatus = await git.status().catch((e2) => {
|
||||
new import_obsidian.Notice(e2, 1e4);
|
||||
let conflictStatus = await git.status().catch((error) => {
|
||||
this.showNotice(error, "ERROR", 1e4);
|
||||
return;
|
||||
});
|
||||
if (!conflictStatus) {
|
||||
return;
|
||||
}
|
||||
let conflictMsg = "Merge conflicts in:";
|
||||
for (let c of conflictStatus.conflicted) {
|
||||
conflictMsg += "\n " + c;
|
||||
}
|
||||
conflictMsg += "\nResolve them or click sync button again to push with unresolved conflicts.";
|
||||
new import_obsidian.Notice(conflictMsg);
|
||||
this.showNotice(conflictMsg, "WARNING");
|
||||
for (let c of conflictStatus.conflicted) {
|
||||
this.app.workspace.openLinkText("", c, true);
|
||||
}
|
||||
@@ -4758,12 +4783,13 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
}
|
||||
if (!clean) {
|
||||
try {
|
||||
git.push("origin", "main", ["-u"]);
|
||||
new import_obsidian.Notice("GitHub Sync: Pushed on " + msg);
|
||||
await git.push("origin", "main", ["-u"]);
|
||||
} catch (e) {
|
||||
new import_obsidian.Notice(e, 1e4);
|
||||
this.showNotice(e, "ERROR", 1e4);
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.showSyncSuccessNotice();
|
||||
}
|
||||
async CheckStatusOnStart() {
|
||||
try {
|
||||
@@ -4781,10 +4807,10 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
if (this.settings.isSyncOnLoad == true) {
|
||||
this.SyncNotes();
|
||||
} else {
|
||||
new import_obsidian.Notice("GitHub Sync: " + statusUponOpening.behind + " commits behind remote.\nClick the GitHub ribbon icon to sync.");
|
||||
this.showNotice("GitHub Sync: " + statusUponOpening.behind + " commits behind remote.\nClick the GitHub ribbon icon to sync.", "WARNING");
|
||||
}
|
||||
} else {
|
||||
new import_obsidian.Notice("GitHub Sync: up to date with remote.");
|
||||
this.showNotice("GitHub Sync: up to date with remote.", "INFO");
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
@@ -4810,7 +4836,7 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
(0, import_set_interval_async.setIntervalAsync)(async () => {
|
||||
await this.SyncNotes();
|
||||
}, interval * 60 * 1e3);
|
||||
new import_obsidian.Notice("Auto sync enabled");
|
||||
this.showNotice("Auto sync enabled", "INFO");
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
@@ -4823,6 +4849,9 @@ var GHSyncPlugin = class extends import_obsidian.Plugin {
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
if (this.settings.noticeLevel === "WARNINGS") {
|
||||
this.settings.noticeLevel = "WARNING";
|
||||
}
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
@@ -4852,6 +4881,14 @@ var GHSyncSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
this.plugin.settings.gitLocation = value;
|
||||
await this.plugin.saveSettings();
|
||||
}).inputEl.addClass("my-plugin-setting-text2"));
|
||||
new import_obsidian.Setting(containerEl).setName("Notice level").setDesc("Choose which GitHub Sync notices are shown in the Obsidian UI.").addDropdown((dropdown) => dropdown.addOption("ALL", "ALL").addOption("WARNING", "WARNING").addOption("ERROR", "ERROR").setValue(this.plugin.settings.noticeLevel).onChange(async (value) => {
|
||||
this.plugin.settings.noticeLevel = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Hide Success Message").setDesc("Hide the single success notice shown when a sync finishes successfully.").addToggle((toggle) => toggle.setValue(!this.plugin.settings.showSyncSuccessNotice).onChange(async (value) => {
|
||||
this.plugin.settings.showSyncSuccessNotice = !value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Check status on startup").setDesc("Check to see if you are behind remote when you start Obsidian.").addToggle((toggle) => toggle.setValue(this.plugin.settings.checkStatusOnLoad).onChange(async (value) => {
|
||||
this.plugin.settings.checkStatusOnLoad = value;
|
||||
await this.plugin.saveSettings();
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "github-sync",
|
||||
"name": "GitHub Sync",
|
||||
"version": "1.0.6",
|
||||
"version": "1.0.7",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Sync vault to personal GitHub.",
|
||||
"author": "Kevin Chin",
|
||||
|
||||
+123
-74
@@ -7601,7 +7601,7 @@ var require_lib = __commonJS({
|
||||
};
|
||||
})
|
||||
});
|
||||
var getAPI3 = (app) => {
|
||||
var getAPI2 = (app) => {
|
||||
var _a2;
|
||||
if (app)
|
||||
return (_a2 = app.plugins.plugins.dataview) === null || _a2 === void 0 ? void 0 : _a2.api;
|
||||
@@ -7614,7 +7614,7 @@ var require_lib = __commonJS({
|
||||
exports.EXPRESSION = EXPRESSION;
|
||||
exports.KEYWORDS = KEYWORDS;
|
||||
exports.QUERY_LANGUAGE = QUERY_LANGUAGE;
|
||||
exports.getAPI = getAPI3;
|
||||
exports.getAPI = getAPI2;
|
||||
exports.isPluginEnabled = isPluginEnabled;
|
||||
exports.parseField = parseField;
|
||||
}
|
||||
@@ -26559,11 +26559,11 @@ __export(main_exports, {
|
||||
default: () => GraphLinkTypesPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var import_obsidian_dataview2 = __toESM(require_lib());
|
||||
var import_obsidian2 = require("obsidian");
|
||||
var import_obsidian_dataview = __toESM(require_lib());
|
||||
|
||||
// src/linkManager.ts
|
||||
var import_obsidian_dataview = __toESM(require_lib());
|
||||
var import_obsidian = require("obsidian");
|
||||
|
||||
// node_modules/@pixi/constants/lib/index.mjs
|
||||
var ENV = /* @__PURE__ */ ((ENV2) => (ENV2[ENV2.WEBGL_LEGACY = 0] = "WEBGL_LEGACY", ENV2[ENV2.WEBGL = 1] = "WEBGL", ENV2[ENV2.WEBGL2 = 2] = "WEBGL2", ENV2))(ENV || {});
|
||||
@@ -49272,7 +49272,7 @@ var import_markdown_link_extractor = __toESM(require_markdown_link_extractor());
|
||||
var LinkManager = class {
|
||||
// Space between the text and the start of the line
|
||||
constructor() {
|
||||
this.api = (0, import_obsidian_dataview.getAPI)();
|
||||
this.api = null;
|
||||
this.categoricalColors = [
|
||||
16007990,
|
||||
// Red
|
||||
@@ -49335,20 +49335,20 @@ var LinkManager = class {
|
||||
let lastTheme = "";
|
||||
let lastStyleSheetHref = "";
|
||||
let debounceTimer;
|
||||
const updateThemeColors = () => {
|
||||
var _a2, _b;
|
||||
this.currentTheme = document.body.classList.contains("theme-dark") ? "theme-dark" : "theme-light";
|
||||
const currentStyleSheetHref = (_b = (_a2 = document.querySelector('link[rel="stylesheet"][href*="theme"]')) == null ? void 0 : _a2.getAttribute("href")) != null ? _b : "";
|
||||
if (this.currentTheme && this.currentTheme !== lastTheme || currentStyleSheetHref !== lastStyleSheetHref) {
|
||||
this.textColor = this.getComputedColorFromClass(this.currentTheme, "--text-normal");
|
||||
lastTheme = this.currentTheme;
|
||||
lastStyleSheetHref = currentStyleSheetHref;
|
||||
}
|
||||
};
|
||||
updateThemeColors();
|
||||
const themeObserver = new MutationObserver(() => {
|
||||
clearTimeout(debounceTimer);
|
||||
debounceTimer = window.setTimeout(() => {
|
||||
var _a2;
|
||||
this.currentTheme = document.body.classList.contains("theme-dark") ? "theme-dark" : "theme-light";
|
||||
const currentStyleSheetHref = (_a2 = document.querySelector('link[rel="stylesheet"][href*="theme"]')) == null ? void 0 : _a2.getAttribute("href");
|
||||
if (this.currentTheme && this.currentTheme !== lastTheme || currentStyleSheetHref !== lastStyleSheetHref) {
|
||||
this.textColor = this.getComputedColorFromClass(this.currentTheme, "--text-normal");
|
||||
lastTheme = this.currentTheme;
|
||||
if (currentStyleSheetHref) {
|
||||
lastStyleSheetHref = currentStyleSheetHref;
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
debounceTimer = window.setTimeout(updateThemeColors, 100);
|
||||
});
|
||||
themeObserver.observe(document.body, { attributes: true, attributeFilter: ["class"] });
|
||||
themeObserver.observe(document.head, { childList: true, subtree: true, attributes: true, attributeFilter: ["href"] });
|
||||
@@ -49376,7 +49376,6 @@ var LinkManager = class {
|
||||
pixiText: this.initializeLinkText(renderer, obLink, pairStatus),
|
||||
pixiGraphics: tagColors ? this.initializeLinkGraphics(renderer, obLink, tagLegend) : null
|
||||
};
|
||||
console.log(obLink);
|
||||
this.linksMap.set(key, newLink);
|
||||
if (obLink.source.id !== obLink.target.id && this.linksMap.has(reverseKey)) {
|
||||
const reverseLink = this.linksMap.get(reverseKey);
|
||||
@@ -49429,7 +49428,12 @@ var LinkManager = class {
|
||||
}
|
||||
}
|
||||
removeLinks(renderer, currentLinks) {
|
||||
const currentKeys = new Set(currentLinks.map((link) => this.generateKey(link.source.id, link.target.id)));
|
||||
const currentKeys = new Set(
|
||||
currentLinks.filter((link) => {
|
||||
var _a2, _b;
|
||||
return Boolean(((_a2 = link == null ? void 0 : link.source) == null ? void 0 : _a2.id) && ((_b = link == null ? void 0 : link.target) == null ? void 0 : _b.id));
|
||||
}).map((link) => this.generateKey(link.source.id, link.target.id))
|
||||
);
|
||||
this.linksMap.forEach((_, key) => {
|
||||
if (!currentKeys.has(key)) {
|
||||
const link = this.linksMap.get(key);
|
||||
@@ -49571,7 +49575,7 @@ var LinkManager = class {
|
||||
color,
|
||||
legendText: textL,
|
||||
legendGraphics: graphicsL,
|
||||
nUsing: 0
|
||||
nUsing: 1
|
||||
};
|
||||
this.tagColors.set(linkString, newLegendGraphic);
|
||||
} else {
|
||||
@@ -49591,25 +49595,6 @@ var LinkManager = class {
|
||||
this.updateLinkGraphics(renderer, link);
|
||||
return graphics;
|
||||
}
|
||||
// Utility function to extract the file path from a Markdown link
|
||||
extractPathFromMarkdownLink(markdownLink) {
|
||||
const links = (0, import_markdown_link_extractor.default)(markdownLink).links;
|
||||
return links.length > 0 ? links[0] : "";
|
||||
}
|
||||
// Method to determine the type of a value, now a class method
|
||||
determineDataviewLinkType(value) {
|
||||
if (typeof value === "object" && value !== null && "path" in value) {
|
||||
return 0 /* WikiLink */;
|
||||
} else if (typeof value === "string" && value.includes("](")) {
|
||||
return 1 /* MarkdownLink */;
|
||||
} else if (typeof value === "string") {
|
||||
return 2 /* String */;
|
||||
} else if (Array.isArray(value)) {
|
||||
return 3 /* Array */;
|
||||
} else {
|
||||
return 4 /* Other */;
|
||||
}
|
||||
}
|
||||
// Remove all text nodes from the graph
|
||||
destroyMap(renderer) {
|
||||
if (this.linksMap.size > 0) {
|
||||
@@ -49627,34 +49612,73 @@ var LinkManager = class {
|
||||
if (value === null || value === void 0 || value === "") {
|
||||
continue;
|
||||
}
|
||||
const valueType = this.determineDataviewLinkType(value);
|
||||
switch (valueType) {
|
||||
case 0 /* WikiLink */:
|
||||
if (value.path === targetId) {
|
||||
return key;
|
||||
}
|
||||
break;
|
||||
case 1 /* MarkdownLink */:
|
||||
if (this.extractPathFromMarkdownLink(value) === targetId) {
|
||||
return key;
|
||||
}
|
||||
break;
|
||||
case 3 /* Array */:
|
||||
for (const item of value) {
|
||||
if (this.determineDataviewLinkType(item) === 0 /* WikiLink */ && item.path === targetId) {
|
||||
return key;
|
||||
}
|
||||
if (this.determineDataviewLinkType(item) === 1 /* MarkdownLink */ && this.extractPathFromMarkdownLink(item) === targetId) {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
if (this.valueContainsTarget(value, sourceId, targetId)) {
|
||||
return key;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
valueContainsTarget(value, sourceId, targetId) {
|
||||
if (this.isArrayLike(value)) {
|
||||
return Array.from(value).some((item) => this.valueContainsTarget(item, sourceId, targetId));
|
||||
}
|
||||
if (this.isDataviewLink(value)) {
|
||||
const candidates = /* @__PURE__ */ new Set();
|
||||
candidates.add(value.path);
|
||||
if (typeof value.obsidianLink === "function") {
|
||||
candidates.add(value.obsidianLink());
|
||||
}
|
||||
if (typeof value.fileName === "function") {
|
||||
candidates.add(value.fileName());
|
||||
}
|
||||
return Array.from(candidates).some((candidate) => this.linkPathMatchesTarget(candidate, sourceId, targetId));
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
return this.extractLinkPathsFromString(value).some((candidate) => this.linkPathMatchesTarget(candidate, sourceId, targetId));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
isArrayLike(value) {
|
||||
var _a2, _b;
|
||||
return Array.isArray(value) || Boolean((_b = (_a2 = this.api) == null ? void 0 : _a2.isArray) == null ? void 0 : _b.call(_a2, value));
|
||||
}
|
||||
isDataviewLink(value) {
|
||||
return typeof value === "object" && value !== null && typeof value.path === "string";
|
||||
}
|
||||
extractLinkPathsFromString(value) {
|
||||
const paths = /* @__PURE__ */ new Set();
|
||||
try {
|
||||
for (const path2 of (0, import_markdown_link_extractor.default)(value).links) {
|
||||
paths.add(path2);
|
||||
}
|
||||
} catch (e2) {
|
||||
}
|
||||
const wikiLinkPattern = /!?\[\[([^\]]+)\]\]/g;
|
||||
let wikiLinkMatch;
|
||||
while ((wikiLinkMatch = wikiLinkPattern.exec(value)) !== null) {
|
||||
paths.add(wikiLinkMatch[1]);
|
||||
}
|
||||
return Array.from(paths);
|
||||
}
|
||||
linkPathMatchesTarget(rawLinkPath, sourceId, targetId) {
|
||||
var _a2, _b, _c;
|
||||
const candidate = this.normalizeLinkPath(rawLinkPath);
|
||||
const normalizedTarget = (0, import_obsidian.normalizePath)(targetId);
|
||||
if (candidate === normalizedTarget || `${candidate}.md` === normalizedTarget) {
|
||||
return true;
|
||||
}
|
||||
const resolvedFile = (_c = (_b = (_a2 = this.api) == null ? void 0 : _a2.app) == null ? void 0 : _b.metadataCache) == null ? void 0 : _c.getFirstLinkpathDest(candidate, sourceId);
|
||||
return (resolvedFile == null ? void 0 : resolvedFile.path) === normalizedTarget;
|
||||
}
|
||||
normalizeLinkPath(rawLinkPath) {
|
||||
const withoutAlias = rawLinkPath.split("|", 1)[0];
|
||||
let decoded = withoutAlias;
|
||||
try {
|
||||
decoded = decodeURIComponent(withoutAlias);
|
||||
} catch (e2) {
|
||||
}
|
||||
return (0, import_obsidian.normalizePath)((0, import_obsidian.getLinkpath)(decoded.trim()));
|
||||
}
|
||||
// Function to calculate the coordinates for placing the link text.
|
||||
getLinkToTextCoordinates(linkX, linkY, panX, panY, scale) {
|
||||
return { x: linkX * scale + panX, y: linkY * scale + panY };
|
||||
@@ -49686,7 +49710,7 @@ var DEFAULT_SETTINGS = {
|
||||
tagNames: true,
|
||||
tagLegend: true
|
||||
};
|
||||
var GraphLinkTypesSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
var GraphLinkTypesSettingTab = class extends import_obsidian2.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
@@ -49694,27 +49718,27 @@ var GraphLinkTypesSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
new import_obsidian.Setting(containerEl).setName("Type Names").setDesc("Toggle to enable or disable link type names in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagNames).onChange(async (value) => {
|
||||
new import_obsidian2.Setting(containerEl).setName("Type Names").setDesc("Toggle to enable or disable link type names in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagNames).onChange(async (value) => {
|
||||
this.plugin.settings.tagNames = value;
|
||||
await this.plugin.saveSettings();
|
||||
this.plugin.startUpdateLoop();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Type Colors").setDesc("Toggle to enable or disable link type colors in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagColors).onChange(async (value) => {
|
||||
new import_obsidian2.Setting(containerEl).setName("Type Colors").setDesc("Toggle to enable or disable link type colors in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagColors).onChange(async (value) => {
|
||||
this.plugin.settings.tagColors = value;
|
||||
await this.plugin.saveSettings();
|
||||
this.plugin.startUpdateLoop();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Show Legend").setDesc("Toggle to show or hide the legend for link type colors in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagLegend).onChange(async (value) => {
|
||||
new import_obsidian2.Setting(containerEl).setName("Show Legend").setDesc("Toggle to show or hide the legend for link type colors in the graph view.").addToggle((toggle) => toggle.setValue(this.plugin.settings.tagLegend).onChange(async (value) => {
|
||||
this.plugin.settings.tagLegend = value;
|
||||
await this.plugin.saveSettings();
|
||||
this.plugin.startUpdateLoop();
|
||||
}));
|
||||
}
|
||||
};
|
||||
var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
var GraphLinkTypesPlugin = class extends import_obsidian2.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.api = (0, import_obsidian_dataview2.getAPI)();
|
||||
this.api = null;
|
||||
this.currentRenderer = null;
|
||||
this.animationFrameId = null;
|
||||
this.linkManager = new LinkManager();
|
||||
@@ -49722,13 +49746,27 @@ var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
}
|
||||
// Lifecycle method called when the plugin is loaded
|
||||
async onload() {
|
||||
var _a2;
|
||||
await this.loadSettings();
|
||||
this.addSettingTab(new GraphLinkTypesSettingTab(this.app, this));
|
||||
this.api = (0, import_obsidian_dataview.getAPI)();
|
||||
if (!this.api) {
|
||||
console.error("Dataview plugin is not available.");
|
||||
new import_obsidian.Notice("Data plugin is not available.");
|
||||
this.registerEvent(this.app.metadataCache.on("dataview:api-ready", () => {
|
||||
var _a3, _b;
|
||||
this.api = (0, import_obsidian_dataview.getAPI)();
|
||||
this.linkManager.api = this.api;
|
||||
this.indexReady = Boolean((_b = (_a3 = this.api) == null ? void 0 : _a3.index) == null ? void 0 : _b.initialized);
|
||||
this.initEventHandlers();
|
||||
void this.handleLayoutChange();
|
||||
}));
|
||||
return;
|
||||
}
|
||||
this.linkManager.api = this.api;
|
||||
this.indexReady = Boolean((_a2 = this.api.index) == null ? void 0 : _a2.initialized);
|
||||
this.initEventHandlers();
|
||||
await this.handleLayoutChange();
|
||||
}
|
||||
initEventHandlers() {
|
||||
this.registerEvent(this.app.workspace.on("layout-change", () => {
|
||||
this.handleLayoutChange();
|
||||
}));
|
||||
@@ -49740,6 +49778,12 @@ var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
this.handleLayoutChange();
|
||||
}
|
||||
}));
|
||||
this.registerEvent(this.app.metadataCache.on("resolved", () => {
|
||||
this.handleLayoutChange();
|
||||
}));
|
||||
this.registerEvent(this.app.vault.on("rename", () => {
|
||||
this.handleLayoutChange();
|
||||
}));
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
@@ -49786,9 +49830,12 @@ var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
waitForRenderer() {
|
||||
return new Promise((resolve2) => {
|
||||
const checkInterval = 500;
|
||||
const maxWait = 1e4;
|
||||
let elapsed = 0;
|
||||
const intervalId = setInterval(() => {
|
||||
const renderer = this.findRenderer();
|
||||
if (renderer) {
|
||||
elapsed += checkInterval;
|
||||
if (renderer || elapsed >= maxWait) {
|
||||
clearInterval(intervalId);
|
||||
resolve2();
|
||||
}
|
||||
@@ -49799,7 +49846,7 @@ var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
startUpdateLoop(verbosity = 0) {
|
||||
if (!this.currentRenderer) {
|
||||
if (verbosity > 0) {
|
||||
new import_obsidian.Notice("No valid graph renderer found.");
|
||||
new import_obsidian2.Notice("No valid graph renderer found.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -49819,6 +49866,8 @@ var GraphLinkTypesPlugin = class extends import_obsidian.Plugin {
|
||||
this.linkManager.removeLinks(renderer, renderer.links);
|
||||
}
|
||||
renderer.links.forEach((link) => {
|
||||
if (!link || !link.source || !link.target)
|
||||
return;
|
||||
if (updateMap) {
|
||||
const key = this.linkManager.generateKey(link.source.id, link.target.id);
|
||||
if (!this.linkManager.linksMap.has(key)) {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "graph-link-types",
|
||||
"name": "Graph Link Types",
|
||||
"version": "0.3.3",
|
||||
"version": "0.3.4",
|
||||
"minAppVersion": "1.5.0",
|
||||
"description": "Link types for graph view.",
|
||||
"author": "natefrisch01",
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
|
||||
This CSS file will be included with your plugin, and
|
||||
available in the app when your plugin is enabled.
|
||||
|
||||
If your plugin does not need CSS, delete this file.
|
||||
|
||||
*/
|
||||
+22
-23
@@ -94,18 +94,24 @@ function removeHeaderNumber(text, splitor) {
|
||||
function isHeader(text) {
|
||||
return /^#{1,6} .*/.test(text.trim());
|
||||
}
|
||||
function updateCodeBlockState(line, isCodeBlock) {
|
||||
const trimmedLine = line.trimStart();
|
||||
if (!trimmedLine.startsWith("```")) {
|
||||
return isCodeBlock;
|
||||
}
|
||||
isCodeBlock = !isCodeBlock;
|
||||
if (trimmedLine.slice(3).includes("```")) {
|
||||
isCodeBlock = !isCodeBlock;
|
||||
}
|
||||
return isCodeBlock;
|
||||
}
|
||||
function analyzeHeaderLevels(content) {
|
||||
const lines = content.split("\n");
|
||||
const usedLevels = /* @__PURE__ */ new Set();
|
||||
let isCodeBlock = false;
|
||||
let headerCount = 0;
|
||||
for (const line of lines) {
|
||||
if (line.startsWith("```")) {
|
||||
isCodeBlock = !isCodeBlock;
|
||||
if (line.slice(3).includes("```")) {
|
||||
isCodeBlock = !isCodeBlock;
|
||||
}
|
||||
}
|
||||
isCodeBlock = updateCodeBlockState(line, isCodeBlock);
|
||||
if (isCodeBlock)
|
||||
continue;
|
||||
if (isHeader(line)) {
|
||||
@@ -1083,10 +1089,7 @@ var init_dialogs = __esm({
|
||||
let isInCodeBlock = false;
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
if (line.startsWith("```")) {
|
||||
isInCodeBlock = !isInCodeBlock;
|
||||
continue;
|
||||
}
|
||||
isInCodeBlock = updateCodeBlockState(line, isInCodeBlock);
|
||||
if (isInCodeBlock) {
|
||||
continue;
|
||||
}
|
||||
@@ -1296,12 +1299,7 @@ var init_dialogs = __esm({
|
||||
let isInCodeBlock = false;
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
if (line.startsWith("```")) {
|
||||
isInCodeBlock = !isInCodeBlock;
|
||||
if (line.slice(3).contains("```")) {
|
||||
isInCodeBlock = !isInCodeBlock;
|
||||
}
|
||||
}
|
||||
isInCodeBlock = updateCodeBlockState(line, isInCodeBlock);
|
||||
if (isInCodeBlock) {
|
||||
continue;
|
||||
}
|
||||
@@ -2513,6 +2511,9 @@ var EditorHandlers = class {
|
||||
key: "Backspace",
|
||||
run: (view) => {
|
||||
const state = view.state;
|
||||
if (!state.selection.main.empty) {
|
||||
return false;
|
||||
}
|
||||
const pos = state.selection.main.to;
|
||||
const currentLine = state.doc.lineAt(pos);
|
||||
if (!isHeader(currentLine.text)) {
|
||||
@@ -2576,6 +2577,9 @@ var EditorHandlers = class {
|
||||
handlePressBackspace(view) {
|
||||
let state = view.state;
|
||||
let doc = state.doc;
|
||||
if (!state.selection.main.empty) {
|
||||
return false;
|
||||
}
|
||||
const pos = state.selection.main.to;
|
||||
const changes = [];
|
||||
if (!isHeader(doc.lineAt(pos).text)) {
|
||||
@@ -3282,12 +3286,7 @@ var HeaderEnhancerPlugin = class extends import_obsidian6.Plugin {
|
||||
for (let i = 0; i <= lineCount; i++) {
|
||||
const line = editor.getLine(i);
|
||||
docCharCount += line.length;
|
||||
if (line.startsWith("```")) {
|
||||
isCodeBlock = !isCodeBlock;
|
||||
if (line.slice(3).contains("```")) {
|
||||
isCodeBlock = !isCodeBlock;
|
||||
}
|
||||
}
|
||||
isCodeBlock = updateCodeBlockState(line, isCodeBlock);
|
||||
if (isCodeBlock) {
|
||||
continue;
|
||||
}
|
||||
@@ -3296,7 +3295,7 @@ var HeaderEnhancerPlugin = class extends import_obsidian6.Plugin {
|
||||
line,
|
||||
config.startLevel
|
||||
);
|
||||
if (headerLevel <= 0) {
|
||||
if (headerLevel <= 0 || realHeaderLevel > config.endLevel) {
|
||||
continue;
|
||||
}
|
||||
insertNumber = getNextNumber(insertNumber, headerLevel);
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "header-enhancer",
|
||||
"name": "Header Enhancer",
|
||||
"version": "0.5.1",
|
||||
"version": "0.5.2",
|
||||
"minAppVersion": "0.14.0",
|
||||
"description": "Level up your headers, customize your notes. Header Enhancer makes your notes header better and more useful.",
|
||||
"author": "Hobee Liu",
|
||||
|
||||
+35
-1
File diff suppressed because one or more lines are too long
+8
-8
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "languagetool",
|
||||
"name": "LanguageTool",
|
||||
"version": "1.4.3",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Unofficial integration of the LanguageTool spell and grammar checker.",
|
||||
"author": "Lars Wrenger, Clemens Ertle",
|
||||
"authorUrl": "https://github.com/wrenger",
|
||||
"isDesktopOnly": false
|
||||
"id": "languagetool",
|
||||
"name": "LanguageTool",
|
||||
"version": "1.4.4",
|
||||
"minAppVersion": "1.12.3",
|
||||
"description": "Unofficial integration of the LanguageTool spell and grammar checker.",
|
||||
"author": "Lars Wrenger, Clemens Ertle",
|
||||
"authorUrl": "https://github.com/wrenger",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
+14
-5
@@ -585,7 +585,7 @@ class JumpToLink extends obsidian.Plugin {
|
||||
this.settings = (yield this.loadData()) || new Settings();
|
||||
this.addSettingTab(new SettingTab(this.app, this));
|
||||
const markViewPlugin = this.markViewPlugin = view.ViewPlugin.fromClass(MarkPlugin, {
|
||||
decorations: v => v.decorations
|
||||
decorations: (v) => v.decorations
|
||||
});
|
||||
this.registerEditorExtension([markViewPlugin]);
|
||||
this.watchForSelectionChange();
|
||||
@@ -616,7 +616,10 @@ class JumpToLink extends obsidian.Plugin {
|
||||
if (this.isLinkHintActive) {
|
||||
return;
|
||||
}
|
||||
const activeViewOfType = app.workspace.getActiveViewOfType(obsidian.MarkdownView);
|
||||
const activeViewOfType = this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);
|
||||
if (!activeViewOfType) {
|
||||
return;
|
||||
}
|
||||
const currentView = this.currentView = activeViewOfType.leaf.view;
|
||||
const mode = this.mode = this.getMode(this.currentView);
|
||||
this.contentElement = activeViewOfType.contentEl;
|
||||
@@ -643,6 +646,7 @@ class JumpToLink extends obsidian.Plugin {
|
||||
}
|
||||
}
|
||||
getMode(currentView) {
|
||||
var _a;
|
||||
// @ts-ignore
|
||||
const isLegacy = this.app.vault.getConfig("legacyEditor");
|
||||
if (currentView.getState().mode === 'preview') {
|
||||
@@ -652,9 +656,14 @@ class JumpToLink extends obsidian.Plugin {
|
||||
return VIEW_MODE.LEGACY;
|
||||
}
|
||||
else if (currentView.getState().mode === 'source') {
|
||||
const isLivePreview = currentView.editor.cm.state.field(obsidian.editorLivePreviewField);
|
||||
if (isLivePreview)
|
||||
return VIEW_MODE.LIVE_PREVIEW;
|
||||
try {
|
||||
const isLivePreview = (_a = currentView.editor.cm.state) === null || _a === void 0 ? void 0 : _a.field(obsidian.editorLivePreviewField);
|
||||
if (isLivePreview)
|
||||
return VIEW_MODE.LIVE_PREVIEW;
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return VIEW_MODE.SOURCE;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "mrj-jump-to-link",
|
||||
"name": "Jump to link",
|
||||
"version": "0.5.15",
|
||||
"version": "0.5.16",
|
||||
"description": "This plugin allows open a link in current document or regex based navigation in editor mode using hotkey",
|
||||
"isDesktopOnly": false,
|
||||
"author": "MrJackphil",
|
||||
|
||||
+27
-8
@@ -114,12 +114,14 @@
|
||||
"showInfoButtons": true,
|
||||
"homepage": {
|
||||
"source": "none",
|
||||
"file": null
|
||||
"file": null,
|
||||
"createMissingPeriodicNote": true
|
||||
},
|
||||
"dualPane": false,
|
||||
"dualPaneOrientation": "horizontal",
|
||||
"showTooltips": false,
|
||||
"showTooltipPath": true,
|
||||
"showTooltipWordCount": false,
|
||||
"desktopBackground": "separate",
|
||||
"desktopScale": 1,
|
||||
"mobileScale": 1,
|
||||
@@ -156,6 +158,7 @@
|
||||
"showNoteCount": true,
|
||||
"separateNoteCounts": true,
|
||||
"showIndentGuides": true,
|
||||
"navCountLeaderStyle": "none",
|
||||
"rootLevelSpacing": 0,
|
||||
"navIndent": 16,
|
||||
"navItemHeight": 28,
|
||||
@@ -187,7 +190,8 @@
|
||||
"enableFolderNoteLinks": true,
|
||||
"hideFolderNoteInList": true,
|
||||
"pinCreatedFolderNote": false,
|
||||
"openFolderNotesInNewTab": false,
|
||||
"folderNoteOpenLocation": "current-tab",
|
||||
"showNearestFolderNoteInSidebar": true,
|
||||
"showTags": true,
|
||||
"showTagIcons": true,
|
||||
"showAllTagsFolder": true,
|
||||
@@ -207,14 +211,18 @@
|
||||
"defaultFolderSort": "modified-desc",
|
||||
"propertySortKey": "",
|
||||
"propertySortSecondary": "title",
|
||||
"manualSortPropertyKey": "sort_index",
|
||||
"manualSortGroupHeaderProperty": "group_header",
|
||||
"manualSortNewNotePlacement": "below-selected-note",
|
||||
"confirmBeforeManualSort": true,
|
||||
"revealFileOnListChanges": true,
|
||||
"listPaneTitle": "header",
|
||||
"noteGrouping": "date",
|
||||
"showSelectedNavigationPills": false,
|
||||
"stickyGroupHeaders": true,
|
||||
"showFolderGroupPaths": true,
|
||||
"showCurrentFolderFilesAtBottom": false,
|
||||
"filterPinnedByFolder": false,
|
||||
"showPinnedGroupHeader": true,
|
||||
"showPinnedIcon": true,
|
||||
"optimizeNoteHeight": true,
|
||||
"compactItemHeight": 28,
|
||||
"compactItemHeightScaleText": true,
|
||||
"showQuickActions": true,
|
||||
@@ -223,6 +231,7 @@
|
||||
"quickActionAddToShortcuts": true,
|
||||
"quickActionPinNote": true,
|
||||
"quickActionOpenInNewTab": false,
|
||||
"hideDrawingPreviewImages": true,
|
||||
"useFrontmatterMetadata": false,
|
||||
"frontmatterIconField": "icon",
|
||||
"frontmatterColorField": "color",
|
||||
@@ -235,11 +244,13 @@
|
||||
"showFileBackgroundUnfinishedTask": false,
|
||||
"unfinishedTaskBackgroundColor": "#ef000050",
|
||||
"showFileIcons": true,
|
||||
"useFolderIconForFiles": false,
|
||||
"showFilenameMatchIcons": false,
|
||||
"fileNameIconMap": {},
|
||||
"showCategoryIcons": false,
|
||||
"fileTypeIconMap": {},
|
||||
"fileNameRows": 1,
|
||||
"useFolderColorForTitles": false,
|
||||
"showFilePreview": true,
|
||||
"skipHeadingsInPreview": true,
|
||||
"skipCodeBlocksInPreview": true,
|
||||
@@ -267,10 +278,15 @@
|
||||
"showPropertiesOnSeparateRows": false,
|
||||
"enablePropertyInternalLinks": true,
|
||||
"enablePropertyExternalLinks": true,
|
||||
"notePropertyType": "none",
|
||||
"textCountDisplay": "none",
|
||||
"textCountPlacement": "title",
|
||||
"characterCountSpaces": "include",
|
||||
"wordCountTargetProperty": "word-goal",
|
||||
"showWordCountPercentage": false,
|
||||
"showFileDate": true,
|
||||
"alphabeticalDateMode": "modified",
|
||||
"showParentFolder": true,
|
||||
"showParentFolderFullPath": false,
|
||||
"parentFolderClickRevealsFile": false,
|
||||
"showParentFolderColor": false,
|
||||
"showParentFolderIcon": false,
|
||||
@@ -289,6 +305,7 @@
|
||||
"calendarLeftPlacement": "navigation",
|
||||
"calendarWeeksToShow": 6,
|
||||
"calendarIntegrationMode": "daily-notes",
|
||||
"calendarPeriodicNotesLocaleSource": "calendar",
|
||||
"calendarCustomFilePattern": "YYYY/YYYYMMDD",
|
||||
"calendarCustomWeekPattern": "gggg/[W]ww",
|
||||
"calendarCustomMonthPattern": "YYYY/YYYYMM",
|
||||
@@ -453,6 +470,7 @@
|
||||
},
|
||||
"customVaultName": "",
|
||||
"pinnedNotes": {},
|
||||
"collapsedPinnedContexts": {},
|
||||
"fileIcons": {},
|
||||
"fileColors": {},
|
||||
"fileBackgroundColors": {},
|
||||
@@ -503,7 +521,7 @@
|
||||
"#404040",
|
||||
"#404040"
|
||||
],
|
||||
"lastShownVersion": "2.5.8",
|
||||
"lastShownVersion": "3.1.2",
|
||||
"rootFolderOrder": [
|
||||
"sources",
|
||||
"attachments",
|
||||
@@ -534,7 +552,8 @@
|
||||
"micrometa",
|
||||
"obsidan_export",
|
||||
"pocket",
|
||||
"-#s"
|
||||
"-#s",
|
||||
"o"
|
||||
],
|
||||
"rootPropertyOrder": []
|
||||
}
|
||||
+432
-424
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "notebook-navigator",
|
||||
"name": "Notebook Navigator",
|
||||
"version": "2.5.8",
|
||||
"minAppVersion": "1.8.7",
|
||||
"version": "3.1.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",
|
||||
"authorUrl": "https://github.com/johansan",
|
||||
|
||||
+1230
-764
File diff suppressed because it is too large
Load Diff
+10
-5
File diff suppressed because one or more lines are too long
+1395
-112
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-day-planner",
|
||||
"name": "Day Planner",
|
||||
"version": "0.28.0",
|
||||
"version": "0.30.0",
|
||||
"minAppVersion": "0.16.0",
|
||||
"description": "A day planner with clean UI and readable syntax",
|
||||
"author": "James Lynch, continued by Ivan Lednev",
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+282
-12
@@ -1,7 +1,9 @@
|
||||
{
|
||||
"showTabTitlebarButtons": true,
|
||||
"copyLinkToElemenetAnchorTo100": false,
|
||||
"copyFrameLinkByName": false,
|
||||
"disableDoubleClickTextEditing": false,
|
||||
"phoneFooterSafeAreaPadding": false,
|
||||
"folder": "Excalidraw",
|
||||
"cropFolder": "",
|
||||
"annotateFolder": "",
|
||||
@@ -29,8 +31,10 @@
|
||||
"annotateSuffix": "",
|
||||
"annotatePrefix": "annotated_",
|
||||
"annotatePreserveSize": false,
|
||||
"displaySVGInPreview": false,
|
||||
"previewImageType": "SVG",
|
||||
"renderingConcurrency": 3,
|
||||
"imageCacheRetentionDays": 30,
|
||||
"allowImageCache": true,
|
||||
"allowImageCacheInScene": true,
|
||||
"displayExportedImageIfAvailable": false,
|
||||
@@ -82,7 +86,7 @@
|
||||
"pageTransclusionCharLimit": 200,
|
||||
"wordWrappingDefault": 0,
|
||||
"removeTransclusionQuoteSigns": true,
|
||||
"iframelyAllowed": true,
|
||||
"oEmbedAllowed": false,
|
||||
"pngExportScale": 1,
|
||||
"exportWithTheme": true,
|
||||
"exportWithBackground": false,
|
||||
@@ -96,6 +100,7 @@
|
||||
"embedType": "excalidraw",
|
||||
"embedMarkdownCommentLinks": true,
|
||||
"embedWikiLink": true,
|
||||
"embedPlaceholderImage": true,
|
||||
"syncExcalidraw": false,
|
||||
"experimentalFileType": false,
|
||||
"experimentalFileTag": "✏️",
|
||||
@@ -107,6 +112,8 @@
|
||||
"addDummyTextElement": false,
|
||||
"zoteroCompatibility": false,
|
||||
"fieldSuggester": true,
|
||||
"enableOnloadScripts": false,
|
||||
"enableCommandLinks": false,
|
||||
"compatibilityMode": false,
|
||||
"drawingOpenCount": 0,
|
||||
"library": "deprecated",
|
||||
@@ -149,8 +156,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"previousRelease": "2.22.0",
|
||||
"previousRelease": "2.23.12",
|
||||
"showReleaseNotes": true,
|
||||
"excalidrawMasteryPromoCollapsed": false,
|
||||
"compareManifestToPluginVersion": true,
|
||||
"showNewVersionNotification": true,
|
||||
"latexBoilerplate": "",
|
||||
@@ -507,15 +515,277 @@
|
||||
"canvasImmersiveEmbed": true,
|
||||
"startupScriptPath": "",
|
||||
"aiEnabled": true,
|
||||
"openAIAPIToken": "",
|
||||
"openAIDefaultTextModel": "gpt-3.5-turbo-1106",
|
||||
"openAIDefaultTextModelMaxTokens": 4096,
|
||||
"openAIDefaultVisionModel": "gpt-4o",
|
||||
"openAIDefaultImageGenerationModel": "dall-e-3",
|
||||
"openAIURL": "https://api.openai.com/v1/chat/completions",
|
||||
"openAIImageGenerationURL": "https://api.openai.com/v1/images/generations",
|
||||
"openAIImageEditsURL": "https://api.openai.com/v1/images/edits",
|
||||
"openAIImageVariationURL": "https://api.openai.com/v1/images/variations",
|
||||
"aiVerboseLogging": false,
|
||||
"aiProviderProfiles": {
|
||||
"OpenAI": {
|
||||
"provider": "openai",
|
||||
"apiKey": "",
|
||||
"baseURL": "https://api.openai.com/v1"
|
||||
},
|
||||
"Anthropic": {
|
||||
"provider": "anthropic",
|
||||
"apiKey": "",
|
||||
"baseURL": "https://api.anthropic.com/v1"
|
||||
},
|
||||
"Google Gemini": {
|
||||
"provider": "google",
|
||||
"apiKey": "",
|
||||
"baseURL": "https://generativelanguage.googleapis.com/v1beta"
|
||||
},
|
||||
"xAI": {
|
||||
"provider": "xai",
|
||||
"apiKey": "",
|
||||
"baseURL": "https://api.x.ai/v1"
|
||||
},
|
||||
"OpenAI-compatible": {
|
||||
"provider": "openai-compatible",
|
||||
"apiKey": "",
|
||||
"baseURL": "https://api.openai.com/v1"
|
||||
}
|
||||
},
|
||||
"aiTextModelConfigs": {
|
||||
"gpt-5-mini": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-5-mini",
|
||||
"endpoint": "",
|
||||
"multimodalSupport": true
|
||||
},
|
||||
"claude-sonnet-4-5": {
|
||||
"providerId": "Anthropic",
|
||||
"model": "claude-sonnet-4-5",
|
||||
"endpoint": "",
|
||||
"multimodalSupport": true
|
||||
},
|
||||
"gemini-2.5-pro": {
|
||||
"providerId": "Google Gemini",
|
||||
"model": "gemini-2.5-pro",
|
||||
"endpoint": "",
|
||||
"multimodalSupport": true
|
||||
},
|
||||
"grok-4-fast": {
|
||||
"providerId": "xAI",
|
||||
"model": "grok-4-fast",
|
||||
"endpoint": "",
|
||||
"multimodalSupport": true
|
||||
},
|
||||
"gpt-3.5-turbo-1106": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-3.5-turbo-1106",
|
||||
"endpoint": "",
|
||||
"multimodalSupport": true
|
||||
}
|
||||
},
|
||||
"aiImageModelConfigs": {
|
||||
"dall-e-2": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "dall-e-2",
|
||||
"supportedSizes": [
|
||||
"256x256",
|
||||
"512x512",
|
||||
"1024x1024"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": true
|
||||
},
|
||||
"dall-e-3": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "dall-e-3",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"1792x1024",
|
||||
"1024x1792"
|
||||
],
|
||||
"supportsPromptImageTransforms": false,
|
||||
"supportsMaskImageEdits": false
|
||||
},
|
||||
"gpt-image-1": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-image-1",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"1536x1024",
|
||||
"1024x1536"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": true
|
||||
},
|
||||
"gpt-image-1-mini": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-image-1-mini",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"1536x1024",
|
||||
"1024x1536"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": true
|
||||
},
|
||||
"gpt-image-1.5": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-image-1.5",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"1536x1024",
|
||||
"1024x1536"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": true
|
||||
},
|
||||
"gpt-image-2": {
|
||||
"providerId": "OpenAI",
|
||||
"model": "gpt-image-2",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"1536x1024",
|
||||
"1024x1536",
|
||||
"2048x2048"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": true
|
||||
},
|
||||
"gemini-2.5-flash-image": {
|
||||
"providerId": "Google Gemini",
|
||||
"model": "gemini-2.5-flash-image",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"848x1264",
|
||||
"1264x848",
|
||||
"896x1200",
|
||||
"1200x896",
|
||||
"928x1152",
|
||||
"1152x928",
|
||||
"768x1376",
|
||||
"1376x768",
|
||||
"1584x672"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": false
|
||||
},
|
||||
"gemini-3.1-flash-image-preview": {
|
||||
"providerId": "Google Gemini",
|
||||
"model": "gemini-3.1-flash-image-preview",
|
||||
"supportedSizes": [
|
||||
"512x512",
|
||||
"1024x1024",
|
||||
"2048x2048",
|
||||
"4096x4096",
|
||||
"424x632",
|
||||
"848x1264",
|
||||
"1696x2528",
|
||||
"3392x5056",
|
||||
"632x424",
|
||||
"1264x848",
|
||||
"2528x1696",
|
||||
"5056x3392",
|
||||
"448x600",
|
||||
"896x1200",
|
||||
"1792x2400",
|
||||
"3584x4800",
|
||||
"600x448",
|
||||
"1200x896",
|
||||
"2400x1792",
|
||||
"4800x3584",
|
||||
"464x576",
|
||||
"928x1152",
|
||||
"1856x2304",
|
||||
"3712x4608",
|
||||
"576x464",
|
||||
"1152x928",
|
||||
"2304x1856",
|
||||
"4608x3712",
|
||||
"384x688",
|
||||
"768x1376",
|
||||
"1536x2752",
|
||||
"3072x5504",
|
||||
"688x384",
|
||||
"1376x768",
|
||||
"2752x1536",
|
||||
"5504x3072",
|
||||
"792x168",
|
||||
"1584x672",
|
||||
"3168x1344",
|
||||
"6336x2688",
|
||||
"256x1024",
|
||||
"512x2048",
|
||||
"1024x4096",
|
||||
"2048x8192",
|
||||
"192x1536",
|
||||
"384x3072",
|
||||
"768x6144",
|
||||
"1536x12288",
|
||||
"1024x256",
|
||||
"2048x512",
|
||||
"4096x1024",
|
||||
"8192x2048",
|
||||
"1536x192",
|
||||
"3072x384",
|
||||
"6144x768",
|
||||
"12288x1536"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": false
|
||||
},
|
||||
"gemini-3-pro-image-preview": {
|
||||
"providerId": "Google Gemini",
|
||||
"model": "gemini-3-pro-image-preview",
|
||||
"supportedSizes": [
|
||||
"1024x1024",
|
||||
"2048x2048",
|
||||
"4096x4096",
|
||||
"848x1264",
|
||||
"1696x2528",
|
||||
"3392x5056",
|
||||
"1264x848",
|
||||
"2528x1696",
|
||||
"5056x3392",
|
||||
"896x1200",
|
||||
"1792x2400",
|
||||
"3584x4800",
|
||||
"1200x896",
|
||||
"2400x1792",
|
||||
"4800x3584",
|
||||
"928x1152",
|
||||
"1856x2304",
|
||||
"3712x4608",
|
||||
"1152x928",
|
||||
"2304x1856",
|
||||
"4608x3712",
|
||||
"768x1376",
|
||||
"1536x2752",
|
||||
"3072x5504",
|
||||
"1376x768",
|
||||
"2752x1536",
|
||||
"5504x3072",
|
||||
"1584x672",
|
||||
"3168x1344",
|
||||
"6336x2688"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": false
|
||||
},
|
||||
"grok-imagine-image-quality": {
|
||||
"providerId": "xAI",
|
||||
"model": "grok-imagine-image-quality",
|
||||
"supportedSizes": [
|
||||
"1024x1024"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": false
|
||||
},
|
||||
"grok-imagine-image-pro": {
|
||||
"providerId": "xAI",
|
||||
"model": "grok-imagine-image-pro",
|
||||
"supportedSizes": [
|
||||
"1024x1024"
|
||||
],
|
||||
"supportsPromptImageTransforms": true,
|
||||
"supportsMaskImageEdits": false
|
||||
}
|
||||
},
|
||||
"aiDefaultTextModel": "gpt-3.5-turbo-1106",
|
||||
"aiDefaultImageGenerationModel": "dall-e-3",
|
||||
"aiDefaultMaxOutgoingTokens": 0,
|
||||
"aiDefaultMaxResponseTokens": 4096,
|
||||
"modifierKeyConfig": {
|
||||
"Mac": {
|
||||
"LocalFileDragAction": {
|
||||
@@ -805,7 +1075,6 @@
|
||||
"longPressDesktop": 500,
|
||||
"longPressMobile": 500,
|
||||
"doubleClickLinkOpenViewMode": true,
|
||||
"isDebugMode": false,
|
||||
"rank": "Silver",
|
||||
"modifierKeyOverrides": [
|
||||
{
|
||||
@@ -838,6 +1107,7 @@
|
||||
"margin": "normal"
|
||||
},
|
||||
"disableContextMenu": false,
|
||||
"isDebugMode": false,
|
||||
"defaultTrayMode": true,
|
||||
"compactModeOnTablets": true
|
||||
}
|
||||
+4
-4
File diff suppressed because one or more lines are too long
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.22.0",
|
||||
"minAppVersion": "1.5.7",
|
||||
"description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
|
||||
"version": "2.23.12",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
|
||||
"author": "Zsolt Viczian",
|
||||
"authorUrl": "https://excalidraw-obsidian.online",
|
||||
"fundingUrl": "https://ko-fi.com/zsolt",
|
||||
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+258
-295
File diff suppressed because one or more lines are too long
+1
-1
@@ -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.2"
|
||||
"version": "2.38.3"
|
||||
}
|
||||
|
||||
+20
-25
@@ -8,15 +8,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.git-signs-gutter {
|
||||
.cm-gutterElement {
|
||||
/* Needed to align the sign properly for different line heigts. Such as
|
||||
* when having a heading or list item.
|
||||
*/
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.workspace-leaf-content[data-type="git-view"] .button-border {
|
||||
border: 2px solid var(--interactive-accent);
|
||||
border-radius: var(--radius-s);
|
||||
@@ -108,7 +99,7 @@
|
||||
display: flex;
|
||||
}
|
||||
.git-tools .buttons > * {
|
||||
padding: 0 0;
|
||||
padding: 0;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@@ -175,7 +166,7 @@ which itself is adapted from the diff2html library with the following original l
|
||||
--git-change-bg: #ffd55840;
|
||||
--git-selected: #3572b0;
|
||||
|
||||
--git-delete: #c33;
|
||||
--git-delete: #cc3333;
|
||||
--git-insert: #399839;
|
||||
--git-change: #d0b44c;
|
||||
--git-move: #3572b0;
|
||||
@@ -538,13 +529,24 @@ which itself is adapted from the diff2html library with the following original l
|
||||
.d2h-diff-tbody {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* My additions */
|
||||
.cm-merge-revert {
|
||||
width: 4em;
|
||||
}
|
||||
/* Ensure that merge revert markers are positioned correctly */
|
||||
.cm-merge-revert > * {
|
||||
position: absolute;
|
||||
background-color: var(--background-secondary);
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
/* ====================== Line Authoring Information ====================== */
|
||||
|
||||
.cm-gutterElement.obs-git-blame-gutter {
|
||||
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
|
||||
border-width: 0px 2px 0.2px 2px;
|
||||
border-width: 0px 2px 0.2px;
|
||||
border-style: solid;
|
||||
border-color: var(--background-secondary);
|
||||
background-color: var(--background-secondary);
|
||||
@@ -557,7 +559,7 @@ which itself is adapted from the diff2html library with the following original l
|
||||
font-family: monospace;
|
||||
height: 100%; /* ensure, that age-based background color occupies entire parent */
|
||||
text-align: right;
|
||||
padding: 0px 6px 0px 6px;
|
||||
padding: 0px 6px;
|
||||
white-space: pre; /* Keep spaces and do not collapse them. */
|
||||
}
|
||||
|
||||
@@ -602,6 +604,11 @@ which itself is adapted from the diff2html library with the following original l
|
||||
.git-signs-gutter {
|
||||
.cm-gutterElement {
|
||||
display: grid;
|
||||
|
||||
/* Needed to align the sign properly for different line heigts. Such as
|
||||
* when having a heading or list item.
|
||||
*/
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -669,18 +676,6 @@ div:hover > .git-gutter-marker.git-changedelete {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.git-diff {
|
||||
.cm-merge-revert {
|
||||
width: 4em;
|
||||
}
|
||||
/* Ensure that merge revert markers are positioned correctly */
|
||||
.cm-merge-revert > * {
|
||||
position: absolute;
|
||||
background-color: var(--background-secondary);
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
|
||||
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
|
||||
margin-inline-end: 0;
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "obsidian-hider",
|
||||
"name": "Hider",
|
||||
"version": "1.6.1",
|
||||
"version": "1.6.2",
|
||||
"minAppVersion": "1.11.1",
|
||||
"description": "Hide UI elements such as tooltips, status, titlebar and more",
|
||||
"description": "Hide UI elements such as tooltips, status, titlebar and more.",
|
||||
"author": "@kepano",
|
||||
"authorUrl": "https://www.twitter.com/kepano",
|
||||
"fundingUrl": "https://www.buymeacoffee.com/kepano",
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
"snippetVariables": "{\n\t\"${GREEK}\": \"alpha|beta|gamma|Gamma|delta|Delta|epsilon|varepsilon|zeta|eta|theta|vartheta|Theta|iota|kappa|lambda|Lambda|mu|nu|xi|omicron|pi|rho|varrho|sigma|Sigma|tau|upsilon|Upsilon|phi|varphi|Phi|chi|psi|omega|Omega\",\n\t\"${SYMBOL}\": \"parallel|perp|partial|nabla|hbar|ell|infty|oplus|ominus|otimes|oslash|square|star|dagger|vee|wedge|subseteq|subset|supseteq|supset|emptyset|exists|nexists|forall|implies|impliedby|iff|setminus|neg|lor|land|bigcup|bigcap|cdot|times|simeq|approx\",\n\t\"${MORE_SYMBOLS}\": \"leq|geq|neq|gg|ll|equiv|sim|propto|rightarrow|leftarrow|Rightarrow|Leftarrow|leftrightarrow|to|mapsto|cap|cup|in|sum|prod|exp|ln|log|det|dots|vdots|ddots|pm|mp|int|iint|iiint|oint\"\n}\n",
|
||||
"snippetsEnabled": true,
|
||||
"snippetsTrigger": "Tab",
|
||||
"snippetNextTabstopTrigger": "Shift-RightArrow",
|
||||
"snippetNextTabstopTrigger": "Tab",
|
||||
"snippetPreviousTabstopTrigger": "Shift-Tab",
|
||||
"suppressSnippetTriggerOnIME": true,
|
||||
"suppressIMEWarning": false,
|
||||
|
||||
+4
-4
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-markmind",
|
||||
"name": "Markmind",
|
||||
"version": "3.4.8",
|
||||
"version": "3.5.3",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "This is a mindmap , outline tool for obsidian.",
|
||||
"author": "Mark",
|
||||
|
||||
+21
-2
@@ -669,7 +669,7 @@ span.mm-sline .line {
|
||||
outline: 0
|
||||
}
|
||||
|
||||
.theme-dark textarea {
|
||||
.theme-dark .mm-note textarea {
|
||||
color: #666
|
||||
}
|
||||
|
||||
@@ -3774,6 +3774,16 @@ span.mm-sline .line {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.mm-ppt-page .mm-ppt-resize {
|
||||
position: absolute;
|
||||
right: 6px;
|
||||
display: block;
|
||||
|
||||
bottom: 0px;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mm-node-embed {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -3784,7 +3794,7 @@ span.mm-sline .line {
|
||||
z-index: 1000;
|
||||
height: 32px;
|
||||
left: 10px;
|
||||
bottom: 40px;
|
||||
bottom: 100px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
@@ -3823,4 +3833,13 @@ span.mm-sline .line {
|
||||
|
||||
.mm-node-size .mm-node-icon {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mm-assist-close {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
+71
-46
File diff suppressed because one or more lines are too long
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "obsidian-meta-bind-plugin",
|
||||
"name": "Meta Bind",
|
||||
"version": "1.4.8",
|
||||
"minAppVersion": "1.4.0",
|
||||
"version": "1.4.15",
|
||||
"minAppVersion": "1.10.0",
|
||||
"description": "Make your notes interactive with inline input fields, metadata displays, and buttons.",
|
||||
"author": "Moritz Jung",
|
||||
"authorUrl": "https://www.moritzjung.dev/",
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-minimal-settings",
|
||||
"name": "Minimal Theme Settings",
|
||||
"version": "8.2.1",
|
||||
"version": "8.2.3",
|
||||
"minAppVersion": "1.11.1",
|
||||
"description": "Change the colors, fonts and features of Minimal Theme.",
|
||||
"author": "@kepano",
|
||||
|
||||
+37
-18
@@ -2751,7 +2751,7 @@ class VimOBehaviourOverride {
|
||||
this.operationPerformer = operationPerformer;
|
||||
this.inited = false;
|
||||
this.handleSettingsChange = () => {
|
||||
if (!this.settings.overrideVimOBehaviour) {
|
||||
if (this.inited || !this.settings.overrideVimOBehaviour) {
|
||||
return;
|
||||
}
|
||||
if (!window.CodeMirrorAdapter || !window.CodeMirrorAdapter.Vim) {
|
||||
@@ -2765,28 +2765,22 @@ class VimOBehaviourOverride {
|
||||
const operationPerformer = this.operationPerformer;
|
||||
const settings = this.settings;
|
||||
vim.defineAction("insertLineAfterBullet", (cm, operatorArgs) => {
|
||||
// Move the cursor to the end of the line
|
||||
vim.handleEx(cm, "normal! A");
|
||||
if (!settings.overrideVimOBehaviour) {
|
||||
if (operatorArgs.after) {
|
||||
vim.handleEx(cm, "normal! o");
|
||||
}
|
||||
else {
|
||||
vim.handleEx(cm, "normal! O");
|
||||
}
|
||||
const view = plugin.app.workspace.getActiveViewOfType(obsidian.MarkdownView);
|
||||
const obsidianEditor = view === null || view === void 0 ? void 0 : view.editor;
|
||||
if (!obsidianEditor) {
|
||||
vim.enterInsertMode(cm);
|
||||
return;
|
||||
}
|
||||
const view = plugin.app.workspace.getActiveViewOfType(obsidian.MarkdownView);
|
||||
const editor = new MyEditor(view.editor);
|
||||
this.moveCursorToLineEnd(obsidianEditor);
|
||||
if (!settings.overrideVimOBehaviour) {
|
||||
this.openPlainLine(obsidianEditor, operatorArgs.after);
|
||||
vim.enterInsertMode(cm);
|
||||
return;
|
||||
}
|
||||
const editor = new MyEditor(obsidianEditor);
|
||||
const root = parser.parse(editor);
|
||||
if (!root) {
|
||||
if (operatorArgs.after) {
|
||||
vim.handleEx(cm, "normal! o");
|
||||
}
|
||||
else {
|
||||
vim.handleEx(cm, "normal! O");
|
||||
}
|
||||
this.openPlainLine(obsidianEditor, operatorArgs.after);
|
||||
vim.enterInsertMode(cm);
|
||||
return;
|
||||
}
|
||||
@@ -2823,6 +2817,31 @@ class VimOBehaviourOverride {
|
||||
this.handleSettingsChange();
|
||||
});
|
||||
}
|
||||
moveCursorToLineEnd(editor) {
|
||||
const cursor = editor.getCursor();
|
||||
editor.setCursor({
|
||||
line: cursor.line,
|
||||
ch: editor.getLine(cursor.line).length,
|
||||
});
|
||||
}
|
||||
getLineIndent(line) {
|
||||
return line.match(/^[ \t]*/)[0];
|
||||
}
|
||||
openPlainLine(editor, after) {
|
||||
const cursor = editor.getCursor();
|
||||
const line = editor.getLine(cursor.line);
|
||||
const indent = this.getLineIndent(line);
|
||||
if (after) {
|
||||
const insertAt = { line: cursor.line, ch: line.length };
|
||||
editor.replaceRange(`\n${indent}`, insertAt, insertAt);
|
||||
editor.setCursor({ line: cursor.line + 1, ch: indent.length });
|
||||
}
|
||||
else {
|
||||
const insertAt = { line: cursor.line, ch: 0 };
|
||||
editor.replaceRange(`${indent}\n`, insertAt, insertAt);
|
||||
editor.setCursor({ line: cursor.line, ch: indent.length });
|
||||
}
|
||||
}
|
||||
unload() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (!this.inited) {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-outliner",
|
||||
"name": "Outliner",
|
||||
"version": "4.10.0",
|
||||
"version": "4.10.1",
|
||||
"minAppVersion": "1.11.7",
|
||||
"description": "Work with your lists like in Workflowy or RoamResearch.",
|
||||
"author": "Viacheslav Slinko",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Ma bibliothèque",
|
||||
"lastUpdate": 1779466877485
|
||||
"lastUpdate": 1781364297419
|
||||
}
|
||||
],
|
||||
"renderCitations": true,
|
||||
|
||||
+805
-304
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "obsidian-share-as-gist",
|
||||
"name": "Share as Gist",
|
||||
"version": "1.9.0",
|
||||
"minAppVersion": "0.9.7",
|
||||
"description": "Shares an Obsidian note as a GitHub.com gist",
|
||||
"version": "2.0.1",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Shares a note as a GitHub.com gist.",
|
||||
"author": "Tim Rogers",
|
||||
"authorUrl": "https://github.com/timrogers",
|
||||
"isDesktopOnly": false
|
||||
|
||||
+58
-12
@@ -1,49 +1,95 @@
|
||||
{
|
||||
"settings": {
|
||||
"flashcardEasyText": "Easy",
|
||||
"flashcardGoodText": "Good",
|
||||
"flashcardHardText": "Hard",
|
||||
"flashcardTags": [
|
||||
"#flashcards"
|
||||
],
|
||||
"flashcardTagsToIgnore": [],
|
||||
"convertFoldersToDecks": false,
|
||||
"cardCommentOnSameLine": false,
|
||||
"burySiblingCards": false,
|
||||
"showContextInCards": true,
|
||||
"flashcardHeightPercentage": 100,
|
||||
"flashcardWidthPercentage": 100,
|
||||
"randomizeCardOrder": null,
|
||||
"flashcardCardOrder": "DueFirstRandom",
|
||||
"flashcardDeckOrder": "PrevDeckComplete_Sequential",
|
||||
"convertClozePatternsToInputs": false,
|
||||
"convertHighlightsToClozes": true,
|
||||
"convertBoldTextToClozes": false,
|
||||
"convertCurlyBracketsToClozes": false,
|
||||
"clozePatterns": [
|
||||
"==[123;;]answer[;;hint]=="
|
||||
],
|
||||
"singleLineCardSeparator": "::",
|
||||
"singleLineReversedCardSeparator": ":::",
|
||||
"multilineCardSeparator": "?",
|
||||
"multilineReversedCardSeparator": "??",
|
||||
"editLaterTag": "#edit-later",
|
||||
"multilineCardEndMarker": "",
|
||||
"enableReviewReminders": false,
|
||||
"reviewReminderIntervalMinutes": 5,
|
||||
"reviewReminderCheckOnStartup": false,
|
||||
"reviewReminderMessage": "",
|
||||
"reviewReminderAutoOpen": true,
|
||||
"reviewReminderShowNotice": true,
|
||||
"reviewReminderPlaySound": true,
|
||||
"reviewReminderBounceDock": true,
|
||||
"randomizeCardOrder": null,
|
||||
"enableNoteReviewPaneOnStartup": true,
|
||||
"tagsToReview": [
|
||||
"#review"
|
||||
],
|
||||
"noteTagsToIgnore": [],
|
||||
"noteFoldersToIgnore": [],
|
||||
"openRandomNote": false,
|
||||
"autoNextNote": true,
|
||||
"disableFileMenuReviewOptions": false,
|
||||
"showFileMenuReviewOptions": true,
|
||||
"deleteTagsOnSchedulingDataDeletion": false,
|
||||
"maxNDaysNotesReviewQueue": 365,
|
||||
"showRibbonIcon": true,
|
||||
"showStatusBar": true,
|
||||
"showCardStatusBarItem": true,
|
||||
"showNoteStatusBarItem": true,
|
||||
"showUpdateAvailableStatusBarItem": true,
|
||||
"initiallyExpandAllSubdecksInTree": true,
|
||||
"showContextInCards": true,
|
||||
"showIntervalInReviewButtons": true,
|
||||
"flashcardHeightPercentage": 100,
|
||||
"flashcardWidthPercentage": 100,
|
||||
"flashcardHeightPercentageMobile": 100,
|
||||
"flashcardWidthPercentageMobile": 100,
|
||||
"flashcardAgainText": "Again",
|
||||
"flashcardEasyText": "Easy",
|
||||
"flashcardGoodText": "Good",
|
||||
"flashcardHardText": "Hard",
|
||||
"reviewButtonDelay": 0,
|
||||
"showDeleteButtonInCardView": false,
|
||||
"showDeleteButtonInFileMenu": false,
|
||||
"openViewInNewTab": false,
|
||||
"openViewInNewTabMobile": false,
|
||||
"useCustomHotkeys": false,
|
||||
"useCalloutsForSchedulingComments": false,
|
||||
"algorithm": "SM-2-OSR",
|
||||
"baseEase": 250,
|
||||
"lapsesIntervalChange": 0.5,
|
||||
"easyBonus": 1.3,
|
||||
"loadBalance": true,
|
||||
"maximumInterval": 3652,
|
||||
"maxLinkFactor": 1,
|
||||
"fsrsDesiredRetention": 0.9,
|
||||
"startOfDay": "00:00:00",
|
||||
"dataStore": "NOTES",
|
||||
"cardCommentOnSameLine": false,
|
||||
"scheduleDataVaultLocation": "Spaced Repetition",
|
||||
"showSchedulingDebugMessages": false,
|
||||
"showParserDebugMessages": false,
|
||||
"preferredDateFormatForNoteReviewQueue": "MMM DD YYYY",
|
||||
"preferredLocale": "-",
|
||||
"showDebugMessages": false,
|
||||
"showFileNameInFileLink": false,
|
||||
"singlelineCardSeparator": "::",
|
||||
"singlelineReversedCardSeparator": ":::"
|
||||
},
|
||||
"buryDate": "2024-09-24",
|
||||
"buryDate": "2026-06-13",
|
||||
"buryList": [],
|
||||
"historyDeck": ""
|
||||
"historyDeck": "",
|
||||
"scheduleData": {
|
||||
"version": 1,
|
||||
"noteSchedules": {},
|
||||
"cardSchedules": {}
|
||||
}
|
||||
}
|
||||
+11482
-6105
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "obsidian-spaced-repetition",
|
||||
"name": "Spaced Repetition",
|
||||
"version": "1.13.9",
|
||||
"version": "1.15.3",
|
||||
"minAppVersion": "1.2.8",
|
||||
"description": "Fight the forgetting curve by reviewing flashcards & entire notes.",
|
||||
"description": "Fight the forgetting curve by reviewing flashcards & entire notes using spaced repetition. Organize your flashcards into decks and learn only the cards you need to recall.",
|
||||
"author": "Stephen Mwangi",
|
||||
"authorUrl": "https://github.com/st3v3nmw",
|
||||
"helpUrl": "https://stephenmwangi.com/obsidian-spaced-repetition/",
|
||||
|
||||
+603
-429
File diff suppressed because it is too large
Load Diff
+144
-127
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "7.23.1",
|
||||
"minAppVersion": "1.4.0",
|
||||
"version": "8.1.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/",
|
||||
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+32
-32
File diff suppressed because one or more lines are too long
+3
-3
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "obsidian42-brat",
|
||||
"name": "BRAT",
|
||||
"version": "2.0.4",
|
||||
"version": "2.0.8",
|
||||
"minAppVersion": "1.11.4",
|
||||
"description": "Easily install a beta version of a plugin for testing.",
|
||||
"description": "Easily install plugin beta versions for testing.",
|
||||
"author": "TfTHacker",
|
||||
"authorUrl": "https://github.com/TfTHacker/obsidian42-brat",
|
||||
"authorUrl": "https://github.com/TfTHacker",
|
||||
"helpUrl": "https://tfthacker.com/BRAT",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
|
||||
+32
-2
@@ -111,12 +111,12 @@
|
||||
|
||||
/* Hide filtered plugin items */
|
||||
.brat-plugin-item[hidden] {
|
||||
display: none !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide filtered theme items */
|
||||
.brat-theme-item[hidden] {
|
||||
display: none !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Filter and button layout */
|
||||
@@ -150,3 +150,33 @@
|
||||
.brat-filter-and-button .setting-item-control {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.brat-full-width-input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.brat-modal-divider {
|
||||
border-top: 1px solid var(--background-modifier-border);
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.brat-credits {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.brat-promotional-links {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.brat-promotional-links-modal {
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
.brat-promotional-links-settings {
|
||||
padding: 15px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.brat-promotional-links-coffee {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
Vendored
+135
-136
File diff suppressed because one or more lines are too long
+3
-3
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "omnisearch",
|
||||
"name": "Omnisearch",
|
||||
"version": "1.28.2",
|
||||
"version": "1.29.3",
|
||||
"minAppVersion": "1.7.2",
|
||||
"description": "A search engine that just works",
|
||||
"description": "A search engine that just works.",
|
||||
"author": "Simon Cambier",
|
||||
"authorUrl": "https://github.com/scambier/obsidian-omnisearch",
|
||||
"authorUrl": "https://scambier.xyz",
|
||||
"fundingUrl": {
|
||||
"Github": "https://github.com/sponsors/scambier",
|
||||
"Ko-fi": "https://ko-fi.com/scambier"
|
||||
|
||||
+16
-1
@@ -63,7 +63,6 @@
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
|
||||
.omnisearch-result__image-container {
|
||||
flex-basis: 20%;
|
||||
text-align: end;
|
||||
@@ -133,3 +132,19 @@
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.omnisearch-result-highlight .cm-content ::selection,
|
||||
.omnisearch-result-highlight .cm-line::selection {
|
||||
background-color: var(
|
||||
--omnisearch-highlight-color,
|
||||
rgba(222, 183, 110, 1)
|
||||
) !important;
|
||||
color: var(--omnisearch-highlight-text-color, black) !important;
|
||||
}
|
||||
|
||||
.omnisearch-result-highlight .cm-selectionLayer .cm-selectionBackground {
|
||||
background-color: var(
|
||||
--omnisearch-highlight-color,
|
||||
rgba(222, 183, 110, 1)
|
||||
) !important;
|
||||
}
|
||||
|
||||
+3
-229
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "persistent-graph",
|
||||
"name": "Persistent Graph",
|
||||
"version": "0.1.5",
|
||||
"version": "0.3.2",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "Adds commands to save and restore the positions of nodes on the global graph view",
|
||||
"author": "Sanqui",
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
/* This file left intentionally blank */
|
||||
Vendored
+51
-51
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "podnotes",
|
||||
"name": "PodNotes",
|
||||
"version": "2.15.1",
|
||||
"version": "2.16.0",
|
||||
"minAppVersion": "0.15.9",
|
||||
"description": "Helps you write notes on podcasts.",
|
||||
"author": "Christian B. B. Houmann",
|
||||
|
||||
+1754
-102
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "qmd-as-md-obsidian",
|
||||
"version": "0.0.3",
|
||||
"description": "This plugin provides an initial support for viewing files with .qmd extension. QMD files contain a combination of markdown and executable code cells and are a format supported by Quarto open source publishing system.",
|
||||
"version": "0.4.3",
|
||||
"description": "View, edit, preview and render Quarto (.qmd) files. Quarto combines Markdown with executable code cells.",
|
||||
"name": "qmd as md",
|
||||
"author": "Daniel Borek",
|
||||
"authorUrl": "https://github.com/danieltomasz",
|
||||
"isDesktopOnly": false,
|
||||
"minAppVersion": "0.10.12"
|
||||
"isDesktopOnly": true,
|
||||
"minAppVersion": "1.8.0"
|
||||
}
|
||||
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
/* Quarto outline sidebar view (QmdOutlineView) */
|
||||
|
||||
.qmd-outline {
|
||||
padding: var(--size-4-2) var(--size-4-1);
|
||||
}
|
||||
|
||||
.qmd-outline-empty {
|
||||
padding: var(--size-4-2) var(--size-4-3);
|
||||
color: var(--text-muted);
|
||||
font-size: var(--font-ui-small);
|
||||
}
|
||||
|
||||
.qmd-outline-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.qmd-outline-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--size-2-1);
|
||||
padding: var(--size-2-1) var(--size-4-3);
|
||||
border-radius: var(--radius-s);
|
||||
color: var(--text-muted);
|
||||
font-size: var(--font-ui-small);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Chevron slot — always present so leaf and parent headings align. */
|
||||
.qmd-outline-toggle {
|
||||
flex: 0 0 auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: var(--size-4-4);
|
||||
height: var(--size-4-4);
|
||||
color: var(--text-faint);
|
||||
transition: transform 100ms ease-in-out;
|
||||
}
|
||||
|
||||
.qmd-outline-toggle .svg-icon {
|
||||
width: var(--icon-xs, 14px);
|
||||
height: var(--icon-xs, 14px);
|
||||
}
|
||||
|
||||
/* Collapsed: chevron points right, sub-tree hidden. */
|
||||
.qmd-outline-item.is-collapsed .qmd-outline-toggle {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.qmd-outline-children.is-collapsed {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.qmd-outline-item-text {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.qmd-outline-item:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.qmd-outline-item:focus-visible {
|
||||
outline: 2px solid var(--interactive-accent);
|
||||
outline-offset: -2px;
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Indentation by heading level — driven by the data-level attribute so the
|
||||
view itself sets no inline styles. Each level adds one --size-4-4 step. */
|
||||
.qmd-outline-item[data-level='1'] { padding-left: var(--size-4-3); }
|
||||
.qmd-outline-item[data-level='2'] { padding-left: calc(var(--size-4-3) + var(--size-4-4)); }
|
||||
.qmd-outline-item[data-level='3'] { padding-left: calc(var(--size-4-3) + var(--size-4-4) * 2); }
|
||||
.qmd-outline-item[data-level='4'] { padding-left: calc(var(--size-4-3) + var(--size-4-4) * 3); }
|
||||
.qmd-outline-item[data-level='5'] { padding-left: calc(var(--size-4-3) + var(--size-4-4) * 4); }
|
||||
.qmd-outline-item[data-level='6'] { padding-left: calc(var(--size-4-3) + var(--size-4-4) * 5); }
|
||||
|
||||
/* Code editor views (QmdCodeFileView — YAML and Lua files) */
|
||||
|
||||
.qmd-code-view {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
background: var(--background-primary);
|
||||
}
|
||||
|
||||
.qmd-code-view .cm-editor {
|
||||
height: 100%;
|
||||
background: var(--background-primary);
|
||||
color: var(--text-normal);
|
||||
font-family: var(--font-monospace);
|
||||
font-size: var(--font-ui-small);
|
||||
line-height: var(--line-height-tight);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.qmd-code-view .cm-scroller {
|
||||
font-family: var(--font-monospace);
|
||||
font-size: var(--font-ui-small);
|
||||
line-height: var(--line-height-tight);
|
||||
}
|
||||
|
||||
.qmd-code-view .cm-content {
|
||||
min-height: 100%;
|
||||
padding: var(--size-4-4);
|
||||
caret-color: var(--text-normal);
|
||||
tab-size: 2;
|
||||
}
|
||||
|
||||
.qmd-code-view .cm-focused {
|
||||
box-shadow: inset 0 0 0 2px var(--interactive-accent);
|
||||
}
|
||||
|
||||
.qmd-code-view.qmd-code-view .cm-editor .cm-selectionBackground {
|
||||
background: var(--text-selection);
|
||||
}
|
||||
|
||||
.qmd-yaml-key {
|
||||
color: var(--text-accent);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.qmd-yaml-colon,
|
||||
.qmd-yaml-list-marker,
|
||||
.qmd-yaml-doc-marker {
|
||||
color: var(--text-faint);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.qmd-yaml-string {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.qmd-yaml-number,
|
||||
.qmd-yaml-boolean,
|
||||
.qmd-yaml-anchor,
|
||||
.qmd-yaml-block,
|
||||
.qmd-yaml-quarto-format {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
.qmd-yaml-comment {
|
||||
color: var(--text-muted);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.qmd-yaml-scalar {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Lua editor view tokens */
|
||||
|
||||
.qmd-lua-keyword {
|
||||
color: var(--text-accent);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.qmd-lua-string {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
.qmd-lua-number {
|
||||
color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
.qmd-lua-comment {
|
||||
color: var(--text-muted);
|
||||
font-style: italic;
|
||||
}
|
||||
Vendored
+30
-15
@@ -186,13 +186,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -219,13 +221,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -252,13 +256,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -285,13 +291,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -318,13 +326,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -351,13 +361,15 @@
|
||||
},
|
||||
"openFile": true,
|
||||
"openFileInMode": "default",
|
||||
"setFileExistsBehavior": true,
|
||||
"fileExistsMode": "Increment the file name",
|
||||
"fileOpening": {
|
||||
"location": "tab",
|
||||
"direction": "vertical",
|
||||
"focus": true,
|
||||
"mode": "default"
|
||||
},
|
||||
"fileExistsBehavior": {
|
||||
"kind": "apply",
|
||||
"mode": "increment"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -552,7 +564,7 @@
|
||||
"devMode": false,
|
||||
"templateFolderPath": "templates",
|
||||
"announceUpdates": "all",
|
||||
"version": "2.12.0",
|
||||
"version": "2.12.3",
|
||||
"globalVariables": {},
|
||||
"onePageInputEnabled": false,
|
||||
"disableOnlineFeatures": true,
|
||||
@@ -626,6 +638,9 @@
|
||||
"migrateFileOpeningSettings": true,
|
||||
"setProviderModelDiscoveryMode": true,
|
||||
"backfillFileOpeningDefaults": true,
|
||||
"migrateProviderApiKeysToSecretStorage": true
|
||||
}
|
||||
"migrateProviderApiKeysToSecretStorage": true,
|
||||
"consolidateFileExistsBehavior": true,
|
||||
"repairTemplateFileExistsBehavior": true
|
||||
},
|
||||
"macros": []
|
||||
}
|
||||
Vendored
+68
-80
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "quickadd",
|
||||
"name": "QuickAdd",
|
||||
"version": "2.12.0",
|
||||
"version": "2.12.3",
|
||||
"minAppVersion": "1.11.4",
|
||||
"description": "Quickly add new pages or content to your vault.",
|
||||
"author": "Christian B. B. Houmann",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
-27
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"indentsIfSelection": true,
|
||||
"indentsIfSelectionOnlyForMultipleLines": true,
|
||||
"useSpaces": false,
|
||||
"alignSpaces": true,
|
||||
"useHardSpace": false,
|
||||
"spacesCount": 2,
|
||||
"allowException": false,
|
||||
"exceptionRegex": "^[\\s ]*(-|\\d+\\.)( \\[ \\])?\\s*$",
|
||||
"useAdvancedTables": false,
|
||||
"obsidianTableEditor": true,
|
||||
"useOutlinerBetterTab": true,
|
||||
"hotkey": "Shift-Tab",
|
||||
"language": "auto",
|
||||
"developerMode": false,
|
||||
"enableBracesAutoIndent": true,
|
||||
"braceCodeSetOpen": "[\"\\\\{$\", \"\\\\[$\", \"\\\\($\", \"\\\"$\", \"'$\", \"`$\"]",
|
||||
"braceCodeSetClose": "[\"^\\\\}\", \"^\\\\]\", \"^\\\\)\", \"^\\\"\", \"^'\", \"^`\"]",
|
||||
"braceMarkdownSetOpen": "[\"\\\\{$\", \"\\\\[$\", \"\\\\($\", \"\\\"$\", \"'$\", \"\\\\$\\\\$$\", \"<.+>$\", \"¡$\", \"¿$\"]",
|
||||
"braceMarkdownSetClose": "[\"^\\\\}\", \"^\\\\]\", \"^\\\\)\", \"^\\\"\", \"^'\", \"^\\\\$\\\\$\", \"^<\\\\/\\\\w+>\", \"^!\", \"^?\"]",
|
||||
"indentCharacters": " \t",
|
||||
"activateInCodeBlocks": false,
|
||||
"activateInLists": false,
|
||||
"activateInTables": false,
|
||||
"activateInInlineCode": true,
|
||||
"activateInOthers": false
|
||||
}
|
||||
-694
@@ -1,694 +0,0 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => TabKeyPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_language = require("@codemirror/language");
|
||||
var import_state = require("@codemirror/state");
|
||||
var import_view = require("@codemirror/view");
|
||||
|
||||
// localization.ts
|
||||
var localization = {
|
||||
title: {
|
||||
"en-US": "Obsidian Restore Tab Key Plugin",
|
||||
"zh-CN": "\u9ED1\u66DC\u77F3\u7B14\u8BB0 \u6062\u5FA9\u5236\u8868\u952E\u884C\u4E3A\u63D2\u4EF6",
|
||||
"zh-TW": "\u9ED1\u66DC\u77F3\u7B46\u8A18 \u6062\u5FA9\u5236\u8868\u9375\u884C\u70BA\u63D2\u4EF6"
|
||||
},
|
||||
description: {
|
||||
"en-US": "Restore tab key behavior: tab key inserts a tab, the way it should be.",
|
||||
"zh-CN": "\u56DE\u5FA9 Tab \u952E\u884C\u4E3A\uFF0C\u672C\u8BE5\u5982\u6B64\uFF01",
|
||||
"zh-TW": "\u56DE\u5FA9 Tab \u9375\u884C\u70BA\uFF0C\u672C\u8A72\u5982\u6B64\uFF01"
|
||||
},
|
||||
tabOrSpace: {
|
||||
"en-US": "Tab or Space Settings",
|
||||
"zh-CN": "Tab \u6216\u7A7A\u683C\u8BBE\u5B9A",
|
||||
"zh-TW": "Tab \u6216\u7A7A\u683C\u8A2D\u5B9A"
|
||||
},
|
||||
useSpacesInsteadOfTab: {
|
||||
"en-US": "Use spaces instead of tab",
|
||||
"zh-CN": "\u4EE5\u7A7A\u683C\u53D6\u4EE3 Tab",
|
||||
"zh-TW": "\u4EE5\u7A7A\u683C\u53D6\u4EE3 Tab"
|
||||
},
|
||||
useSpacesInsteadOfTabDesc: {
|
||||
"en-US": "false(default): Insert tab (\\t) when tab key is pressed. true: Insert spaces (\xA0\xA0\xA0\xA0) when tab key is pressed. (configurable)",
|
||||
"zh-CN": "\u5173\u95ED(\u9ED8\u8BA4)\uFF1A\u5728 Tab \u952E\u88AB\u6309\u4E0B\u65F6\u63D2\u5165\u8868\u683C\u7B26\u53F7 (Tab)\uFF1B\u5F00\u542F\uFF1A\u5728 Tab \u952E\u88AB\u6309\u4E0B\u65F6\u63D2\u5165\u7A7A\u767D\u7B26\u53F7\uFF08\u53EF\u4EE5\u81EA\u8BA2\u4E49\uFF09",
|
||||
"zh-TW": "\u95DC\u9589(\u9810\u8A2D)\uFF1A\u5728 Tab \u9375\u88AB\u6309\u4E0B\u6642\u63D2\u5165\u8868\u683C\u7B26\u865F (Tab)\uFF1B\u958B\u555F\uFF1A\u5728 Tab \u9375\u88AB\u6309\u4E0B\u6642\u63D2\u5165\u7A7A\u767D\u7B26\u865F\uFF08\u53EF\u4EE5\u81EA\u8A02\u7FA9\uFF09"
|
||||
},
|
||||
useHardSpaces: {
|
||||
"en-US": "Use hard spaces",
|
||||
"zh-CN": "\u4F7F\u7528\u786C\u7A7A\u683C\u5B57\u5143",
|
||||
"zh-TW": "\u4F7F\u7528\u786C\u7A7A\u683C\u5B57\u5143"
|
||||
},
|
||||
useHardSpacesDesc: {
|
||||
"en-US": `If "Indent using tabs" is false, space will be used to indent. If "Use hard spaces" is off, normal space characters will be used. Notice that with Markdown, repeated normal spaces will be rendered as one. Turn this option on to use hard spaces (U+00A0), which will not be truncated after Markdown render. To indent stuff in the processed Markdown output, move your cursor to the begin and press tab (indenting won't insert hard spaces)`,
|
||||
"zh-CN": "\u5047\u5982\u300C\u4EE5 Tab \u7F29\u8FDB\u300D\u8BBE\u5B9A\u4E3A\u5173\u95ED\uFF0C\u7A7A\u683C\u4F1A\u88AB\u7528\u6765\u7F29\u6392\u3002\u5982\u679C\u300C\u4F7F\u7528\u786C\u7A7A\u683C\u300D\u88AB\u5173\u95ED\uFF0C\u5219\u4F1A\u4F7F\u7528\u6570\u4E2A\u666E\u901A\u7684\u7A7A\u683C\u7B26\u53F7\u3002\u8BF7\u6CE8\u610F\uFF1A\u5728 Markdown \u4E0B\uFF0C\u91CD\u8907\u7684\u7A7A\u683C\u4F1A\u88AB\u6E32\u67D3\u4E3A\u4E00\u4E2A\u3002\u5F00\u542F\u6B64\u9009\u9879\u540E\uFF0C\u786C\u7A7A\u683C (U+00A0) \u5C06\u4F1A\u53D6\u4EE3\u7A7A\u767D\u5B57\u5143\u5F53\u4F5C Tab\uFF0C\u5728\u6E32\u67D3\u540E\u4E0D\u4F1A\u88AB\u5220\u51CF\u3002\u82E5\u8981\u4F7F\u7528\u786C\u7A7A\u683C\u8FDB\u884C\u7F29\u6392\uFF0C\u8BF7\u624B\u52A8\u5C06\u5149\u6807\u79FB\u81F3\u884C\u5934\u5E76\u6309\u4E0B Tab \u952E\uFF08\u7F29\u6392\u4E0D\u4F1A\u4F7F\u7528\u786C\u7A7A\u683C\uFF09",
|
||||
"zh-TW": "\u5047\u5982\u300C\u4EE5 Tab \u7E2E\u6392\u300D\u8A2D\u5B9A\u70BA\u95DC\u9589\uFF0C\u7A7A\u683C\u6703\u88AB\u7528\u4F86\u7E2E\u6392\u3002\u5982\u679C\u300C\u4F7F\u7528\u786C\u7A7A\u683C\u300D\u88AB\u95DC\u9589\uFF0C\u5247\u6703\u4F7F\u7528\u6578\u500B\u666E\u901A\u7684\u7A7A\u683C\u7B26\u865F\u3002\u8ACB\u6CE8\u610F\uFF1A\u5728 Markdown \u4E0B\uFF0C\u91CD\u8907\u7684\u7A7A\u683C\u6703\u88AB\u6E32\u67D3\u70BA\u4E00\u500B\u3002\u958B\u555F\u6B64\u9078\u9805\u5F8C\uFF0C\u786C\u7A7A\u683C (U+00A0) \u5C07\u6703\u53D6\u4EE3\u7A7A\u767D\u5B57\u5143\u7576\u4F5C Tab\uFF0C\u5728\u6E32\u67D3\u5F8C\u4E0D\u6703\u88AB\u522A\u6E1B\u3002\u82E5\u8981\u4F7F\u7528\u786C\u7A7A\u683C\u9032\u884C\u7E2E\u6392\uFF0C\u8ACB\u624B\u52D5\u5C07\u6E38\u6A19\u79FB\u81F3\u884C\u982D\u4E26\u6309\u4E0B Tab \u9375\uFF08\u7E2E\u6392\u4E0D\u6703\u4F7F\u7528\u786C\u7A7A\u683C\uFF09"
|
||||
},
|
||||
spaceCount: {
|
||||
"en-US": "Space count",
|
||||
"zh-CN": "\u7A7A\u683C\u6570\u91CF",
|
||||
"zh-TW": "\u7A7A\u683C\u6578\u91CF"
|
||||
},
|
||||
spaceCountDesc: {
|
||||
"en-US": "The number of spaces or hard spaces inserted when tab key is pressed. default: 4",
|
||||
"zh-CN": "\u4F7F\u7528\u51E0\u4E2A\u7A7A\u683C\u5B57\u7B26\u53D6\u4EE3\u4E00\u4E2A Tab \u5B57\u7B26\uFF1F\u9ED8\u8BA4\uFF1A4\u4E2A",
|
||||
"zh-TW": "\u4F7F\u7528\u5E7E\u500B\u7A7A\u683C\u7B26\u865F\u53D6\u4EE3\u4E00\u500B Tab \u5B57\u5143\uFF1F\u9810\u8A2D\uFF1A4\u500B"
|
||||
},
|
||||
alignSpaces: {
|
||||
"en-US": "Align spaces (just like how tabs behave)",
|
||||
"zh-CN": "\u5BF9\u9F50\u7A7A\u683C",
|
||||
"zh-TW": "\u5C0D\u9F4A\u7A7A\u683C"
|
||||
},
|
||||
alignSpacesDesc: {
|
||||
"en-US": 'At space count of 4, pressing tab after "abc" inserts one space, "abcde" inserts 3, so the end position after pressing tab is always an integer multiple of the space count.',
|
||||
"zh-CN": '\u5047\u8BBE\u300C\u7A7A\u683C\u6570\u91CF\u300D\u8BBE\u4E3A 4\uFF0C\u5219\u5728"abc"\u6700\u540E\u6309\u4E0B Tab \u952E\u4F1A\u63D2\u5165\u4E00\u4E2A\u7A7A\u767D\uFF0C"abcde"\u5219\u4E3A\u4E09\u4E2A\uFF0C\u4F7F\u5F97\u6309\u4E0B Tab \u63D2\u5165\u7A7A\u683C\u540E\u7684\u5149\u6807\u4F4D\u7F6E\u4E3A\u7A7A\u683C\u6570\u91CF\u7684\u6574\u6570\u500D',
|
||||
"zh-TW": '\u5047\u8A2D\u300C\u7A7A\u683C\u6578\u91CF\u300D\u8A2D\u70BA 4\uFF0C\u5247\u5728"abc"\u6700\u5F8C\u6309\u4E0B Tab \u9375\u6703\u63D2\u5165\u4E00\u500B\u7A7A\u767D\uFF0C"abcde"\u5247\u70BA\u4E09\u500B\uFF0C\u4F7F\u5F97\u6309\u4E0B Tab \u63D2\u5165\u7A7A\u683C\u5F8C\u7684\u6E38\u6A19\u4F4D\u7F6E\u70BA\u7A7A\u683C\u6578\u91CF\u7684\u6574\u6578\u500D'
|
||||
},
|
||||
tabKeyBehavior: {
|
||||
"en-US": "Tab Key Behavior",
|
||||
"zh-CN": "Tab \u952E\u884C\u4E3A",
|
||||
"zh-TW": "Tab \u9375\u884C\u70BA"
|
||||
},
|
||||
activateIn: {
|
||||
"en-US": "Activate plugin in Markdown environment",
|
||||
"zh-CN": "\u5728 Markdown \u73AF\u5883\u4E2D\u542F\u7528\u63D2\u4EF6",
|
||||
"zh-TW": "\u5728 Markdown \u74B0\u5883\u4E2D\u555F\u7528\u63D2\u4EF6"
|
||||
},
|
||||
activateInDesc: {
|
||||
"en-US": "On: Insert tab character. Off: Indent, or next cell for tables",
|
||||
"zh-CN": "\u5F00\u542F\uFF1A\u63D2\u5165 Tab \u5B57\u7B26\u3002\u5173\u95ED\uFF1A\u7F29\u6392\uFF0C\u6216\u8005\u5728\u8868\u683C\u4E2D\u4E3A\u79FB\u81F3\u4E0B\u4E00\u683C",
|
||||
"zh-TW": "\u958B\u555F\uFF1A\u63D2\u5165 Tab \u5B57\u5143\u3002\u95DC\u9589\uFF1A\u7E2E\u6392\uFF0C\u6216\u8005\u5728\u8868\u683C\u4E2D\u70BA\u79FB\u81F3\u4E0B\u4E00\u683C"
|
||||
},
|
||||
activateInCodeBlocks: {
|
||||
"en-US": "Code blocks",
|
||||
"zh-CN": "\u4EE3\u7801\u533A\u5757",
|
||||
"zh-TW": "\u7A0B\u5F0F\u78BC\u5340\u584A"
|
||||
},
|
||||
activateInLists: {
|
||||
"en-US": "Lists",
|
||||
"zh-CN": "\u5217\u8868",
|
||||
"zh-TW": "\u5217\u8868"
|
||||
},
|
||||
activateInTables: {
|
||||
"en-US": "Tables",
|
||||
"zh-CN": "\u8868\u683C",
|
||||
"zh-TW": "\u8868\u683C"
|
||||
},
|
||||
activateInInlineCode: {
|
||||
"en-US": "Inline code / Indented code",
|
||||
"zh-CN": "\u884C\u5167\u4EE3\u7801\uFF08inline code\uFF09",
|
||||
"zh-TW": "\u884C\u5167\u7A0B\u5F0F\u78BC\uFF08inline code\uFF09"
|
||||
},
|
||||
activateInOthers: {
|
||||
"en-US": "Others",
|
||||
"zh-CN": "\u5176\u4ED6",
|
||||
"zh-TW": "\u5176\u4ED6"
|
||||
},
|
||||
indentWhenSelectionNotEmpty: {
|
||||
"en-US": "Indents when selection is not empty",
|
||||
"zh-CN": "\u5728\u6709\u6587\u5B57\u88AB\u9009\u53D6\u65F6\u9032\u884C\u7F29\u6392",
|
||||
"zh-TW": "\u5728\u6709\u6587\u5B57\u88AB\u9078\u53D6\u6642\u9032\u884C\u7E2E\u6392"
|
||||
},
|
||||
indentWhenSelectionNotEmptyDesc: {
|
||||
"en-US": "true(default): Select some text and press tab key will indent the selected lines. Same behavior as most IDEs. \nfalse: Selection will be replaced with one tab",
|
||||
"zh-CN": "\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\uFF1A\u9009\u53D6/\u53CD\u767D\u4E00\u4E9B\u6587\u5B57\u540E\u6309\u4E0B Tab \u952E\u4F1A\u7F29\u8FDB\u8BE5\u51E0\u884C\u6587\u5B57\u3002\u6B64\u884C\u4E3A\u548C\u591A\u6570 IDE \u76F8\u540C\uFF1B\u5173\u95ED\uFF1A\u9009\u53D6\u7684\u6587\u5B57\u4F1A\u88AB\u53D6\u4EE3\u4E3A\u4E00\u4E2A Tab",
|
||||
"zh-TW": "\u958B\u555F\uFF08\u9810\u8A2D\uFF09\uFF1A\u9078\u53D6/\u53CD\u767D\u4E00\u4E9B\u6587\u5B57\u5F8C\u6309\u4E0B Tab \u9375\u6703\u7E2E\u6392\u8A72\u5E7E\u884C\u6587\u5B57\u3002\u6B64\u884C\u70BA\u548C\u591A\u6578 IDE \u76F8\u540C\uFF1B\u95DC\u9589\uFF1A\u9078\u53D6\u7684\u6587\u5B57\u6703\u88AB\u53D6\u4EE3\u70BA\u4E00\u500B Tab"
|
||||
},
|
||||
indentOnlySelectionMultipleLine: {
|
||||
"en-US": "Indents only when selection contains multiple lines",
|
||||
"zh-CN": "\u4EC5\u5728\u9009\u53D6\u591A\u884C\u65F6\u8FDB\u884C\u7F29\u8FDB",
|
||||
"zh-TW": "\u50C5\u5728\u9078\u53D6\u591A\u884C\u6642\u9032\u884C\u7E2E\u6392"
|
||||
},
|
||||
indentOnlySelectionMultipleLineDesc: {
|
||||
"en-US": "true(default): If the selection lies within one line, a tab (or spaces) will replace the selection instead",
|
||||
"zh-CN": "\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\uFF1A\u5982\u679C\u4EC5\u6709\u4E00\u884C\u6587\u5B57\u88AB\u9009\u53D6\uFF0C\u5219\u9009\u53D6\u7684\u6587\u5B57\u4F1A\u88AB\u53D6\u4EE3\u4E3A\u4E00\u4E2A Tab",
|
||||
"zh-TW": "\u958B\u555F\uFF08\u9810\u8A2D\uFF09\uFF1A\u5982\u679C\u50C5\u6709\u4E00\u884C\u6587\u5B57\u88AB\u9078\u53D6\uFF0C\u5247\u9078\u53D6\u7684\u6587\u5B57\u6703\u88AB\u53D6\u4EE3\u70BA\u4E00\u500B Tab"
|
||||
},
|
||||
allowException: {
|
||||
"en-US": "Allow exceptions for indenting",
|
||||
"zh-CN": "\u5141\u8BB8\u5BF9\u7F29\u8FDB\u8FDB\u884C\u4F8B\u5916\u5904\u7406",
|
||||
"zh-TW": "\u5C0D\u7E2E\u6392\u9032\u884C\u4F8B\u5916\u8655\u7406"
|
||||
},
|
||||
allowExceptionDesc: {
|
||||
"en-US": "Indent line even when the selection is empty when the line matches the regex (For example, when cursor is on an empty list bullet)",
|
||||
"zh-CN": "\u82E5\u5149\u6807\u6240\u5728\u7684\u90A3\u884C\u5339\u914D\u4EE5\u4E0B\u8868\u8FBE\u5F0F\u65F6\uFF0C\u4ECD\u7136\u8FDB\u884C\u7F29\u8FDB\uFF08\u5982\u8BE5\u884C\u4E3A\u7A7A\u767D\u7684\u6E05\u5355\u5217\u8868\uFF09",
|
||||
"zh-TW": "\u82E5\u6E38\u6A19\u6240\u5728\u7684\u90A3\u884C\u7B26\u5408\u4EE5\u4E0B\u8868\u9054\u5F0F\u6642\uFF0C\u4ECD\u7136\u9032\u884C\u7E2E\u6392\uFF08\u5982\u8A72\u884C\u70BA\u7A7A\u767D\u7684\u6E05\u55AE\u5217\u8868\uFF09"
|
||||
},
|
||||
exceptionRegex: {
|
||||
"en-US": "Exception regex",
|
||||
"zh-CN": "\u4F8B\u5916\u7684\u6B63\u5219\u8868\u8FBE\u5F0F",
|
||||
"zh-TW": "\u4F8B\u5916\u7684\u6B63\u898F\u8868\u9054\u5F0F"
|
||||
},
|
||||
exceptionRegexDesc: {
|
||||
"en-US": "default: Indents regardless in empty list entries (zero or more whitespaces, followed by - or number. then optionally a checkbox and then a space). Remove the trailing $ to enable indentation in non-empty lists",
|
||||
"zh-CN": "\u9ED8\u8BA4\uFF1A\u5728\u8BE5\u884C\u4E3A\u6E05\u5355\u5217\u8868\u9879\u76EE\u65F6\uFF08\u96F6\u4E2A\u6216\u4EE5\u4E0A\u4E2A\u7A7A\u767D\uFF0C\u52A0\u4E0A\u4E00\u4E2A\u6570\u5B57\uFF0C\u4E5F\u8BB8\u518D\u52A0\u4E0A\u4E00\u4E2A\u8907\u9009\u6846\uFF0C\u7136\u540E\u518D\u4E00\u4E2A\u7A7A\u767D\uFF09\u3002\u5220\u9664\u7ED3\u5C3E\u7684 $ \u7B26\u53F7\uFF0C\u53EF\u4EE5\u8BA9\u6B64\u8868\u8FBE\u5F0F\u5339\u914D\u975E\u7A7A\u767D\u7684\u6E05\u5355\u9879\u76EE\u3002",
|
||||
"zh-TW": "\u9810\u8A2D\uFF1A\u5728\u8A72\u884C\u70BA\u6E05\u55AE\u5217\u8868\u9805\u76EE\u6642\uFF08\u96F6\u500B\u6216\u4EE5\u4E0A\u500B\u7A7A\u767D\uFF0C\u52A0\u4E0A\u4E00\u500B\u6578\u5B57\uFF0C\u4E5F\u8A31\u518D\u52A0\u4E0A\u4E00\u500B\u8907\u9078\u6846\uFF0C\u7136\u5F8C\u518D\u4E00\u500B\u7A7A\u767D\uFF09\u3002\u522A\u9664\u7D50\u5C3E\u7684 $ \u7B26\u865F\uFF0C\u53EF\u4EE5\u8B93\u6B64\u8868\u9054\u5F0F\u5339\u914D\u975E\u7A7A\u767D\u7684\u6E05\u55AE\u9805\u76EE\u3002"
|
||||
},
|
||||
pluginCompatibility: {
|
||||
"en-US": "Compatibility",
|
||||
"zh-CN": "\u517C\u5BB9\u6027",
|
||||
"zh-TW": "\u517C\u5BB9\u6027"
|
||||
},
|
||||
obsidianTableEditor: {
|
||||
"en-US": "Use with the native Obsidian Table Editor",
|
||||
"zh-CN": "\u548C\u9ED1\u66DC\u77F3\u539F\u751F\u8868\u683C\u7F16\u8F91\u5668\u4E00\u8D77\u4F7F\u7528",
|
||||
"zh-TW": "\u548C\u9ED1\u66DC\u77F3\u539F\u751F\u8868\u683C\u7DE8\u8F2F\u5668\u4E00\u8D77\u4F7F\u7528"
|
||||
},
|
||||
obsidianTableEditorDesc: {
|
||||
"en-US": `Do not capture tab key if cursor is on an Obsidian table editor in "Live Preview" mode, so you can go to next cell with the tab key. This setting does not apply to "Source" mode. Also, it is recommended to uninstall/unbind tab in Advanced Tables plugin if you mainly work in live preview mode, because Advanced Tables currently doesn't work as well as the native editor does.`,
|
||||
"zh-CN": "\u5728\u9884\u89C8\u6A21\u5F0F\u4E0B\u4E0D\u5BF9 Tab \u952E\u8FDB\u884C\u5904\u7406\uFF0C\u4EA4\u7ED9\u9ED1\u66DC\u77F3\u539F\u751F\u8868\u683C\u7F16\u8F91\u5668\u3002\u82E5\u4F60\u5E38\u5728\u9884\u89C8\u6A21\u5F0F\u4E0B\u5DE5\u4F5C\uFF0C\u6211\u5EFA\u8BAE\u5C06 Advanced Tables plugin \u9AD8\u7EA7\u8868\u683C\u63D2\u4EF6\u505C\u7528\u6216\u5C06\u5176 Tab \u952E\u89E3\u7ED1\uFF0C\u56E0\u4E3A\u5B83\u6CA1\u6709\u6BD4\u8868\u683C\u7F16\u8F91\u5668\u597D\u7528\u3002",
|
||||
"zh-TW": "\u5728\u9810\u89BD\u6A21\u5F0F\u4E0B\u4E0D\u5C0D Tab \u9375\u9032\u884C\u8655\u7406\uFF0C\u4EA4\u7D66\u9ED1\u66DC\u77F3\u539F\u751F\u8868\u683C\u7DE8\u8F2F\u5668\u3002\u82E5\u4F60\u5E38\u5728\u9810\u89BD\u6A21\u5F0F\u4E0B\u5DE5\u4F5C\uFF0C\u6211\u5EFA\u8B70\u5C07 Advanced Tables plugin \u9032\u968E\u8868\u683C\u63D2\u4EF6\u505C\u7528\u6216\u5C07\u5176 Tab \u9375\u89E3\u7D81\uFF0C\u56E0\u70BA\u5B83\u6C92\u6709\u6BD4\u8868\u683C\u7DE8\u8F2F\u5668\u597D\u7528\u3002"
|
||||
},
|
||||
advancedTables: {
|
||||
"en-US": "Use with Advanced Tables plugin",
|
||||
"zh-CN": "\u548C Advanced Tables plugin \u9AD8\u7EA7\u8868\u683C\u63D2\u4EF6\u4E00\u8D77\u4F7F\u7528",
|
||||
"zh-TW": "\u548C Advanced Tables plugin \u9032\u968E\u8868\u683C\u63D2\u4EF6\u4E00\u8D77\u4F7F\u7528"
|
||||
},
|
||||
advancedTablesDesc: {
|
||||
"en-US": 'Creates a new table or go to next cell when cursor is in a table. Requires disabling "Bind tab to table navigation" in the Advanced Tables plugin (and restart Obsidian). I recommend leaving that setting on and this off, and leave tab key binding to Advanced Tables plugin in a table environment, it does the exact same thing.',
|
||||
"zh-CN": "\u5F53\u5149\u6807\u5728\u4E00\u4E2A\u8868\u683C\u5185\u65F6\u6309\u4E0B Tab \u4F1A\u521B\u5EFA\u65B0\u8868\u683C\u6216\u8DF3\u5230\u4E0B\u4E00\u4E2A\u5355\u5143\u683C\u3002\u9700\u8981\u5728\u9AD8\u7EA7\u8868\u683C\u63D2\u4EF6\u4E2D\u5173\u95ED\u300CBind tab to table navigation\u300D\u5E76\u91CD\u542F\u9ED1\u66DC\u77F3\u7B14\u8BB0\u3002\u5EFA\u8BAE\u7EF4\u6301\u539F\u6837\uFF0C\u5728\u8868\u683C\u73AF\u5883\u5185\u4EA4\u7ED9\u9AD8\u7EA7\u8868\u683C\u63D2\u4EF6\u5904\u7406 Tab \u952E\u7ED1\u5B9A\u3002",
|
||||
"zh-TW": "\u7576\u6E38\u6A19\u5728\u4E00\u500B\u8868\u683C\u5167\u6642\u6309\u4E0B Tab \u6703\u5275\u5EFA\u65B0\u8868\u683C\u6216\u8DF3\u5230\u4E0B\u4E00\u500B\u5132\u5B58\u683C\u3002\u9700\u8981\u5728\u9032\u968E\u8868\u683C\u63D2\u4EF6\u4E2D\u95DC\u9589\u300CBind tab to table navigation\u300D\u4E26\u91CD\u555F\u9ED1\u66DC\u77F3\u7B46\u8A18\u3002\u5EFA\u8B70\u7DAD\u6301\u539F\u6A23\uFF0C\u5728\u8868\u683C\u74B0\u5883\u5167\u4EA4\u7D66\u9032\u968E\u8868\u683C\u63D2\u4EF6\u8655\u7406 Tab \u9375\u7D81\u5B9A\u3002"
|
||||
},
|
||||
outliner: {
|
||||
"en-US": "Use with Obsidian Outliner plugin",
|
||||
"zh-CN": "\u548C Obsidian Outliner plugin \u5927\u7EB2\u63D2\u4EF6\u4E00\u8D77\u4F7F\u7528",
|
||||
"zh-TW": "\u548C Obsidian Outliner plugin \u5927\u7DB1\u63D2\u4EF6\u4E00\u8D77\u4F7F\u7528"
|
||||
},
|
||||
outlinerDesc: {
|
||||
"en-US": "Try execute Outliner indent operation when tab is pressed, if nothing changed, use default Restore Tab Key plugin behavior. Basically, if the selection is empty and cursor is on a list item, it will indent the item if Tab is pressed, unless it can't, in that case a tab will be inserted. A list item can't be indented if it is already one level deeper than the item above. This plugin can also indent everything under the selected item recursively, and relabel numbered lists.",
|
||||
"zh-CN": "\u5C1D\u8BD5\u6267\u884C Outliner \u7684\u7F29\u6392\u6307\u4EE4\uFF0C\u5982\u679C\u6CA1\u6709\u4EFB\u4F55\u66F4\u6539\u5219\u5957\u7528\u672C\u63D2\u4EF6\u7684\u8BBE\u5B9A\u3002\u57FA\u672C\u4E0A\u5F53\u6309\u4E0B Tab \u952E\uFF0C\u4E14\u6CA1\u6709\u6587\u5B57\u88AB\u9009\u53D6\uFF0C\u4E14\u5149\u6807\u5728\u6E05\u5355\u5217\u8868\u4E0A\u7684\u8BDD\uFF0C\u4F1A\u76F4\u63A5\u5C06\u8BE5\u6E05\u5355\u5217\u8868\u7B49\u7EA7",
|
||||
"zh-TW": "\u5617\u8A66\u57F7\u884C Outliner \u7684\u7E2E\u6392\u6307\u4EE4\uFF0C\u5982\u679C\u6C92\u6709\u4EFB\u4F55\u8B8A\u5316\u7684\u8A71\u5247\u5957\u7528\u672C\u63D2\u4EF6\u7684\u8A2D\u5B9A\u3002\u57FA\u672C\u4E0A\u7576\u6309\u4E0B Tab \u9375\uFF0C\u4E14\u6C92\u6709\u6587\u5B57\u88AB\u9078\u53D6\uFF0C\u4E14\u6E38\u6A19\u5728\u6E05\u55AE\u5217\u8868\u4E0A\u7684\u8A71\uFF0C\u6703\u76F4\u63A5\u5C07\u8A72\u6E05\u55AE\u5217\u8868\u7B49\u7D1A"
|
||||
},
|
||||
additional: {
|
||||
"en-US": "Additional Options",
|
||||
"zh-CN": "\u5176\u4ED6\u9009\u9879",
|
||||
"zh-TW": "\u5176\u4ED6\u9078\u9805"
|
||||
},
|
||||
customHotkey: {
|
||||
"en-US": "Custom hotkey",
|
||||
"zh-CN": "\u81EA\u5B9A\u4E49\u70ED\u952E",
|
||||
"zh-TW": "\u81EA\u5B9A\u7FA9\u71B1\u9375"
|
||||
},
|
||||
customHotkeyDesc: {
|
||||
"en-US": `Tab doesn't work for you? Try "Ctrl-Alt-Space", or "Shift-F6"? (Reload required. Go to "Community plugins" and disable then enable this plugin will do)`,
|
||||
"zh-CN": '\u4E0D\u60F3\u7528 Tab \u952E\uFF1F\u8BD5\u8BD5 "Ctrl-Alt-Space" \u6216\u8005 "Shift-F6"\uFF1F\uFF08\u9700\u8981\u91CD\u65B0\u542F\u52A8\u63D2\u4EF6\uFF0C\u5230\u300C\u7B2C\u4E09\u65B9\u63D2\u4EF6\u300D\u5173\u95ED\u6B64\u63D2\u4EF6\u540E\u518D\u5F00\u542F\u5373\u53EF\uFF09',
|
||||
"zh-TW": '\u4E0D\u60F3\u7528 Tab \u9375\uFF1F\u8A66\u8A66 "Ctrl-Alt-Space" \u6216\u8005 "Shift-F6"\uFF1F\uFF08\u9700\u8981\u91CD\u65B0\u555F\u52D5\u63D2\u4EF6\uFF0C\u5230\u300C\u7B2C\u4E09\u65B9\u63D2\u4EF6\u300D\u95DC\u9589\u6B64\u63D2\u4EF6\u5F8C\u518D\u958B\u555F\u5373\u53EF\uFF09'
|
||||
},
|
||||
language: {
|
||||
"en-US": "Settings page interface language",
|
||||
"zh-CN": "\u8BBE\u5B9A\u9875\u663E\u793A\u8BED\u8A00",
|
||||
"zh-TW": "\u8A2D\u5B9A\u9801\u986F\u793A\u8A9E\u8A00"
|
||||
},
|
||||
languageDesc: {
|
||||
"en-US": "Would Chinese be better?",
|
||||
"zh-CN": "\u82F1\u6587\u4F1A\u66F4\u9002\u5408\u5417\uFF1F",
|
||||
"zh-TW": "\u82F1\u6587\u6703\u66F4\u9069\u5408\u55CE\uFF1F"
|
||||
},
|
||||
developerMode: {
|
||||
"en-US": "Developer Mode",
|
||||
"zh-CN": "\u5F00\u53D1\u8005\u6A21\u5F0F",
|
||||
"zh-TW": "\u958B\u767C\u8005\u6A21\u5F0F"
|
||||
},
|
||||
developerModeDesc: {
|
||||
"en-US": 'Enable debug on the Obsidian Developer Console, accessible by pressing Ctrl+Shift+I and selecting the Console tab, and show hidden, deprecated settings. If you encounter problems with the plugin, please open an issue on Github. If the plugin is not working properly, check if the console shows that the tab key event is triggered. If not, either the hotkey is configured wrong, you may try other keys that are less likely to have a conflict, like "F6". If the tab key is not triggering, it is most likely that other plugins have acquired the tab key event. Lastly, you may try testing in a new vault (accessible at the bottom left toolbar).',
|
||||
"zh-CN": '\u5F00\u542F\u4FA6\u9519\u4FE1\u606F\uFF0C\u5E76\u663E\u793A\u88AB\u9690\u85CF\u3001\u9000\u5F79\u7684\u8BBE\u5B9A\u4EEC\u3002\u7EC8\u7AEF\u53EF\u4EE5\u900F\u8FC7\u6309\u4E0B Ctrl+Shift+I \u540E\u9009\u62E9 Console \u5206\u9875\u3002\u82E5\u9047\u5230\u95EE\u9898\uFF0C\u8BF7\u5728 Github \u53D1\u8D77 issue\u3002\u8BF7\u5148\u68C0\u67E5 Console \u662F\u5426\u5728\u6309\u4E0B Tab \u952E\u540E\u663E\u793A "[restore tab] Tab key event triggered"\u3002\u82E5\u5426\uFF0C\u5C1D\u8BD5\u5C06\u81EA\u5B9A\u4E49\u70ED\u952E\u6539\u4E3A\u6BD4\u5982\u51B2\u7A81\u6982\u7387\u8F83\u4F4E\u7684 "F6"\u3002\u82E5 Tab \u952E\u65E0\u6CD5\u89E6\u53D1\uFF0C\u6700\u6709\u53EF\u80FD\u7684\u662F\u5176\u4ED6\u63D2\u4EF6\u5C06 Tab \u952E\u4E8B\u4EF6\u62FF\u8D70\u4E86\u3002\u6700\u540E\uFF0C\u4F60\u8FD8\u53EF\u4EE5\u5F00\u542F\u65B0\u7684\u50A8\u5B58\u5E93\uFF08\u5DE6\u4E0B\u5DE5\u5177\u5217\uFF09\u8FDB\u884C\u6D4B\u8BD5\u3002',
|
||||
"zh-TW": '\u958B\u555F\u5075\u932F\u8A0A\u606F\uFF0C\u4E26\u986F\u793A\u88AB\u96B1\u85CF\u3001\u9000\u5F79\u7684\u8A2D\u5B9A\u5011\u3002\u7D42\u7AEF\u53EF\u4EE5\u900F\u904E\u6309\u4E0B Ctrl+Shift+I \u5F8C\u9078\u64C7 Console \u5206\u9801\u3002\u82E5\u9047\u5230\u554F\u984C\uFF0C\u8ACB\u5728 Github \u767C\u8D77 issue\u3002\u8ACB\u5148\u6AA2\u67E5 Console \u662F\u5426\u5728\u6309\u4E0B Tab \u9375\u5F8C\u986F\u793A "[restore tab] Tab key event triggered"\u3002\u82E5\u5426\uFF0C\u5617\u8A66\u5C07\u81EA\u5B9A\u7FA9\u71B1\u9375\u6539\u70BA\u6BD4\u5982\u885D\u7A81\u6A5F\u7387\u8F03\u4F4E\u7684 "F6"\u3002\u82E5 Tab \u9375\u7121\u6CD5\u89F8\u767C\uFF0C\u6700\u6709\u53EF\u80FD\u7684\u662F\u5176\u4ED6\u63D2\u4EF6\u5C07 Tab \u9375\u4E8B\u4EF6\u62FF\u8D70\u4E86\u3002\u6700\u5F8C\uFF0C\u4F60\u9084\u53EF\u4EE5\u958B\u555F\u65B0\u7684\u5132\u5B58\u5EAB\uFF08\u5DE6\u4E0B\u5DE5\u5177\u5217\uFF09\u9032\u884C\u6E2C\u8A66\u3002'
|
||||
},
|
||||
auto: {
|
||||
"en-US": "Auto",
|
||||
"zh-CN": "\u81EA\u52A8",
|
||||
"zh-TW": "\u81EA\u52D5"
|
||||
},
|
||||
bracesAutoIndent: {
|
||||
"en-US": "Braces Auto Indent",
|
||||
"zh-CN": "\u62EC\u5F27\u81EA\u52A8\u7F29\u8FDB",
|
||||
"zh-TW": "\u62EC\u5F27\u81EA\u52D5\u7E2E\u6392"
|
||||
},
|
||||
enableBracesAutoIndent: {
|
||||
"en-US": "Enable braces auto indent",
|
||||
"zh-CN": "\u542F\u7528\u62EC\u5F27\u81EA\u52A8\u7F29\u8FDB",
|
||||
"zh-TW": "\u555F\u7528\u62EC\u5F27\u81EA\u52D5\u7E2E\u6392"
|
||||
},
|
||||
enableBracesAutoIndentDesc: {
|
||||
"en-US": "When the cursor is next to a brace character, pressing the Enter key will duplicate the indentation from the current line and then add an additional indent according to Obsidian settings",
|
||||
"zh-CN": "\u7576\u5149\u6A19\u5728\u62EC\u5F27\u5B57\u5143\u65C1\u908A\u6642\uFF0C\u6309\u4E0B Enter \u9375\u6703\u8907\u88FD\u7576\u884C\u7684\u7E2E\u9032\uFF0C\u4E26\u518D\u52A0\u4E00\u500B\u7E2E\u9032",
|
||||
"zh-TW": "\u7576\u6E38\u6A19\u5728\u62EC\u5F27\u5B57\u5143\u65C1\u908A\u6642\uFF0C\u6309\u4E0B Enter \u9375\u6703\u8907\u88FD\u7576\u884C\u7684\u7E2E\u6392\uFF0C\u4E26\u518D\u52A0\u4E00\u500B\u7E2E\u6392"
|
||||
},
|
||||
braceSetCode: {
|
||||
"en-US": "Paired braces set (within code blocks)",
|
||||
"zh-CN": "\u6210\u5BF9\u6807\u70B9\u7B26\u53F7/\u62EC\u53F7\u96C6\u5408\uFF08\u5728\u4EE3\u7801\u533A\u5757\u5185\u65F6\uFF09",
|
||||
"zh-TW": "\u6210\u5C0D\u6A19\u9EDE\u7B26\u865F/\u62EC\u5F27\u96C6\u5408\uFF08\u5728\u7A0B\u5F0F\u78BC\u5340\u584A\u5167\u6642\uFF09"
|
||||
},
|
||||
braceSetCodeDesc: {
|
||||
"en-US": "Match the string before the cursor on the line, and after the line. If both match for the same index in the json array of regexes, a paired brace is detected.",
|
||||
"zh-CN": "\u5C06\u5149\u6807\u524D\u9762\u53CA\u540E\u9762\u7684\u5B57\u4E32\u8FDB\u884C\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D\uFF0C\u82E5\u5728json\u9635\u5217\u7684\u540C\u4E00\u4E2A\u4F4D\u7F6E\u6210\u529F\u5339\u914D\u5219\u89C6\u4E3A\u6210\u5BF9\u6807\u70B9\u7B26\u53F7\u3002",
|
||||
"zh-TW": "\u5C07\u6E38\u6A19\u524D\u9762\u53CA\u5F8C\u9762\u7684\u5B57\u4E32\u9032\u884C\u6B63\u898F\u8868\u9054\u5F0F\u5339\u914D\uFF0C\u82E5\u5728json\u9663\u5217\u7684\u540C\u4E00\u500B\u4F4D\u7F6E\u6210\u529F\u5339\u914D\u5247\u8996\u70BA\u6210\u5C0D\u6A19\u9EDE\u7B26\u865F\u3002"
|
||||
},
|
||||
braceSetMarkdown: {
|
||||
"en-US": "Brace regex (outside code blocks)",
|
||||
"zh-CN": "\u6210\u5BF9\u6807\u70B9\u7B26\u53F7/\u62EC\u53F7\u96C6\u5408\uFF08\u4E0D\u5728\u4EE3\u7801\u533A\u5757\u5185/\u4E00\u822C Markdown \u533A\u5757\u5185\u65F6\uFF09",
|
||||
"zh-TW": "\u6210\u5C0D\u6A19\u9EDE\u7B26\u865F/\u62EC\u5F27\u96C6\u5408\uFF08\u4E0D\u5728\u7A0B\u5F0F\u78BC\u5340\u584A\u5167/\u4E00\u822C Markdown \u5340\u584A\u5167\u6642\uFF09"
|
||||
},
|
||||
braceSetMarkdownDesc: {
|
||||
"en-US": "Same thing but when cursor is not in a code block. Default includes multi line math expression $$ and HTML tags. Note that indenting doesn't get rendered in Markdown.",
|
||||
"zh-CN": "\u548C\u524D\u8005\u4E00\u6837\uFF0C\u4F46\u5728\u5149\u6807\u4E0D\u5728\u4EE3\u7801\u533A\u5757\u5185\u65F6\u3002\u9002\u7528\u4E00\u822C Markdown \u8BED\u6CD5\u4F7F\u7528\u3002\u9884\u8BBE\u503C\u5305\u62EC\u591A\u884C\u6570\u5B66\u516C\u5F0F\u548C HTML tags\u3002\u6CE8\u610F\uFF1A\u7F29\u8FDB\u4E0D\u4F1A\u88AB Markdown \u6E32\u67D3\u51FA\u6765",
|
||||
"zh-TW": "\u548C\u524D\u8005\u4E00\u6A23\uFF0C\u4F46\u5728\u6E38\u6A19\u4E0D\u5728\u7A0B\u5F0F\u78BC\u5340\u584A\u5167\u6642\u3002\u9069\u7528\u4E00\u822C Markdown \u8A9E\u6CD5\u4F7F\u7528\u3002\u9810\u8A2D\u503C\u5305\u62EC\u591A\u884C\u6578\u5B78\u516C\u5F0F\u548C HTML tags\u3002 \u6CE8\u610F\uFF1A\u7E2E\u6392\u4E0D\u6703\u88AB Markdown \u6E32\u67D3\u51FA\u4F86"
|
||||
},
|
||||
extraButtonRestore: {
|
||||
"en-US": "Restore default",
|
||||
"zh-CN": "\u6062\u5FA9\u9ED8\u8BA4\u503C",
|
||||
"zh-TW": "\u6062\u5FA9\u9810\u8A2D\u503C"
|
||||
},
|
||||
extraButtonDisable: {
|
||||
"en-US": "Disable",
|
||||
"zh-CN": "\u5173\u95ED",
|
||||
"zh-TW": "\u95DC\u9589"
|
||||
}
|
||||
};
|
||||
|
||||
// main.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
indentsIfSelection: true,
|
||||
indentsIfSelectionOnlyForMultipleLines: true,
|
||||
useSpaces: false,
|
||||
alignSpaces: true,
|
||||
useHardSpace: false,
|
||||
spacesCount: 4,
|
||||
allowException: false,
|
||||
exceptionRegex: "^[\\s\xA0]*(-|\\d+\\.)( \\[ \\])?\\s*$",
|
||||
useAdvancedTables: false,
|
||||
obsidianTableEditor: true,
|
||||
useOutlinerBetterTab: true,
|
||||
hotkey: "Tab",
|
||||
language: "auto",
|
||||
developerMode: false,
|
||||
enableBracesAutoIndent: true,
|
||||
braceCodeSetOpen: '["\\\\{$", "\\\\[$", "\\\\($", "\\"$", "\'$", "`$"]',
|
||||
braceCodeSetClose: '["^\\\\}", "^\\\\]", "^\\\\)", "^\\"", "^\'", "^`"]',
|
||||
braceMarkdownSetOpen: `["\\\\{$", "\\\\[$", "\\\\($", "\\"$", "'$", "\\\\$\\\\$$", "<.+>$", "\xA1$", "\xBF$"]`,
|
||||
braceMarkdownSetClose: `["^\\\\}", "^\\\\]", "^\\\\)", "^\\"", "^'", "^\\\\$\\\\$", "^<\\\\/\\\\w+>", "^!", "^?"]`,
|
||||
indentCharacters: " ",
|
||||
activateInCodeBlocks: true,
|
||||
activateInLists: false,
|
||||
activateInTables: false,
|
||||
activateInInlineCode: false,
|
||||
activateInOthers: false
|
||||
};
|
||||
var TabKeyPlugin = class extends import_obsidian.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.getToken = (state) => {
|
||||
const ast = (0, import_language.syntaxTree)(state);
|
||||
return ast.resolveInner(state.selection.main.head, -1).type.name;
|
||||
};
|
||||
this.log = (msg) => {
|
||||
if (this.settings.developerMode)
|
||||
console.log("[restore tab] " + msg);
|
||||
};
|
||||
}
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
this.addSettingTab(new SettingTab(this.app, this));
|
||||
let outlinerIndenting = false;
|
||||
this.registerEditorExtension(import_state.Prec.highest(import_view.keymap.of([
|
||||
{
|
||||
key: this.settings.hotkey,
|
||||
run: () => {
|
||||
this.log("Tab key event triggered");
|
||||
if (outlinerIndenting) {
|
||||
this.log("Failed to execute: Outliner recursive call blocked");
|
||||
return false;
|
||||
}
|
||||
const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView);
|
||||
if (!view) {
|
||||
this.log("Failed to execute: Cannot get editor view");
|
||||
return false;
|
||||
}
|
||||
const editor = view.editor;
|
||||
const sourceMode = view.getState().source;
|
||||
const token = this.getToken(editor.cm.state);
|
||||
this.log("Current token: " + token);
|
||||
const cursorFrom = editor.getCursor("from");
|
||||
const cursorTo = editor.getCursor("to");
|
||||
const somethingSelected = cursorFrom.line != cursorTo.line || cursorFrom.ch != cursorTo.ch;
|
||||
const app = this.app;
|
||||
const isTable = RegExp(`^ *\\|`, "u").test(editor.getLine(cursorFrom.line)) || token.includes("HyperMD-table");
|
||||
if (token.includes("inline-code")) {
|
||||
if (!this.settings.activateInInlineCode) {
|
||||
this.log("Did not execute: Inline code environment not activated");
|
||||
return false;
|
||||
}
|
||||
} else if (token.includes("hmd-codeblock")) {
|
||||
if (!this.settings.activateInCodeBlocks) {
|
||||
this.log("Did not execute: Code block environment not activated");
|
||||
return false;
|
||||
}
|
||||
} else if (token.includes("list")) {
|
||||
if (!this.settings.activateInLists) {
|
||||
this.log("Did not execute: List environment not activated");
|
||||
return false;
|
||||
}
|
||||
} else if (!isTable) {
|
||||
if (!this.settings.activateInOthers) {
|
||||
this.log("Did not execute: Other environments not activated");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (this.settings.useOutlinerBetterTab && RegExp("^[\\s]*(-|\\d+\\.)", "u").test(editor.getLine(cursorFrom.line))) {
|
||||
const prevLine = editor.getLine(cursorFrom.line);
|
||||
outlinerIndenting = true;
|
||||
this.log("Trying Outliner indent");
|
||||
app.commands.executeCommandById("obsidian-outliner:indent-list");
|
||||
outlinerIndenting = false;
|
||||
if (prevLine != editor.getLine(cursorFrom.line)) {
|
||||
this.log("Did not execute: Handled by Outliner");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (isTable && !this.settings.activateInTables) {
|
||||
if (!sourceMode) {
|
||||
this.log("Table environment in Live Preview mode");
|
||||
if (this.settings.obsidianTableEditor) {
|
||||
this.log("Did not execute: Handled by Obsidian Table Editor");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
this.log("Table environment in Source mode");
|
||||
if (this.settings.useAdvancedTables) {
|
||||
app.commands.executeCommandById("table-editor-obsidian:next-cell");
|
||||
this.log("Did not execute: Handled by Advanced Table");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (somethingSelected && this.settings.indentsIfSelection && (!this.settings.indentsIfSelectionOnlyForMultipleLines || cursorTo.line != cursorFrom.line)) {
|
||||
editor.exec("indentMore");
|
||||
this.log("Indented");
|
||||
} else {
|
||||
const cursorFrom2 = editor.getCursor("from");
|
||||
const tabStr = this.settings.useSpaces ? (this.settings.useHardSpace ? "\xA0" : " ").repeat(this.settings.alignSpaces ? this.settings.spacesCount - cursorFrom2.ch % this.settings.spacesCount : this.settings.spacesCount) : " ";
|
||||
if (!somethingSelected && this.settings.allowException) {
|
||||
if (RegExp(this.settings.exceptionRegex, "u").test(editor.getLine(cursorFrom2.line))) {
|
||||
editor.exec("indentMore");
|
||||
this.log("Indented (regex exception)");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
editor.replaceSelection(tabStr);
|
||||
editor.setCursor({
|
||||
line: cursorFrom2.line,
|
||||
ch: cursorFrom2.ch + tabStr.length
|
||||
});
|
||||
this.log("Tab inserted");
|
||||
}
|
||||
return true;
|
||||
},
|
||||
preventDefault: false
|
||||
},
|
||||
{
|
||||
key: "Enter",
|
||||
run: () => {
|
||||
this.log("Enter key event triggered");
|
||||
if (!this.settings.enableBracesAutoIndent)
|
||||
return false;
|
||||
const view = this.app.workspace.getActiveViewOfType(import_obsidian.MarkdownView);
|
||||
if (!view) {
|
||||
this.log("Failed to execute: Cannot get editor view");
|
||||
return false;
|
||||
}
|
||||
const editor = view.editor;
|
||||
if (editor.getCursor("from").line != editor.getCursor("to").line || editor.getCursor("from").ch != editor.getCursor("to").ch)
|
||||
return false;
|
||||
const cursor = editor.getCursor("from");
|
||||
const line = editor.getLine(cursor.line);
|
||||
const token = this.getToken(editor.cm.state);
|
||||
if (this.settings.developerMode) {
|
||||
this.log("Current token: " + token);
|
||||
this.log("which is" + (token.includes("hmd-codeblock") ? " " : " not ") + "a code block, matching regexes for " + (token.includes("hmd-codeblock") ? "code" : "markdown"));
|
||||
}
|
||||
let braceDetected = false;
|
||||
const bracesOpen = JSON.parse(token.includes("hmd-codeblock") ? this.settings.braceCodeSetOpen : this.settings.braceMarkdownSetOpen);
|
||||
const bracesClose = JSON.parse(token.includes("hmd-codeblock") ? this.settings.braceCodeSetClose : this.settings.braceMarkdownSetClose);
|
||||
const pairs = Math.min(bracesOpen.length, bracesClose.length);
|
||||
this.log("there are " + pairs + " pairs of braces defined");
|
||||
for (let i = 0; i < pairs; i++) {
|
||||
this.log("matching regex " + bracesOpen[i] + " and " + bracesClose[i]);
|
||||
if (RegExp(bracesOpen[i], "u").test(line.substring(0, cursor.ch)) && RegExp(bracesClose[i], "u").test(line.substring(cursor.ch))) {
|
||||
braceDetected = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (braceDetected) {
|
||||
this.log("Code Auto Indent: Brace detected");
|
||||
let indentPrefixLen = 0;
|
||||
while (this.settings.indentCharacters.includes(line[indentPrefixLen]))
|
||||
indentPrefixLen++;
|
||||
editor.exec("newlineAndIndent");
|
||||
if (cursor.ch == line.length) {
|
||||
this.log("Pressed enter without closing pair to the right of the cursor");
|
||||
} else if (editor.getLine(cursor.line + 1).length && !this.settings.indentCharacters.includes(editor.getLine(cursor.line + 1).charAt(editor.getLine(cursor.line + 1).length - 1))) {
|
||||
this.log("Closing pair or whatever was to the right of the cursor is still here, entering one more time");
|
||||
editor.exec("newlineAndIndent");
|
||||
} else {
|
||||
this.log("Closing pair was automatically moved one extra line down");
|
||||
}
|
||||
editor.setLine(cursor.line + 1, line.substring(0, indentPrefixLen));
|
||||
if (line.substring(cursor.ch)) {
|
||||
editor.setLine(cursor.line + 2, line.substring(0, indentPrefixLen) + line.substring(cursor.ch));
|
||||
}
|
||||
editor.setCursor(cursor.line + 1, editor.getLine(cursor.line + 1).length);
|
||||
editor.exec("indentMore");
|
||||
editor.setCursor(cursor.line + 1, editor.getLine(cursor.line + 1).length);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
])));
|
||||
}
|
||||
createKeymapRunCallback() {
|
||||
return (view) => {
|
||||
return true;
|
||||
};
|
||||
}
|
||||
onunload() {
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
};
|
||||
var SettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
const appLang = window.localStorage.getItem("language");
|
||||
this.plugin.log("Detected application language: " + appLang + (appLang == null ? " (aka English)" : ""));
|
||||
const lang = this.plugin.settings.language == "auto" ? appLang == "zh-TW" ? "zh-TW" : appLang == "zh" ? "zh-CN" : "en-US" : this.plugin.settings.language;
|
||||
this.plugin.log("Using localization: " + lang);
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
containerEl.createEl("h3", {
|
||||
text: localization["title"][lang]
|
||||
});
|
||||
containerEl.createEl("i", {
|
||||
text: localization["description"][lang]
|
||||
});
|
||||
containerEl.createEl("br");
|
||||
containerEl.createEl("br");
|
||||
new import_obsidian.Setting(containerEl).setName(localization["language"][lang]).setDesc(localization["languageDesc"][lang]).addDropdown((toggle) => toggle.addOptions({
|
||||
auto: localization["auto"][lang],
|
||||
"en-US": "English (US)",
|
||||
"zh-CN": "\u7B80\u4F53\u4E2D\u6587",
|
||||
"zh-TW": "\u7E41\u9AD4\u4E2D\u6587"
|
||||
}).setValue(this.plugin.settings.language).onChange(async (value) => {
|
||||
this.plugin.settings.language = value;
|
||||
await this.plugin.saveSettings();
|
||||
this.display();
|
||||
}));
|
||||
containerEl.createEl("h5", {
|
||||
text: localization["tabOrSpace"][lang]
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName(localization["useSpacesInsteadOfTab"][lang]).setDesc(localization["useSpacesInsteadOfTabDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.useSpaces).onChange(async (value) => {
|
||||
this.plugin.settings.useSpaces = value;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
if (this.plugin.settings.useSpaces) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["spaceCount"][lang]).setDesc(localization["spaceCountDesc"][lang]).addSlider((slider) => slider.setValue(this.plugin.settings.spacesCount).setLimits(2, 8, 1).setDynamicTooltip().onChange(async (value) => {
|
||||
this.plugin.settings.spacesCount = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(localization["alignSpaces"][lang]).setDesc(localization["alignSpacesDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.alignSpaces).onChange(async (value) => {
|
||||
this.plugin.settings.alignSpaces = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(localization["useHardSpaces"][lang]).setDesc(localization["useHardSpacesDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.useHardSpace).onChange(async (value) => {
|
||||
this.plugin.settings.useHardSpace = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
containerEl.createEl("h5", {
|
||||
text: localization["tabKeyBehavior"][lang]
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName(localization["activateIn"][lang]).setDesc(localization["activateInDesc"][lang]);
|
||||
new import_obsidian.Setting(containerEl).setName("\xA0\xA0\xA0\xA0" + localization["activateInCodeBlocks"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.activateInCodeBlocks).onChange(async (value) => {
|
||||
this.plugin.settings.activateInCodeBlocks = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("\xA0\xA0\xA0\xA0" + localization["activateInLists"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.activateInLists).onChange(async (value) => {
|
||||
this.plugin.settings.activateInLists = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("\xA0\xA0\xA0\xA0" + localization["activateInTables"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.activateInTables).onChange(async (value) => {
|
||||
this.plugin.settings.activateInTables = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("\xA0\xA0\xA0\xA0" + localization["activateInInlineCode"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.activateInInlineCode).onChange(async (value) => {
|
||||
this.plugin.settings.activateInInlineCode = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("\xA0\xA0\xA0\xA0" + localization["activateInOthers"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.activateInOthers).onChange(async (value) => {
|
||||
this.plugin.settings.activateInOthers = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(localization["indentWhenSelectionNotEmpty"][lang]).setDesc(localization["indentWhenSelectionNotEmptyDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.indentsIfSelection).onChange(async (value) => {
|
||||
this.plugin.settings.indentsIfSelection = value;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
if (this.plugin.settings.indentsIfSelection) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["indentOnlySelectionMultipleLine"][lang]).setDesc(localization["indentOnlySelectionMultipleLineDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.indentsIfSelectionOnlyForMultipleLines).onChange(async (value) => {
|
||||
this.plugin.settings.indentsIfSelectionOnlyForMultipleLines = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
if (this.plugin.settings.developerMode) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["allowException"][lang]).setDesc(localization["allowExceptionDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.allowException).onChange(async (value) => {
|
||||
this.plugin.settings.allowException = value;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
if (this.plugin.settings.allowException) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["exceptionRegex"][lang]).setDesc(localization["exceptionRegexDesc"][lang]).addText((textbox) => textbox.setValue(this.plugin.settings.exceptionRegex).setPlaceholder("Regex").onChange(async (value) => {
|
||||
this.plugin.settings.exceptionRegex = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("rotate-ccw").setTooltip(localization["extraButtonRestore"][lang]).onClick(async () => {
|
||||
this.plugin.settings.exceptionRegex = DEFAULT_SETTINGS.exceptionRegex;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
}
|
||||
containerEl.createEl("h5", {
|
||||
text: localization["bracesAutoIndent"][lang]
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName(localization["enableBracesAutoIndent"][lang]).setDesc(localization["enableBracesAutoIndentDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.enableBracesAutoIndent).onChange(async (value) => {
|
||||
this.plugin.settings.enableBracesAutoIndent = value;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
if (this.plugin.settings.enableBracesAutoIndent) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["braceSetCode"][lang]).setDesc(localization["braceSetCodeDesc"][lang]).addTextArea((textbox) => textbox.setValue(this.plugin.settings.braceCodeSetOpen).setPlaceholder("json array of regexes").onChange(async (value) => {
|
||||
this.plugin.settings.braceCodeSetOpen = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addTextArea((textbox) => textbox.setValue(this.plugin.settings.braceCodeSetClose).setPlaceholder("json array of regexes").onChange(async (value) => {
|
||||
this.plugin.settings.braceCodeSetClose = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("rotate-ccw").setTooltip(localization["extraButtonRestore"][lang]).onClick(async () => {
|
||||
this.plugin.settings.braceCodeSetOpen = DEFAULT_SETTINGS.braceCodeSetOpen;
|
||||
this.plugin.settings.braceCodeSetClose = DEFAULT_SETTINGS.braceCodeSetClose;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("ban").setTooltip(localization["extraButtonDisable"][lang]).onClick(async () => {
|
||||
this.plugin.settings.braceCodeSetOpen = "[]";
|
||||
this.plugin.settings.braceCodeSetClose = "[]";
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(localization["braceSetMarkdown"][lang]).setDesc(localization["braceSetMarkdownDesc"][lang]).addTextArea((textbox) => textbox.setValue(this.plugin.settings.braceMarkdownSetOpen).setPlaceholder("json array of regexes").onChange(async (value) => {
|
||||
this.plugin.settings.braceMarkdownSetOpen = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addTextArea((textbox) => textbox.setValue(this.plugin.settings.braceMarkdownSetClose).setPlaceholder("json array of regexes").onChange(async (value) => {
|
||||
this.plugin.settings.braceMarkdownSetClose = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("rotate-ccw").setTooltip(localization["extraButtonRestore"][lang]).onClick(async () => {
|
||||
this.plugin.settings.braceMarkdownSetOpen = DEFAULT_SETTINGS.braceMarkdownSetOpen;
|
||||
this.plugin.settings.braceMarkdownSetClose = DEFAULT_SETTINGS.braceMarkdownSetClose;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("ban").setTooltip(localization["extraButtonDisable"][lang]).onClick(async () => {
|
||||
this.plugin.settings.braceMarkdownSetOpen = "[]";
|
||||
this.plugin.settings.braceMarkdownSetClose = "[]";
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
if (this.plugin.settings.developerMode) {
|
||||
containerEl.createEl("h5", {
|
||||
text: localization["pluginCompatibility"][lang]
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName(localization["obsidianTableEditor"][lang]).setDesc(localization["obsidianTableEditorDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.obsidianTableEditor).onChange(async (value) => {
|
||||
this.plugin.settings.obsidianTableEditor = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
if (this.plugin.settings.developerMode) {
|
||||
new import_obsidian.Setting(containerEl).setName(localization["advancedTables"][lang]).setDesc(localization["advancedTablesDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.useAdvancedTables).onChange(async (value) => {
|
||||
this.plugin.settings.useAdvancedTables = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
new import_obsidian.Setting(containerEl).setName(localization["outliner"][lang]).setDesc(localization["outlinerDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.useOutlinerBetterTab).onChange(async (value) => {
|
||||
this.plugin.settings.useOutlinerBetterTab = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
containerEl.createEl("h5", {
|
||||
text: localization["additional"][lang]
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName(localization["customHotkey"][lang]).setDesc(localization["customHotkeyDesc"][lang]).addText((textbox) => textbox.setValue(this.plugin.settings.hotkey).setPlaceholder("Ctrl-Alt-Space").onChange(async (value) => {
|
||||
this.plugin.settings.hotkey = value;
|
||||
await this.plugin.saveSettings();
|
||||
})).addExtraButton((button) => button.setIcon("rotate-ccw").setTooltip(localization["extraButtonRestore"][lang]).onClick(async () => {
|
||||
this.plugin.settings.hotkey = DEFAULT_SETTINGS.hotkey;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(localization["developerMode"][lang]).setDesc(localization["developerModeDesc"][lang]).addToggle((toggle) => toggle.setValue(this.plugin.settings.developerMode).onChange(async (value) => {
|
||||
this.plugin.settings.developerMode = value;
|
||||
this.display();
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
/* nosourcemap */
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"id": "restore-tab-key",
|
||||
"name": "Restore Tab Key",
|
||||
"version": "1.18.6",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Restore tab key behaviour: tab key inserts a tab character, the way it should be.",
|
||||
"author": "jerrymk",
|
||||
"authorUrl": "https://github.com/jrymk",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
Vendored
+1252
-1082
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"id": "share-note",
|
||||
"name": "Share Note",
|
||||
"version": "1.3.1",
|
||||
"minAppVersion": "0.15.0",
|
||||
"version": "1.5.3",
|
||||
"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",
|
||||
"authorUrl": "https://github.com/alangrainger",
|
||||
"fundingUrl": "https://ko-fi.com/alan_",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -1,18 +1,18 @@
|
||||
.notice:has(.share-note-status-error.notice) {
|
||||
.notice.share-note-status-error {
|
||||
background: #c10000;
|
||||
color: white
|
||||
}
|
||||
|
||||
.notice:has(.share-note-status-info) {
|
||||
.notice.share-note-status-info {
|
||||
background: hsl(204, 86%, 53%);
|
||||
color: white
|
||||
}
|
||||
|
||||
.notice:has(.share-note-status-success) {
|
||||
.notice.share-note-status-success {
|
||||
background: #629762;
|
||||
color: white
|
||||
}
|
||||
.notice:has(.share-note-status-success) a {
|
||||
.notice.share-note-status-success a {
|
||||
color: white;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
+18
-18
File diff suppressed because one or more lines are too long
+8
-2
@@ -1,11 +1,17 @@
|
||||
{
|
||||
"id": "templater-obsidian",
|
||||
"name": "Templater",
|
||||
"version": "2.19.3",
|
||||
"description": "Create and use templates",
|
||||
"version": "2.20.5",
|
||||
"description": "Advanced templating and automation using handlebars-like syntax.",
|
||||
"minAppVersion": "1.12.2",
|
||||
"author": "SilentVoid",
|
||||
"authorUrl": "https://github.com/SilentVoid13",
|
||||
"fundingUrl": {
|
||||
"GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo",
|
||||
"Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo",
|
||||
"GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13",
|
||||
"Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"
|
||||
},
|
||||
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
+1
-1
@@ -221,6 +221,6 @@ textarea.templater-prompt-input:focus {
|
||||
}
|
||||
|
||||
li.CodeMirror-hint-active {
|
||||
background: #08f;
|
||||
background: #0088ff;
|
||||
color: white;
|
||||
}
|
||||
|
||||
Vendored
+128
-121
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user