Compare commits

..

120 Commits

Author SHA1 Message Date
oskar ed4d0e40c2 MacBook-Pro-de-Oscar.local 2026-4-19:20:1:12 2026-04-19 20:01:14 +02:00
oskar 9a7c4c68c8 MacBook-Pro-de-Oscar.local 2026-4-19:18:40:43 2026-04-19 18:40:43 +02:00
oskar 957644c7e7 MacBook-Pro-de-Oscar.local 2026-4-19:11:36:1 2026-04-19 11:36:01 +02:00
oskar bdbeb211a5 device-89.home 2026-4-18:18:5:36 2026-04-18 18:05:37 +02:00
oskar f248b3aea3 device-89.home 2026-4-18:17:5:37 2026-04-18 17:05:37 +02:00
oskar 584e74eea1 device-89.home 2026-4-18:16:5:36 2026-04-18 16:05:36 +02:00
oskar a5e63eadb9 MacBookPro.lan 2026-4-18:2:44:43 2026-04-18 02:44:44 +02:00
oskar aa6942dd07 MacBookPro.lan 2026-4-17:19:44:35 2026-04-17 19:44:36 +02:00
oskar 684411fb7c MacBookPro.lan 2026-4-17:18:44:35 2026-04-17 18:44:35 +02:00
oskar 878f79f5c4 MacBookPro.lan 2026-4-17:17:44:34 2026-04-17 17:44:35 +02:00
oskar de58e1e56e MacBookPro.lan 2026-4-17:16:44:34 2026-04-17 16:44:34 +02:00
oskar 8f4d8164bc MacBookPro.lan 2026-4-17:15:44:34 2026-04-17 15:44:34 +02:00
oskar 769c65fdcd MacBookPro.lan 2026-4-17:14:44:34 2026-04-17 14:44:34 +02:00
oskar 25c6173cb8 MacBookPro.lan 2026-4-17:13:44:34 2026-04-17 13:44:34 +02:00
oskar 474a4a3a12 MacBookPro.lan 2026-4-17:4:44:26 2026-04-17 04:44:27 +02:00
oskar f2aaa00fa9 MacBookPro.lan 2026-4-17:3:44:25 2026-04-17 03:44:25 +02:00
oskar 1c7e844e9f MacBookPro.lan 2026-4-16:19:55:36 2026-04-16 19:55:36 +02:00
oskar 636281b174 MacBookPro.lan 2026-4-16:17:55:35 2026-04-16 17:55:36 +02:00
oskar 90537b3181 MacBookPro.lan 2026-4-16:16:55:34 2026-04-16 16:55:35 +02:00
oskar 654decd27f MacBookPro.lan 2026-4-16:15:55:33 2026-04-16 15:55:33 +02:00
oskar fac8887c32 MacBookPro.lan 2026-4-16:2:55:21 2026-04-16 02:55:21 +02:00
oskar 0c700153eb MacBookPro.lan 2026-4-16:1:55:21 2026-04-16 01:55:21 +02:00
oskar 7688bdc9c8 MacBookPro.lan 2026-4-14:20:11:7 2026-04-14 20:11:08 +02:00
oskar a5f8cde4ad MacBookPro.lan 2026-4-14:17:1:22 2026-04-14 17:01:23 +02:00
oskar 2d908c75e3 MacBookPro.lan 2026-4-14:15:37:51 2026-04-14 15:37:51 +02:00
oskar 35ea344131 MacBookPro.lan 2026-4-14:14:37:51 2026-04-14 14:37:52 +02:00
oskar c13fb819e1 MacBookPro.lan 2026-4-14:2:8:18 2026-04-14 02:08:19 +02:00
oskar 8573e8c523 MacBookPro.lan 2026-4-14:1:8:18 2026-04-14 01:08:19 +02:00
oskar 747fe85e65 MacBookPro.lan 2026-4-14:0:8:17 2026-04-14 00:08:17 +02:00
oskar 16017e9cfd MacBookPro.lan 2026-4-13:22:8:16 2026-04-13 22:08:17 +02:00
oskar 4663a35885 MacBookPro.lan 2026-4-13:21:8:15 2026-04-13 21:08:16 +02:00
oskar ae109198ac MacBookPro.lan 2026-4-13:19:24:6 2026-04-13 19:24:07 +02:00
oskar 196e9b4c3e MacBookPro.lan 2026-4-13:17:24:5 2026-04-13 17:24:05 +02:00
oskar 7df02cf8e7 MacBookPro.lan 2026-4-13:16:24:5 2026-04-13 16:24:06 +02:00
oskar 8a16e6a4f7 MacBookPro.lan 2026-4-12:22:8:38 2026-04-12 22:08:38 +02:00
oskar 49ea2fe0f4 MacBookPro.lan 2026-4-12:21:8:38 2026-04-12 21:08:38 +02:00
oskar 76f2eec32b MacBookPro.lan 2026-4-12:20:8:38 2026-04-12 20:08:38 +02:00
oskar 5d2da708fe MacBookPro.lan 2026-4-11:1:10:4 2026-04-11 01:10:04 +02:00
oskar 2b6cfff464 MacBookPro.lan 2026-4-10:23:53:3 2026-04-10 23:53:04 +02:00
oskar 5fdb6d0d28 MacBook-Pro-de-Oscar.local 2026-4-10:19:32:29 2026-04-10 19:32:30 +02:00
oskar 50f4e3cff3 MacBook-Pro-de-Oscar.local 2026-4-9:20:29:22 2026-04-09 20:29:22 +02:00
oskar 0e31f02e14 MacBook-Pro-de-Oscar.local 2026-4-9:16:55:25 2026-04-09 16:55:26 +02:00
oskar c2a22c0d5e MacBookPro.lan 2026-4-9:13:44:8 2026-04-09 13:44:08 +02:00
oskar 6807606ecf MacBookPro.lan 2026-4-9:3:20:11 2026-04-09 03:20:12 +02:00
oskar 3490310578 MacBookPro.lan 2026-4-9:2:5:12 2026-04-09 02:05:12 +02:00
oskar 61b5600bcd MacBookPro.lan 2026-4-9:1:5:12 2026-04-09 01:05:12 +02:00
oskar be7df66372 MacBookPro.lan 2026-4-8:23:5:11 2026-04-08 23:05:11 +02:00
oskar 54cf10d26c MacBookPro.lan 2026-4-8:22:5:9 2026-04-08 22:05:10 +02:00
oskar fdd1843cf6 MacBookPro.lan 2026-4-8:21:5:8 2026-04-08 21:05:08 +02:00
oskar c5ffa83773 MacBookPro.lan 2026-4-8:19:5:7 2026-04-08 19:05:08 +02:00
oskar 5da910894d MacBookPro.lan 2026-4-8:17:58:48 2026-04-08 17:58:48 +02:00
oskar cd25e13a8e MacBookPro.lan 2026-4-8:16:58:48 2026-04-08 16:58:48 +02:00
oskar 6c5ac1368d MacBookPro.lan 2026-4-8:14:58:44 2026-04-08 14:58:44 +02:00
oskar 99fdd6a658 MacBookPro.lan 2026-4-8:1:11:1 2026-04-08 01:11:01 +02:00
oskar a3c704eee2 MacBookPro.lan 2026-4-7:17:12:40 2026-04-07 17:12:42 +02:00
oskar b623b93481 MacBookPro.lan 2026-4-6:23:15:43 2026-04-06 23:15:43 +02:00
oskar e82c86aee9 MacBookPro.lan 2026-4-6:18:45:41 2026-04-06 18:45:41 +02:00
oskar cb64ad3ec7 MacBookPro.lan 2026-4-5:15:27:19 2026-04-05 15:27:19 +02:00
oskar 058e3668bf MacBookPro.lan 2026-4-4:23:40:50 2026-04-04 23:40:51 +02:00
oskar 802c37b8cd MacBookPro.lan 2026-4-4:3:11:26 2026-04-04 03:11:27 +02:00
oskar e9f09eca94 macbook-pro-de-oscar-1.home 2026-4-3:7:6:6 2026-04-03 07:06:06 +02:00
oskar d7172fe4ad macbook-pro-de-oscar-1.home 2026-4-2:23:6:6 2026-04-02 23:06:06 +02:00
oskar 6caae38fa1 macbook-pro-de-oscar-1.home 2026-4-2:22:6:6 2026-04-02 22:06:06 +02:00
oskar c107bfd157 MacBook-Pro-de-Oscar.local 2026-4-1:20:17:53 2026-04-01 20:17:53 +02:00
oskar 0949b274e7 MacBook-Pro-de-Oscar.local 2026-4-1:15:38:48 2026-04-01 15:38:48 +02:00
oskar b1570c3b23 MacBook-Pro-de-Oscar.local 2026-4-1:14:32:18 2026-04-01 14:32:18 +02:00
oskar 007f5cd406 device-56.home 2026-4-1:7:4:0 2026-04-01 07:04:01 +02:00
oskar 6994f23ee0 device-56.home 2026-4-1:5:4:0 2026-04-01 05:04:00 +02:00
oskar 7c7a1d0c09 device-56.home 2026-4-1:4:3:59 2026-04-01 04:04:00 +02:00
oskar 467b5475f2 device-56.home 2026-4-1:2:33:54 2026-04-01 02:33:54 +02:00
oskar 18bcd70776 device-56.home 2026-4-1:2:3:54 2026-04-01 02:03:54 +02:00
oskar ec905ac9bf device-56.home 2026-4-1:1:33:54 2026-04-01 01:33:54 +02:00
oskar 9342579a82 device-56.home 2026-4-1:1:3:54 2026-04-01 01:03:54 +02:00
oskar 603e8845b2 device-56.home 2026-4-1:0:33:54 2026-04-01 00:33:54 +02:00
oskar d0d827cc3f device-56.home 2026-4-1:0:3:54 2026-04-01 00:03:55 +02:00
oskar 7a8a47821c device-56.home 2026-3-31:23:33:53 2026-03-31 23:33:53 +02:00
oskar 75f873c0ce device-56.home 2026-3-31:23:3:53 2026-03-31 23:03:53 +02:00
oskar 3b71b8cdf5 device-56.home 2026-3-31:22:33:53 2026-03-31 22:33:54 +02:00
oskar 150e8c0828 device-56.home 2026-3-31:22:3:52 2026-03-31 22:03:52 +02:00
oskar a025c2788e device-56.home 2026-3-31:21:33:52 2026-03-31 21:33:52 +02:00
oskar 66ab1eb6d8 device-56.home 2026-3-31:20:47:39 2026-03-31 20:47:39 +02:00
oskar f0b87a3a3b device-56.home 2026-3-31:20:10:42 2026-03-31 20:10:42 +02:00
oskar e39ed02b8a device-56.home 2026-3-31:19:40:42 2026-03-31 19:40:42 +02:00
oskar c40a632b39 device-56.home 2026-3-31:17:32:58 2026-03-31 17:32:58 +02:00
oskar a767576a3c device-56.home 2026-3-31:17:2:58 2026-03-31 17:02:59 +02:00
oskar 6dc42541fe device-56.home 2026-3-31:16:32:58 2026-03-31 16:32:58 +02:00
oskar 59ce423533 device-56.home 2026-3-31:16:2:58 2026-03-31 16:02:58 +02:00
oskar 66c904248d device-56.home 2026-3-31:15:32:58 2026-03-31 15:32:58 +02:00
oskar 602512594d MacBook-Pro-de-Oscar.local 2026-3-31:5:2:57 2026-03-31 05:02:57 +02:00
oskar 3223d21f20 MacBook-Pro-de-Oscar.local 2026-3-31:4:32:56 2026-03-31 04:32:57 +02:00
oskar 1f30b64e0f MacBook-Pro-de-Oscar.local 2026-3-31:4:2:56 2026-03-31 04:02:57 +02:00
oskar 3290c8dc2e MacBook-Pro-de-Oscar.local 2026-3-31:3:32:56 2026-03-31 03:32:57 +02:00
oskar 4462741284 device-56.home 2026-3-31:0:2:50 2026-03-31 00:02:51 +02:00
oskar af9f7a3c69 device-56.home 2026-3-30:21:32:49 2026-03-30 21:32:50 +02:00
oskar ffb025358a eduroam-prg-og-1-30-2.net.univ-paris-diderot.fr 2026-3-30:11:35:6 2026-03-30 11:35:06 +02:00
oskar ddf55cd1c7 eduroam-prg-og-1-30-2.net.univ-paris-diderot.fr 2026-3-30:11:4:38 2026-03-30 11:04:38 +02:00
oskar 5f0bb32c99 eduroam-prg-og-1-30-2.net.univ-paris-diderot.fr 2026-3-30:10:34:40 2026-03-30 10:34:40 +02:00
oskar 95ff270ad5 eduroam-prg-og-1-30-2.net.univ-paris-diderot.fr 2026-3-30:9:50:16 2026-03-30 09:50:16 +02:00
oskar c1f592ab9d device-56.home 2026-3-30:4:19:37 2026-03-30 04:19:38 +02:00
oskar 3f75252fae device-56.home 2026-3-30:3:37:13 2026-03-30 03:37:14 +02:00
oskar 0ada9405cc device-56.home 2026-3-30:3:7:13 2026-03-30 03:07:14 +02:00
oskar 32791298bc device-56.home 2026-3-30:2:37:13 2026-03-30 02:37:14 +02:00
oskar 735a813c7c device-56.home 2026-3-30:2:7:14 2026-03-30 02:07:14 +02:00
oskar f9621c44c8 device-56.home 2026-3-30:1:37:13 2026-03-30 01:37:13 +02:00
oskar 9462c5ad97 device-56.home 2026-3-30:1:7:13 2026-03-30 01:07:13 +02:00
oskar 47ef3598ad device-56.home 2026-3-30:0:37:13 2026-03-30 00:37:13 +02:00
oskar 566c7d0aab device-56.home 2026-3-30:0:7:13 2026-03-30 00:07:13 +02:00
oskar de456462e4 device-56.home 2026-3-29:23:37:13 2026-03-29 23:37:13 +02:00
oskar dd96ee34b8 device-56.home 2026-3-29:22:44:22 2026-03-29 22:44:22 +02:00
oskar 604e7b7c03 device-56.home 2026-3-29:22:14:22 2026-03-29 22:14:22 +02:00
oskar 9b7ca323a2 device-56.home 2026-3-29:21:1:5 2026-03-29 21:01:05 +02:00
oskar 89cb9e96f0 device-56.home 2026-3-29:20:31:5 2026-03-29 20:31:05 +02:00
oskar a5e0e8ed09 device-56.home 2026-3-29:20:1:5 2026-03-29 20:01:05 +02:00
oskar d338825b0d device-56.home 2026-3-29:19:31:5 2026-03-29 19:31:05 +02:00
oskar 4b614517f1 device-56.home 2026-3-29:19:1:5 2026-03-29 19:01:05 +02:00
oskar 1f03ab4f0b device-56.home 2026-3-29:18:31:5 2026-03-29 18:31:05 +02:00
oskar 79c04e52e8 device-56.home 2026-3-29:18:1:5 2026-03-29 18:01:05 +02:00
oskar be5cab19dd device-56.home 2026-3-29:17:1:5 2026-03-29 17:01:05 +02:00
oskar 5d53ec6ddf device-56.home 2026-3-29:16:31:5 2026-03-29 16:31:05 +02:00
oskar a1f8f95393 device-56.home 2026-3-29:16:1:5 2026-03-29 16:01:05 +02:00
201 changed files with 72516 additions and 82429 deletions
+2 -1
View File
@@ -4,7 +4,8 @@
imap jk <Esc>la imap jk <Esc>la
imap kj <Esc>i imap kj <Esc>i
nmap <C-n> } "nmap <C-n> }
nmap <C-n> :e<CR>
nmap <C-p> { nmap <C-p> {
" these break some behaviors like dj " these break some behaviors like dj
+9 -7
View File
@@ -1,14 +1,13 @@
{ {
"theme": "system", "theme": "system",
"cssTheme": "Minimal", "cssTheme": "Minimal",
"baseFontSize": 22, "baseFontSize": 26,
"enabledCssSnippets": [ "enabledCssSnippets": [
"pdf_darkmode", "pdf_darkmode",
"query_header_title", "query_header_title",
"hide_excalibrain_ui", "hide_excalibrain_ui",
"tabs_on_multiple_rown", "tabs_on_multiple_rown",
"darkmode", "darkmode",
"breadcrumbs",
"[ui] Ultra Compact Tab Header", "[ui] Ultra Compact Tab Header",
"Daily Note Outline", "Daily Note Outline",
"Tasks - Compact", "Tasks - Compact",
@@ -21,7 +20,6 @@
"MySnippets", "MySnippets",
"Omnisearch", "Omnisearch",
"omts-compact_tabs", "omts-compact_tabs",
"omts-Tasks - Compact",
"omts-Day Planner (Ivan Lednev)", "omts-Day Planner (Ivan Lednev)",
"omts-[ui] Compact Sidebar", "omts-[ui] Compact Sidebar",
"latex_mathjax", "latex_mathjax",
@@ -33,13 +31,17 @@
"stacked_tabs", "stacked_tabs",
"vertical_stacked_tabs", "vertical_stacked_tabs",
"custom_callouts", "custom_callouts",
"general_interface",
"checkboxes",
"headers",
"omts-[editor] Compact Right Sidebar notes", "omts-[editor] Compact Right Sidebar notes",
"omts-Excalidraw - Compact", "omts-Excalidraw - Compact",
"dark_pdf",
"breadcrumbs",
"checkboxes",
"general_interface",
"headers",
"omts-Tasks - Compact",
"popup_preview_size", "popup_preview_size",
"dark_pdf" "linktree",
"pdf_export"
], ],
"interfaceFontFamily": "CMU Bright,CMU Serif,FiraCode Nerd Font", "interfaceFontFamily": "CMU Bright,CMU Serif,FiraCode Nerd Font",
"textFontFamily": "CMU Sans Serif,CMU Serif,FiraCode Nerd Font", "textFontFamily": "CMU Sans Serif,CMU Serif,FiraCode Nerd Font",
+16 -4
View File
@@ -3,7 +3,6 @@
"obsidian-latex-suite", "obsidian-latex-suite",
"obsidian-style-settings", "obsidian-style-settings",
"obsidian-vimrc-support", "obsidian-vimrc-support",
"breadcrumbs",
"obsidian-hider", "obsidian-hider",
"txt-as-md-obsidian", "txt-as-md-obsidian",
"obsidian-tasks-plugin", "obsidian-tasks-plugin",
@@ -20,13 +19,26 @@
"obsidian-spaced-repetition", "obsidian-spaced-repetition",
"pane-relief", "pane-relief",
"obsidian-minimal-settings", "obsidian-minimal-settings",
"auto-template-trigger",
"wikilinks-to-mdlinks-obsidian", "wikilinks-to-mdlinks-obsidian",
"obsidian-pandoc-reference-list", "obsidian-pandoc-reference-list",
"obsidian-kanban", "obsidian-kanban",
"header-enhancer", "header-enhancer",
"obsidian42-brat", "obsidian42-brat",
"pdf-plus", "pdf-plus",
"lazy-plugins", "breadcrumbs",
"calendar" "obsidian-day-planner",
"obsidian-advanced-slides",
"calendar",
"obsidian-completr",
"dataview",
"default-template",
"obsidian-excalidraw-plugin",
"github-sync",
"note-aliases",
"share-note",
"templater-obsidian",
"link-tree",
"obsidian-sequence-hotkeys",
"notebook-navigator",
"obsidian-pandoc"
] ]
+1 -1
View File
@@ -130,6 +130,6 @@
"repelStrength": 5.263671875, "repelStrength": 5.263671875,
"linkStrength": 1, "linkStrength": 1,
"linkDistance": 30, "linkDistance": 30,
"scale": 0.13320413080202398, "scale": 0.1345612381098431,
"close": true "close": true
} }
+9 -1
View File
@@ -1061,5 +1061,13 @@
"key": "W" "key": "W"
} }
], ],
"obsidian-completr:completr-bypass-tab-key": [] "obsidian-completr:completr-bypass-tab-key": [],
"obsidian-excalidraw-plugin:insert-LaTeX-symbol": [
{
"modifiers": [
"Alt"
],
"key": "L"
}
]
} }
+30 -431
View File
@@ -1,105 +1,4 @@
{ {
"altLinkFields": [],
"CSVPaths": "",
"dateFormat": "YYYY-MM-DD",
"dataviewNoteField": "up",
"dateNoteAddMonth": "",
"dateNoteAddYear": "",
"enableAlphaSort": true,
"limitWriteBCCheckboxes": [
"up",
"next",
"prev",
"author",
"source",
"same",
"opposes",
"same_source",
"wrote",
"",
"same_author",
"excerpt",
"includes",
"used_in",
"citation"
],
"CHECKBOX_STATES_OVERWRITTEN": false,
"indexNotes": [],
"namingSystemField": "",
"namingSystemRegex": "",
"namingSystemSplit": ".",
"namingSystemEndsWithDelimiter": false,
"useAllMetadata": true,
"openMatrixOnLoad": true,
"openDuckOnLoad": false,
"openDownOnLoad": true,
"parseJugglLinksWithoutJuggl": false,
"showNameOrType": true,
"showRelationType": true,
"regexNoteField": "",
"rlLeaf": false,
"showAllPathsIfNoneToIndexNote": false,
"showAllAliases": true,
"showBCsInEditLPMode": true,
"showImpliedRelations": true,
"showTrail": false,
"showJuggl": false,
"sortByNameShowAlias": false,
"squareDirectionsOrder": [
0,
1,
2,
3,
4
],
"limitTrailCheckboxes": [
"up",
"author",
"supports",
"opposes",
"source",
""
],
"limitJumpToFirstFields": [
"up",
"sibling",
"down",
"next",
"prev",
"extercept",
"includes",
"supports",
"supported_by",
"refutes",
"refuted_by",
"opposes",
"source",
"wrote",
"author",
"",
"same_author",
"excerpt",
"citation"
],
"showAll": "All",
"threadIntoNewPane": true,
"threadingDirTemplates": {
"up": "",
"same": "",
"down": "",
"next": "",
"prev": ""
},
"trailSeperator": "→",
"treatCurrNodeAsImpliedSibling": false,
"showWriteAllBCsCmd": false,
"visGraph": "Force Directed Graph",
"visRelation": "Child",
"visClosed": "Closed",
"visAll": "No Unlinked",
"showUpInJuggl": false,
"gridHeatmap": true,
"heatmapColour": "#3b3b3b",
"is_dirty": false, "is_dirty": false,
"edge_fields": [ "edge_fields": [
{ {
@@ -117,44 +16,17 @@
{ {
"label": "prev" "label": "prev"
}, },
{
"label": "sibling"
},
{ {
"label": "author" "label": "author"
}, },
{
"label": "wrote"
},
{
"label": "same_author"
},
{
"label": "supports"
},
{
"label": "supported_by"
},
{
"label": "refuted_by"
},
{
"label": "refutes"
},
{
"label": "opposes"
},
{ {
"label": "source" "label": "source"
}, },
{ {
"label": "includes" "label": "wrote"
}, },
{ {
"label": "citation" "label": "part"
},
{
"label": "same_source"
} }
], ],
"edge_field_groups": [ "edge_field_groups": [
@@ -163,8 +35,6 @@
"fields": [ "fields": [
"up", "up",
"author", "author",
"supports",
"opposes",
"source" "source"
] ]
}, },
@@ -173,32 +43,25 @@
"fields": [ "fields": [
"down", "down",
"wrote", "wrote",
"supported_by", "part"
"includes",
"citation"
] ]
}, },
{ {
"label": "sames", "label": "sames",
"fields": [ "fields": [
"same", "same"
"sibling",
"same_author",
"same_source"
] ]
}, },
{ {
"label": "nexts", "label": "nexts",
"fields": [ "fields": [
"next", "next"
"refutes"
] ]
}, },
{ {
"label": "prevs", "label": "prevs",
"fields": [ "fields": [
"prev", "prev"
"refuted_by"
] ]
} }
], ],
@@ -260,279 +123,26 @@
"close_reversed": true "close_reversed": true
}, },
{ {
"rounds": 1,
"name": "", "name": "",
"close_field": "sibling",
"chain": [
{
"field": "sibling"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "sibling"
},
{
"field": "sibling"
}
],
"close_reversed": false,
"close_field": "sibling"
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "sibling"
},
{
"field": "up"
}
],
"close_reversed": false,
"close_field": "up"
},
{
"rounds": 1,
"name": "",
"close_field": "wrote",
"chain": [
{
"field": "author"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "author",
"chain": [ "chain": [
{ {
"field": "wrote" "field": "wrote"
} }
], ],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "same_author",
"chain": [
{
"field": "same_author"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same_author"
},
{
"field": "same_author"
}
],
"close_reversed": false,
"close_field": "same_author"
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same_author"
},
{
"field": "author"
}
],
"close_reversed": false,
"close_field": "author"
},
{
"rounds": 1,
"name": "",
"close_field": "supported_by",
"chain": [
{
"field": "supports"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "supports",
"chain": [
{
"field": "supported_by"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "refutes",
"chain": [
{
"field": "refuted_by"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "refuted_by",
"chain": [
{
"field": "refutes"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same"
},
{
"field": "same"
}
],
"close_reversed": false,
"close_field": "same"
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same"
},
{
"field": "opposes"
}
],
"close_reversed": false,
"close_field": "opposes"
},
{
"rounds": 1,
"name": "",
"close_field": "includes",
"chain": [
{
"field": "source"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "source",
"chain": [
{
"field": "includes"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"close_field": "same_source",
"chain": [
{
"field": "same_source"
}
],
"close_reversed": true
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same_source"
},
{
"field": "same_source"
}
],
"close_reversed": false,
"close_field": "same_source"
},
{
"rounds": 1,
"name": "",
"chain": [
{
"field": "same_source"
},
{
"field": "source"
}
],
"close_reversed": false,
"close_field": "source"
},
{
"name": "",
"chain": [
{
"field": "source"
},
{
"field": "author"
}
],
"rounds": 10, "rounds": 10,
"close_reversed": false, "close_reversed": true,
"close_field": "author" "close_field": "author"
}, },
{ {
"name": "", "name": "",
"chain": [ "chain": [
{ {
"field": "next" "field": "author"
},
{
"field": "up"
} }
], ],
"rounds": 10, "rounds": 10,
"close_reversed": false, "close_reversed": true,
"close_field": "up" "close_field": "wrote"
},
{
"name": "",
"chain": [
{
"field": "prev"
},
{
"field": "up"
}
],
"rounds": 10,
"close_reversed": false,
"close_field": "up"
} }
] ]
}, },
@@ -548,10 +158,10 @@
"default_field": "up" "default_field": "up"
}, },
"dendron_note": { "dendron_note": {
"enabled": true, "enabled": false,
"delimiter": ".",
"default_field": "up", "default_field": "up",
"delimiter": " . ", "display_trimmed": false
"display_trimmed": true
}, },
"johnny_decimal_note": { "johnny_decimal_note": {
"enabled": false, "enabled": false,
@@ -559,10 +169,10 @@
"default_field": "up" "default_field": "up"
}, },
"date_note": { "date_note": {
"enabled": true, "enabled": false,
"date_format": "yyyy-MM-dd", "date_format": "yyyy-MM-dd",
"default_field": "next", "default_field": "next",
"stretch_to_existing": true "stretch_to_existing": false
} }
}, },
"views": { "views": {
@@ -575,10 +185,10 @@
"enabled": true, "enabled": true,
"format": "grid", "format": "grid",
"selection": "all", "selection": "all",
"default_depth": 5, "default_depth": 999,
"no_path_message": "", "no_path_message": "",
"show_controls": false, "show_controls": false,
"merge_fields": true, "merge_fields": false,
"field_group_labels": [ "field_group_labels": [
"ups" "ups"
], ],
@@ -597,8 +207,7 @@
}, },
"field_group_labels": { "field_group_labels": {
"prev": [ "prev": [
"prevs", "prevs"
"sames"
], ],
"next": [ "next": [
"nexts" "nexts"
@@ -637,9 +246,10 @@
"collapse": false, "collapse": false,
"show_attributes": [], "show_attributes": [],
"merge_fields": false, "merge_fields": false,
"lock_view": false,
"lock_path": "désintégration audioactive.md",
"field_group_labels": [ "field_group_labels": [
"downs", "downs"
"sames"
], ],
"edge_sort_id": { "edge_sort_id": {
"field": "basename", "field": "basename",
@@ -649,9 +259,7 @@
"ext": false, "ext": false,
"folder": false, "folder": false,
"alias": false "alias": false
}, }
"lock_view": false,
"lock_path": "algèbre.md"
} }
}, },
"codeblocks": { "codeblocks": {
@@ -666,32 +274,24 @@
"rebuild_graph": { "rebuild_graph": {
"notify": true, "notify": true,
"trigger": { "trigger": {
"note_save": true, "note_save": false,
"layout_change": false "layout_change": false
} }
}, },
"list_index": { "list_index": {
"default_options": { "default_options": {
"fields": [ "fields": [],
"down", "indent": "\\t",
"wrote",
"supported_by",
"includes",
"citation"
],
"indent": " ",
"link_kind": "wiki", "link_kind": "wiki",
"show_attributes": [], "show_attributes": [],
"field_group_labels": [ "field_group_labels": [],
"downs"
],
"edge_sort_id": { "edge_sort_id": {
"order": 1, "order": 1,
"field": "basename" "field": "basename"
}, },
"show_node_options": { "show_node_options": {
"ext": false, "ext": false,
"alias": false, "alias": true,
"folder": false "folder": false
} }
} }
@@ -700,23 +300,22 @@
"default_options": { "default_options": {
"destination": "frontmatter", "destination": "frontmatter",
"included_fields": [ "included_fields": [
"nexts",
"ups" "ups"
], ],
"use_alias": false "use_alias": true
} }
}, },
"thread": { "thread": {
"default_options": { "default_options": {
"destination": "frontmatter", "destination": "frontmatter",
"target_path_template": "{{field}} of {{current}}" "target_path_template": "{{source.folder}}/{{attr.field}} {{source.basename}}"
} }
} }
}, },
"suggestors": { "suggestors": {
"edge_field": { "edge_field": {
"enabled": false, "enabled": false,
"trigger": "\\" "trigger": "."
} }
}, },
"debug": { "debug": {
+12 -10
View File
File diff suppressed because one or more lines are too long
+12 -1
View File
@@ -1 +1,12 @@
{"id":"breadcrumbs","name":"Breadcrumbs","version":"4.4.3","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","isDesktopOnly":false} {
"id": "breadcrumbs",
"name": "Breadcrumbs",
"version": "4.4.4",
"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",
"isDesktopOnly": false
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
@@ -1,11 +1,11 @@
{ {
"id": "cmdr", "id": "cmdr",
"name": "Commander", "name": "Commander",
"version": "0.5.4", "version": "0.5.5",
"minAppVersion": "1.4.0", "minAppVersion": "1.4.0",
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.", "description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
"author": "jsmorabito & phibr0", "author": "jsmorabito & phibr0",
"authorUrl": "https://github.com/phibr0", "authorUrl": "https://github.com/phibr0",
"fundingUrl": "https://ko-fi.com/phibr0", "fundingUrl": "https://ko-fi.com/phibr0",
"isDesktopOnly": false "isDesktopOnly": false
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -1
View File
@@ -1,3 +1,11 @@
{ {
"defaultTemplate": "templates/default new note.md" "defaultTemplate": "templates/default new note.md",
"folderTemplates": {
"s": "",
"so": "",
"sou": "",
"sour": "",
"sources": ""
},
"ignorePaths": []
} }
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "editing-toolbar", "id": "editing-toolbar",
"name": "Editing Toolbar", "name": "Editing Toolbar",
"version": "3.2.7", "version": "4.0.5",
"minAppVersion": "0.14.0", "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.", "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", "author": "Cuman",
+537 -29
View File
@@ -35,7 +35,18 @@
gap: calc(var(--toolbar-icon-size) / 15) !important; gap: calc(var(--toolbar-icon-size) / 15) !important;
} }
:is(#editingToolbarModalBar, #editingToolbarPopoverBar).editingToolbarCustomAesthetic button[class^=editingToolbarCommandsubItem]>.subitem::before {
content: '';
position: absolute;
inset: 0;
z-index: -1;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px); /* Safari 兼容 */
border-radius: inherit; /* 继承父元素圆角 */
}
#editingToolbarModalBar.editingToolbarCustomAesthetic #editingToolbarModalBar.editingToolbarCustomAesthetic
{ {
padding:calc(var(--toolbar-icon-size) / 4); padding:calc(var(--toolbar-icon-size) / 4);
@@ -215,20 +226,23 @@ editingToolbar CLASS CHANGES
background-color: var(--color-base-10, --background-primary); background-color: var(--color-base-10, --background-primary);
} }
/*
#editingToolbarModalBar.editingToolbarGlassAesthetic {
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
box-shadow: none;
background-color: transparent;
} */
#editingToolbarModalBar.editingToolbarGlassAesthetic~#editingToolbarPopoverBar { :is(#editingToolbarModalBar, #editingToolbarPopoverBar).editingToolbarGlassAesthetic {
backdrop-filter: blur(6px); backdrop-filter: var(--raised-blur, blur(6px));
-webkit-backdrop-filter: blur(6px); -webkit-backdrop-filter: var(--raised-blur, blur(6px));
box-shadow: var(--raised-shadow, none);
background-clip: padding-box;
border: var(--raised-mask-border-width, 1px) solid transparent;
background-color: var(--raised-background, color-mix(in srgb, var(--background-secondary) 60%, transparent));
}
.is-phone:not(.is-floating-nav) :is(#editingToolbarModalBar, #editingToolbarPopoverBar).editingToolbarGlassAesthetic {
--raised-background: transparent;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar).editingToolbarGlassAesthetic :is(.editingToolbarCommandItem, button[class^=editingToolbarCommandsubItem]) {
background-color: transparent;
box-shadow: none; box-shadow: none;
border: 1px solid var(--background-modifier-border-hover);
background-color: color-mix(in srgb, var(--background-secondary) 60%, transparent);
} }
#editingToolbarModalBar.editingToolbarGlassAesthetic:not(.top) button[class^=editingToolbarCommandsubItem] { #editingToolbarModalBar.editingToolbarGlassAesthetic:not(.top) button[class^=editingToolbarCommandsubItem] {
@@ -247,13 +261,6 @@ editingToolbar CLASS CHANGES
height: 28px; height: 28px;
} }
#editingToolbarModalBar.editingToolbarGlassAesthetic:not(.top) {
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
box-shadow: none;
border: 1px solid var(--background-modifier-border-hover);
background-color: color-mix(in srgb, var(--background-secondary) 60%, transparent);
}
/*---------------------------------------------------------------- /*----------------------------------------------------------------
editingToolbar ICONS editingToolbar ICONS
@@ -461,12 +468,12 @@ button[class^=editingToolbarCommandsubItem]::after {
align-items: center; align-items: center;
} }
/*
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button[class^=editingToolbarCommandsubItem]>.subitem .menu-item { :is(#editingToolbarModalBar, #editingToolbarPopoverBar) button[class^=editingToolbarCommandsubItem]>.subitem .menu-item {
margin-left: 2px; margin-left: 2px;
margin-right: 2px; margin-right: 2px;
padding: 0px 4px 0px 4px; padding: 6px 8px;
} */ }
@@ -534,6 +541,247 @@ button[class^=editingToolbarCommandsubItem]::after {
background-color: transparent; background-color: transparent;
} }
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai {
position: relative;
overflow: visible;
display: inline-flex;
align-items: center;
gap: 4px;
padding-right: 0px !important;
}
:is(#editingToolbarModalBar[data-toolbar-style="following"], #editingToolbarModalBar.top, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-inline .editing-toolbar-ai-button-label {
max-width: 5.2em;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-fixed {
gap: 2px;
justify-content: center;
padding-left: 4px !important;
padding-right: 4px !important;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::before {
content: "";
position: absolute;
inset: -1px;
border-radius: 12px;
background: rgba(99, 102, 241, 0.08);
opacity: 0;
transition: opacity 0.16s ease;
pointer-events: none;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai:hover::before {
opacity: 1;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai::after {
content: none;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai > svg {
flex-shrink: 0;
}
.editing-toolbar-ai-button-main {
display: inline-flex;
align-items: center;
min-width: 0;
}
.editing-toolbar-ai-button-label {
display: inline-block;
max-width: 6em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 12px;
font-weight: 600;
line-height: 1.2;
color: var(--text-accent);
}
.editing-toolbar-ai-button-arrow {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
min-height: 16px;
margin-left: 1px;
padding-left: 4px;
border-left: 1px solid var(--background-modifier-border-hover);
color: var(--text-muted);
font-size: 9px;
line-height: 1;
flex-shrink: 0;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-fixed .editing-toolbar-ai-button-arrow {
width: 10px;
min-height: 14px;
margin-left: 0;
padding-left: 2px;
border-left: none;
}
@media screen and (max-width: 768px) {
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-inline {
gap: 2px;
justify-content: center;
padding-left: 4px !important;
padding-right: 4px !important;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-inline .editing-toolbar-ai-button-label {
display: none;
}
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) button.editingToolbarCommandsubItem-ai.editing-toolbar-ai-button-inline .editing-toolbar-ai-button-arrow {
width: 10px;
min-height: 14px;
margin-left: 0;
padding-left: 2px;
border-left: none;
}
}
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
: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;
pointer-events: none;
}
.workspace-leaf-content:has(.cm-ai-loading, .cm-ai-result-panel[data-phase="streaming"])
:is(#editingToolbarModalBar, #editingToolbarPopoverBar) 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 {
animation: cm-ai-spin 0.8s linear infinite;
}
.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: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);
}
.menu.editing-toolbar-ai-dropdown-menu .menu-item.is-disabled {
opacity: 0.72;
}
.editing-toolbar-ai-inline-prompt {
position: fixed;
z-index: 1001;
width: min(360px, calc(100vw - 24px));
padding: 10px;
border: 1px solid var(--background-modifier-border-hover);
border-radius: 14px;
background: var(--background-primary);
box-shadow: 0 16px 32px rgba(15, 23, 42, 0.16);
}
.editing-toolbar-ai-inline-prompt-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 8px;
}
.editing-toolbar-ai-inline-prompt-title {
font-size: 12px;
font-weight: 700;
color: var(--text-normal);
}
.editing-toolbar-ai-inline-prompt-close {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
padding: 0;
border: none;
border-radius: 6px;
background: transparent;
color: var(--text-muted);
cursor: pointer;
}
.editing-toolbar-ai-inline-prompt-close:hover {
background: var(--background-modifier-hover);
color: var(--text-normal);
}
.editing-toolbar-ai-inline-prompt-input {
width: 100%;
min-height: 72px;
resize: none;
padding: 10px 12px;
border: 1px solid var(--background-modifier-border);
border-radius: 10px;
background: var(--background-secondary);
color: var(--text-normal);
line-height: 1.5;
}
.editing-toolbar-ai-inline-prompt-input:focus {
outline: none;
border-color: var(--interactive-accent);
box-shadow: 0 0 0 1px color-mix(in srgb, var(--interactive-accent) 28%, transparent);
}
.editing-toolbar-ai-inline-prompt-hint {
margin-top: 8px;
font-size: 11px;
color: var(--text-faint);
}
.editing-toolbar-ai-inline-prompt-actions {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 10px;
}
.editing-toolbar-ai-inline-prompt-action {
min-width: 72px;
padding: 8px 12px;
border: 1px solid var(--background-modifier-border);
border-radius: 10px;
background: var(--background-secondary);
color: var(--text-normal);
cursor: pointer;
}
.editing-toolbar-ai-inline-prompt-action:hover:not(:disabled) {
background: var(--background-modifier-hover);
}
.editing-toolbar-ai-inline-prompt-action.mod-cta {
border-color: var(--interactive-accent);
background: var(--interactive-accent);
color: var(--text-on-accent, #fff);
}
.editing-toolbar-ai-inline-prompt-action:disabled {
opacity: 0.55;
cursor: not-allowed;
}
.is-mobile .editing-toolbar-ai-inline-prompt-action {
flex: 1;
}
.editingToolbarSettingsTabsContainer .editingToolbarCommandItem .setting-item-info { .editingToolbarSettingsTabsContainer .editingToolbarCommandItem .setting-item-info {
@@ -586,7 +834,7 @@ button[class^=editingToolbarCommandsubItem]::after {
.setting-item button.editingToolbarSettingsIcon { .setting-item button.editingToolbarSettingsIcon {
display: block; display: flex;
transform: translateX(-30%); transform: translateX(-30%);
-webkit-transform: translateX(-30%); -webkit-transform: translateX(-30%);
} }
@@ -805,9 +1053,20 @@ button[class^=editingToolbarCommandsubItem]::after {
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
contain: none;
} }
/* 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 * {
animation: none;
transition: none !important;
-webkit-transition: none !important;
}
#editingToolbarModalBar ~.canvas-controls{ #editingToolbarModalBar ~.canvas-controls{
top: calc(var(--size-4-2) + 50px); top: calc(var(--size-4-2) + 50px);
} }
@@ -840,8 +1099,8 @@ button[class^=editingToolbarCommandsubItem]::after {
@media screen and (max-width: 768px) { @media screen and (max-width: 768px) {
#editingToolbarPopoverBar { #editingToolbarPopoverBar {
left: 50%; left: 15%;
transform: translateX(-50%); transform: translateX(-15%);
right: unset; right: unset;
} }
} }
@@ -979,8 +1238,8 @@ button[class^=editingToolbarCommandsubItem]::after {
} }
.theme-dark .menu.editing-toolbar-dropdown-menu .menu-item.is-disabled .theme-dark .menu.editing-toolbar-dropdown-menu .menu-item.is-disabled
{ {
color: var(--menu-background); /* 文字直接变透明背景色 */ color: var(--text-muted); /* 文字直接变透明背景色 */
filter: brightness(0.7) contrast(1.2); opacity: 0.7;
} }
/* 左侧线条 */ /* 左侧线条 */
@@ -1028,7 +1287,7 @@ button[class^=editingToolbarCommandsubItem]::after {
/* 快捷键样式 */ /* 快捷键样式 */
.menu.editing-toolbar-dropdown-menu .menu-item-hotkey { .menu.editing-toolbar-dropdown-menu .menu-item-hotkey {
margin-left: auto; margin-left: auto;
font-size: 11px; font-size:10px;
color: var(--text-muted); color: var(--text-muted);
opacity: 0.7; opacity: 0.7;
font-family: var(--font-monospace); font-family: var(--font-monospace);
@@ -1419,6 +1678,97 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
margin: 0; margin: 0;
line-height: 1.6; line-height: 1.6;
} }
.modal.editing-toolbar-ai-consent-modal {
width: min(560px, calc(100vw - 32px));
}
.editing-toolbar-ai-consent {
display: flex;
flex-direction: column;
gap: 16px;
font-size: var(--font-ui-small);
}
.editing-toolbar-ai-consent-hero h2 {
margin: 10px 0 0;
font-size: 24px;
line-height: 1.25;
}
.editing-toolbar-ai-consent-badge {
display: inline-flex;
align-items: center;
padding: 6px 10px;
border-radius: 999px;
background: color-mix(in srgb, var(--interactive-accent) 14%, var(--background-secondary));
color: var(--interactive-accent);
font-size: 12px;
font-weight: 700;
}
.editing-toolbar-ai-consent-desc {
margin-top: 12px;
color: var(--text-muted);
line-height: 1.7;
}
.editing-toolbar-ai-consent-note {
margin-top: 12px;
padding: 12px 14px;
border: 1px solid var(--background-modifier-border);
border-radius: 14px;
background: var(--background-secondary);
color: var(--text-muted);
line-height: 1.6;
}
.editing-toolbar-ai-consent-section {
padding: 14px 16px;
border: 1px solid var(--background-modifier-border);
border-radius: 16px;
background: var(--background-secondary);
}
.editing-toolbar-ai-consent-section-title {
font-size: 14px;
font-weight: 700;
color: var(--text-normal);
}
.editing-toolbar-ai-consent-list {
display: grid;
gap: 10px;
margin-top: 12px;
}
.editing-toolbar-ai-consent-item {
display: flex;
align-items: flex-start;
gap: 10px;
}
.editing-toolbar-ai-consent-dot {
flex-shrink: 0;
width: 7px;
height: 7px;
margin-top: 0.55em;
border-radius: 999px;
background: var(--interactive-accent);
opacity: 0.9;
}
.editing-toolbar-ai-consent-text {
color: var(--text-muted);
line-height: 1.65;
}
.editing-toolbar-ai-consent-actions {
display: flex;
justify-content: flex-end;
gap: 8px;
padding-top: 4px;
}
.format-brush-cursor .cm-content { .format-brush-cursor .cm-content {
cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' width='18' height='18'%3E%3Cpath d='M786.285714 56.888889h121.93727A20.280889 20.280889 0 0 0 928.507937 36.591746v-16.294603A20.284952 20.284952 0 0 0 908.222984 0h-398.287238A20.280889 20.280889 0 0 0 489.650794 20.297143v16.294603A20.284952 20.284952 0 0 0 509.935746 56.888889H635.936508v910.222222h-126.000762A20.280889 20.280889 0 0 0 489.650794 987.408254v16.294603a20.284952 20.284952 0 0 0 20.284952 20.297143h398.287238a20.280889 20.280889 0 0 0 20.284953-20.297143v-16.294603a20.284952 20.284952 0 0 0-20.284953-20.297143H786.285714V56.888889zM359.619048 903.233016H310.857143V690.793651H266.15873v213.577143H217.396825V690.793651H172.698413v213.577143h-29.415619c-49.290159 0-42.573206-44.901587-42.573207-44.901588S97.076825 722.306032 97.10527 642.031746H480.467302c-0.008127 80.428698-3.604317 216.299683-3.604318 216.299683s6.716952 44.901587-42.57727 44.901587H404.31746V690.793651H359.619048v212.439365zM97.828571 597.333333l0.065016-1.235301c2.816-50.704254-5.640127-98.588444 66.186159-123.936508 71.830349-25.35619 47.896381-35.210159 54.934349-83.098413 7.037968-47.88419-18.310095-71.826286-18.310095-207.034921 0-109.04381 51.301587-125.456254 79.766349-127.723682 0.353524-0.934603 0.723302-1.414095 1.113397-1.414095 16.420571 0 95.288889-7.200508 95.288889 128 0 135.208635-25.348063 159.15073-18.314159 207.03492 7.037968 47.888254-16.891937 57.742222 54.938413 83.098413 71.822222 25.348063 63.370159 73.236317 66.186159 123.936508l0.121904 2.373079H97.824508zM288.507937 166.603175a34.539683 34.539683 0 1 0 0-69.079365 34.539683 34.539683 0 0 0 0 69.079365z' fill='%235c5c5c'/%3E%3C/svg%3E") 16 16, auto; cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024' width='18' height='18'%3E%3Cpath d='M786.285714 56.888889h121.93727A20.280889 20.280889 0 0 0 928.507937 36.591746v-16.294603A20.284952 20.284952 0 0 0 908.222984 0h-398.287238A20.280889 20.280889 0 0 0 489.650794 20.297143v16.294603A20.284952 20.284952 0 0 0 509.935746 56.888889H635.936508v910.222222h-126.000762A20.280889 20.280889 0 0 0 489.650794 987.408254v16.294603a20.284952 20.284952 0 0 0 20.284952 20.297143h398.287238a20.280889 20.280889 0 0 0 20.284953-20.297143v-16.294603a20.284952 20.284952 0 0 0-20.284953-20.297143H786.285714V56.888889zM359.619048 903.233016H310.857143V690.793651H266.15873v213.577143H217.396825V690.793651H172.698413v213.577143h-29.415619c-49.290159 0-42.573206-44.901587-42.573207-44.901588S97.076825 722.306032 97.10527 642.031746H480.467302c-0.008127 80.428698-3.604317 216.299683-3.604318 216.299683s6.716952 44.901587-42.57727 44.901587H404.31746V690.793651H359.619048v212.439365zM97.828571 597.333333l0.065016-1.235301c2.816-50.704254-5.640127-98.588444 66.186159-123.936508 71.830349-25.35619 47.896381-35.210159 54.934349-83.098413 7.037968-47.88419-18.310095-71.826286-18.310095-207.034921 0-109.04381 51.301587-125.456254 79.766349-127.723682 0.353524-0.934603 0.723302-1.414095 1.113397-1.414095 16.420571 0 95.288889-7.200508 95.288889 128 0 135.208635-25.348063 159.15073-18.314159 207.03492 7.037968 47.888254-16.891937 57.742222 54.938413 83.098413 71.822222 25.348063 63.370159 73.236317 66.186159 123.936508l0.121904 2.373079H97.824508zM288.507937 166.603175a34.539683 34.539683 0 1 0 0-69.079365 34.539683 34.539683 0 0 0 0 69.079365z' fill='%235c5c5c'/%3E%3C/svg%3E") 16 16, auto;
} }
@@ -1478,8 +1828,16 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
.is-phone #editingToolbarModalBar.top .is-phone #editingToolbarModalBar.top
{ {
margin-right:0px; margin-right:0px;
padding:0;
} }
.is-phone #editingToolbarModalBar.top::-webkit-scrollbar {
display: none;
}
.is-phone .mod-root .workspace-leaf-content[data-type="markdown"] .view-content:has(.editingToolbarModalBar){ .is-phone .mod-root .workspace-leaf-content[data-type="markdown"] .view-content:has(.editingToolbarModalBar){
mask-image: none; mask-image: none;
} }
@@ -1491,8 +1849,11 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
display:none; display:none;
} }
.is-phone .markdown-source-view.mod-cm6 #editingToolbarPopoverBar { .is-phone .markdown-source-view.mod-cm6 #editingToolbarPopoverBar {
margin-top: calc(var(--toolbar-icon-size) + var(--view-header-height) + 20px); /* margin-top: calc(var(--toolbar-icon-size) + var(--view-header-height) + 20px); */
margin-top: calc(var(--safe-area-inset-top) + var(--view-header-height) + var(--toolbar-icon-size) + 10px);
} }
.is-phone .mod-root .workspace-leaf-content .view-content:has(.editingToolbarModalBar) .markdown-source-view > .cm-editor > .cm-scroller { .is-phone .mod-root .workspace-leaf-content .view-content:has(.editingToolbarModalBar) .markdown-source-view > .cm-editor > .cm-scroller {
@@ -1504,3 +1865,150 @@ body.auto-hide-header .workspace-tab-header-container + .workspace-tab-container
{ {
padding-top: calc(var(--safe-area-inset-top) + var(--view-header-height) + 36px); padding-top: calc(var(--safe-area-inset-top) + var(--view-header-height) + 36px);
} }
@keyframes cm-ai-fade-in {
from {
opacity: 0;
transform: translateY(4px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes cm-ai-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.cm-tooltip {
z-index: 1000;
}
.editing-toolbar-ai-grid {
display: grid;
gap: 16px;
}
.editing-toolbar-ai-card {
background: var(--background-secondary);
border: 1px solid var(--background-modifier-border);
border-radius: 16px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
overflow: hidden;
}
.editing-toolbar-ai-card-summary {
list-style: none;
cursor: pointer;
padding: 16px 18px;
}
.editing-toolbar-ai-card-summary::-webkit-details-marker {
display: none;
}
.editing-toolbar-ai-card-summary-static {
cursor: default;
}
.editing-toolbar-ai-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.editing-toolbar-ai-card-copy {
min-width: 0;
}
.editing-toolbar-ai-card-title {
font-size: 15px;
font-weight: 700;
color: var(--text-normal);
}
.editing-toolbar-ai-card-desc {
margin-top: 6px;
font-size: 13px;
line-height: 1.6;
color: var(--text-muted);
}
.editing-toolbar-ai-card-badge {
flex-shrink: 0;
padding: 4px 10px;
border-radius: 999px;
background: var(--background-modifier-hover);
color: var(--text-muted);
font-size: 12px;
font-weight: 600;
}
.editing-toolbar-ai-card-toggle {
flex-shrink: 0;
}
.editing-toolbar-ai-card-header-select {
flex-shrink: 0;
font-size: 12px;
padding: 3px 8px;
border-radius: 6px;
border: 1px solid var(--background-modifier-border);
color: var(--text-normal);
cursor: pointer;
}
.editing-toolbar-ai-card-body {
padding: 0 18px 16px;
}
.editing-toolbar-ai-disclosure[open] .editing-toolbar-ai-card-summary {
border-bottom: 1px solid var(--background-modifier-border);
}
.editing-toolbar-ai-card .setting-item {
border-top: 1px solid var(--background-modifier-border-hover);
padding-top: 14px;
padding-bottom: 14px;
}
.editing-toolbar-ai-card .setting-item:first-child {
border-top: none;
}
.editing-toolbar-ai-note {
margin-top: 8px;
font-size: 12px;
line-height: 1.6;
color: var(--text-muted);
}
.editing-toolbar-ai-inline-disclosure {
margin-top: 12px;
border-top: 1px solid var(--background-modifier-border-hover);
}
.editing-toolbar-ai-inline-summary {
cursor: pointer;
padding: 12px 0 4px;
font-size: 13px;
font-weight: 600;
color: var(--text-muted);
list-style: none;
}
.editing-toolbar-ai-inline-summary::-webkit-details-marker {
display: none;
}
.editing-toolbar-ai-inline-body .setting-item {
border-top: 1px solid var(--background-modifier-border-hover);
}
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"remoteURL": "https://gitea.dariow.fr/oskar/cours", "remoteURL": "https://gitea.dariow.fr/oskar/cours",
"gitLocation": "", "gitLocation": "",
"syncinterval": 30, "syncinterval": 60,
"isSyncOnLoad": true, "isSyncOnLoad": true,
"checkStatusOnLoad": true "checkStatusOnLoad": true
} }
+1 -1
View File
@@ -16,7 +16,7 @@
"yamlDefaultStartNumber": "1", "yamlDefaultStartNumber": "1",
"yamlDefaultSeparator": ".", "yamlDefaultSeparator": ".",
"globalAutoNumberingEnabled": true, "globalAutoNumberingEnabled": true,
"perDocumentStates": "{\"suite finies d'entiers.md\":false,\"fonction récursive primitive.md\":false,\"fonction d'ackermann de cori et lascar.md\":true,\"désintégration audioactive.md\":false}", "perDocumentStates": "{\"suite finies d'entiers.md\":false,\"fonction récursive primitive.md\":false,\"fonction d'ackermann de cori et lascar.md\":true,\"désintégration audioactive.md\":false,\"sources/0 - cours/LOGOS S2/le savoir en mathématiques/(Camerini) La Lettre 12 et ses cercles non-concentriques.md\":false}",
"isSeparateHeaderFont": false, "isSeparateHeaderFont": false,
"headerFontFamily": "inherit", "headerFontFamily": "inherit",
"headerFontSize": "inherit", "headerFontSize": "inherit",
-362
View File
@@ -1,362 +0,0 @@
{
"dualConfigs": false,
"showConsoleLog": false,
"desktop": {
"shortDelaySeconds": 5,
"longDelaySeconds": 15,
"delayBetweenPlugins": 40,
"defaultStartupType": null,
"showDescriptions": true,
"enableDependencies": false,
"plugins": {
"3d-graph": {
"startupType": "disabled"
},
"obsidian-advanced-slides": {
"startupType": "disabled"
},
"obsidian-asciimath": {
"startupType": "disabled"
},
"auto-template-trigger": {
"startupType": "instant"
},
"obsidian-banners": {
"startupType": "disabled"
},
"better-fn": {
"startupType": "disabled"
},
"math-in-callout": {
"startupType": "disabled"
},
"obsidian42-brat": {
"startupType": "instant"
},
"breadcrumbs": {
"startupType": "instant"
},
"calendar": {
"startupType": "instant"
},
"canvas-presentation": {
"startupType": "disabled"
},
"cmdr": {
"startupType": "disabled"
},
"obsidian-completr": {
"startupType": "short"
},
"obsidian-contextual-typography": {
"startupType": "disabled"
},
"contribution-graph": {
"startupType": "disabled"
},
"crumbs-obsidian": {
"startupType": "disabled"
},
"obsidian-custom-frames": {
"startupType": "disabled"
},
"obsidian-daily-note-outline": {
"startupType": "disabled"
},
"dataview": {
"startupType": "short"
},
"obsidian-day-planner": {
"startupType": "short"
},
"default-template": {
"startupType": "disabled"
},
"desk": {
"startupType": "disabled"
},
"obsidian-desmos": {
"startupType": "disabled"
},
"dynamic-outline": {
"startupType": "disabled"
},
"dynamic-text-concealer": {
"startupType": "disabled"
},
"editing-toolbar": {
"startupType": "disabled"
},
"obsidian-enhancing-export": {
"startupType": "disabled"
},
"excalibrain": {
"startupType": "disabled"
},
"obsidian-excalidraw-plugin": {
"startupType": "short"
},
"extended-graph": {
"startupType": "disabled"
},
"obsidian-latex": {
"startupType": "instant"
},
"obsidian-footnotes": {
"startupType": "disabled"
},
"garble-text": {
"startupType": "disabled"
},
"obsidian-git": {
"startupType": "disabled"
},
"github-sync": {
"startupType": "long"
},
"graph-link-types": {
"startupType": "disabled"
},
"header-enhancer": {
"startupType": "instant"
},
"obsidian-hider": {
"startupType": "instant"
},
"obsidian-hover-editor": {
"startupType": "disabled"
},
"obsidian-icon-shortcodes": {
"startupType": "disabled"
},
"juggl": {
"startupType": "disabled"
},
"mrj-jump-to-link": {
"startupType": "disabled"
},
"obsidian-kanban": {
"startupType": "instant"
},
"languagetool": {
"startupType": "instant"
},
"obsidian-latex-suite": {
"startupType": "instant"
},
"latex-to-unicode": {
"startupType": "disabled"
},
"math-booster": {
"startupType": "disabled"
},
"obsidian-list-callouts": {
"startupType": "instant"
},
"lovely-mindmap": {
"startupType": "disabled"
},
"obsidian-markmind": {
"startupType": "disabled"
},
"mathlinks": {
"startupType": "disabled"
},
"maximise-active-pane-obsidian": {
"startupType": "disabled"
},
"obsidian-meta-bind-plugin": {
"startupType": "instant"
},
"metaedit": {
"startupType": "disabled"
},
"obsidian-mind-map": {
"startupType": "disabled"
},
"obsidian-minimal-settings": {
"startupType": "instant"
},
"mysnippets-plugin": {
"startupType": "disabled"
},
"nldates-obsidian": {
"startupType": "instant"
},
"graph-nested-tags": {
"startupType": "disabled"
},
"nlp": {
"startupType": "disabled"
},
"inline-math": {
"startupType": "disabled"
},
"note-aliases": {
"startupType": "short"
},
"number-headings-obsidian": {
"startupType": "disabled"
},
"obsidian-better-internal-link-inserter": {
"startupType": "disabled"
},
"obsidian-functionplot": {
"startupType": "disabled"
},
"obsidian-ocr": {
"startupType": "disabled"
},
"omnisearch": {
"startupType": "disabled"
},
"obsidian-outliner": {
"startupType": "disabled"
},
"obsidian-pandoc": {
"startupType": "disabled"
},
"obsidian-pandoc-reference-list": {
"startupType": "instant"
},
"pane-relief": {
"startupType": "instant"
},
"url-into-selection": {
"startupType": "disabled"
},
"obsidian-path-finder": {
"startupType": "disabled"
},
"break-page": {
"startupType": "disabled"
},
"pdf-plus": {
"startupType": "instant"
},
"persistent-graph": {
"startupType": "disabled"
},
"obsidian-pocket": {
"startupType": "disabled"
},
"podnotes": {
"startupType": "disabled"
},
"qmd-as-md-obsidian": {
"startupType": "instant"
},
"quick-preview": {
"startupType": "disabled"
},
"darlal-switcher-plus": {
"startupType": "disabled"
},
"quickadd": {
"startupType": "instant"
},
"obsidian-quickshare": {
"startupType": "disabled"
},
"restore-tab-key": {
"startupType": "disabled"
},
"obsidian-rollover-daily-todos": {
"startupType": "disabled"
},
"rss-reader": {
"startupType": "disabled"
},
"run": {
"startupType": "disabled"
},
"obsidian-sequence-hotkeys": {
"startupType": "disabled"
},
"obsidian-share-as-gist": {
"startupType": "disabled"
},
"share-note": {
"startupType": "long"
},
"obsidian-shellcommands": {
"startupType": "instant"
},
"obsidian-spaced-repetition": {
"startupType": "instant"
},
"obsidian-style-settings": {
"startupType": "instant"
},
"supercharged-links-obsidian": {
"startupType": "disabled"
},
"sync-graph-settings": {
"startupType": "disabled"
},
"ob-table-enhancer": {
"startupType": "disabled"
},
"obsidian-plugin-toc": {
"startupType": "instant"
},
"tag-word-cloud": {
"startupType": "disabled"
},
"tag-wrangler": {
"startupType": "instant"
},
"obsidian-tasks-plugin": {
"startupType": "instant"
},
"tasks-calendar-wrapper": {
"startupType": "disabled"
},
"templater-obsidian": {
"startupType": "disabled"
},
"terminal": {
"startupType": "disabled"
},
"text-snippets-obsidian": {
"startupType": "instant"
},
"themed-discord-rpc": {
"startupType": "long"
},
"obsidian-tikzjax": {
"startupType": "short"
},
"time-ruler": {
"startupType": "disabled"
},
"txt-as-md-obsidian": {
"startupType": "instant"
},
"unicode-search": {
"startupType": "disabled"
},
"various-complements": {
"startupType": "disabled"
},
"obsidian-vault-statistics-plugin": {
"startupType": "disabled"
},
"vertical-tabs-view": {
"startupType": "disabled"
},
"obsidian-vimrc-support": {
"startupType": "instant"
},
"wikilinks-to-mdlinks-obsidian": {
"startupType": "instant"
},
"wordcraft": {
"startupType": "disabled"
},
"zotlit": {
"startupType": "disabled"
}
}
}
}
-342
View File
@@ -1,342 +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 __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
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);
// manifest.json
var require_manifest = __commonJS({
"manifest.json"(exports, module2) {
module2.exports = {
id: "lazy-plugins",
name: "Lazy Plugin Loader",
version: "1.0.21",
minAppVersion: "1.6.0",
description: "Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.",
author: "Alan Grainger",
authorUrl: "https://github.com/alangrainger",
fundingUrl: "https://ko-fi.com/alan_",
isDesktopOnly: false
};
}
});
// src/main.ts
var main_exports = {};
__export(main_exports, {
default: () => LazyPlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian2 = require("obsidian");
// src/settings.ts
var import_obsidian = require("obsidian");
var DEFAULT_DEVICE_SETTINGS = {
shortDelaySeconds: 5,
longDelaySeconds: 15,
delayBetweenPlugins: 40,
// milliseconds
defaultStartupType: null,
showDescriptions: true,
enableDependencies: false,
plugins: {}
};
var DEFAULT_SETTINGS = {
dualConfigs: false,
showConsoleLog: false,
desktop: DEFAULT_DEVICE_SETTINGS
};
var LoadingMethods = {
disabled: "\u26D4 Disable plugin",
instant: "\u26A1 Instant",
short: "\u231A Short delay",
long: "\u{1F4A4} Long delay"
};
var SettingsTab = class extends import_obsidian.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.dropdowns = [];
this.pluginSettings = {};
this.app = app;
this.lazyPlugin = plugin;
this.pluginSettings = this.lazyPlugin.settings.plugins;
}
async display() {
const { containerEl } = this;
this.containerEl = containerEl;
this.lazyPlugin.updateManifests();
await this.lazyPlugin.loadSettings();
this.buildDom();
}
/**
* Build the Settings modal DOM elements
*/
buildDom() {
this.containerEl.empty();
new import_obsidian.Setting(this.containerEl).setName("Separate desktop/mobile configuration").setDesc(`Enable this if you want to have different settings depending whether you're using a desktop or mobile device. All of the settings below can be configured differently on desktop and mobile. You're currently using the ${this.lazyPlugin.device} settings.`).addToggle((toggle) => {
toggle.setValue(this.lazyPlugin.data.dualConfigs).onChange(async (value) => {
this.lazyPlugin.data.dualConfigs = value;
await this.lazyPlugin.saveSettings();
await this.lazyPlugin.loadSettings();
this.buildDom();
});
});
new import_obsidian.Setting(this.containerEl).setName("Lazy Loader settings").setHeading();
Object.entries({
shortDelaySeconds: "Short delay (seconds)",
longDelaySeconds: "Long delay (seconds)"
}).forEach(([key, name]) => {
new import_obsidian.Setting(this.containerEl).setName(name).addText((text) => text.setValue(this.lazyPlugin.settings[key].toString()).onChange(async (value) => {
this.lazyPlugin.settings[key] = parseFloat(parseFloat(value).toFixed(3));
await this.lazyPlugin.saveSettings();
}));
});
new import_obsidian.Setting(this.containerEl).setName("Default startup type for new plugins").addDropdown((dropdown) => {
dropdown.addOption("", "Nothing configured");
this.addDelayOptions(dropdown);
dropdown.setValue(this.lazyPlugin.settings.defaultStartupType || "").onChange(async (value) => {
this.lazyPlugin.settings.defaultStartupType = value || null;
await this.lazyPlugin.saveSettings();
});
});
new import_obsidian.Setting(this.containerEl).setName("Show plugin descriptions").addToggle((toggle) => {
toggle.setValue(this.lazyPlugin.settings.showDescriptions).onChange(async (value) => {
this.lazyPlugin.settings.showDescriptions = value;
await this.lazyPlugin.saveSettings();
this.buildDom();
});
});
new import_obsidian.Setting(this.containerEl).setName("Set the delay for all plugins at once").addDropdown((dropdown) => {
dropdown.addOption("", "Set all plugins to be:");
this.addDelayOptions(dropdown);
dropdown.onChange(async (value) => {
this.lazyPlugin.manifests.forEach((plugin) => {
this.pluginSettings[plugin.id] = { startupType: value };
});
this.dropdowns.forEach((dropdown2) => dropdown2.setValue(value));
dropdown.setValue("");
await this.lazyPlugin.saveSettings();
});
});
new import_obsidian.Setting(this.containerEl).setName("Plugins").setHeading().setDesc("Filter by: ").then((setting) => {
this.addFilterButton(setting.descEl, "All");
Object.keys(LoadingMethods).forEach((key) => this.addFilterButton(setting.descEl, LoadingMethods[key], key));
});
new import_obsidian.Setting(this.containerEl).addText((text) => text.setPlaceholder("Type to filter list").onChange((value) => {
this.filterString = value;
this.buildPluginList();
}));
this.pluginListContainer = this.containerEl.createEl("div");
this.buildPluginList();
}
buildPluginList() {
this.pluginListContainer.textContent = "";
this.lazyPlugin.manifests.forEach((plugin) => {
const currentValue = this.lazyPlugin.getPluginStartup(plugin.id);
if (this.filterMethod && currentValue !== this.filterMethod)
return;
if (this.filterString && !plugin.name.toLowerCase().includes(this.filterString.toLowerCase()))
return;
new import_obsidian.Setting(this.pluginListContainer).setName(plugin.name).addDropdown((dropdown) => {
this.dropdowns.push(dropdown);
this.addDelayOptions(dropdown);
dropdown.setValue(currentValue).onChange(async (value) => {
await this.lazyPlugin.updatePluginSettings(plugin.id, value);
this.lazyPlugin.setPluginStartup(plugin.id).then();
});
}).then((setting) => {
if (this.lazyPlugin.settings.showDescriptions) {
setting.setDesc(plugin.description);
}
});
});
}
/**
* Add the dropdown select options for each delay type
*/
addDelayOptions(el) {
Object.keys(LoadingMethods).forEach((key) => {
el.addOption(key, LoadingMethods[key]);
});
}
/**
* Add a filter button in the header of the plugin list
*/
addFilterButton(el, text, value) {
const link = el.createEl("button", { text });
link.addClass("lazy-plugin-filter");
link.onclick = () => {
this.filterMethod = value;
this.buildPluginList();
};
}
};
// src/main.ts
var lazyPluginId = require_manifest().id;
var LazyPlugin = class extends import_obsidian2.Plugin {
constructor() {
super(...arguments);
this.device = "desktop/global";
this.pendingTimeouts = [];
}
async onload() {
await this.loadSettings();
this.updateManifests();
await this.setInitialPluginsConfiguration();
this.addSettingTab(new SettingsTab(this.app, this));
this.manifests.forEach((plugin) => this.setPluginStartup(plugin.id));
}
/**
* Configure and load a plugin based on its startup settings.
*/
async setPluginStartup(pluginId) {
var _a, _b;
const obsidian = this.app.plugins;
const startupType = this.getPluginStartup(pluginId);
const isActiveOnStartup = obsidian.enabledPlugins.has(pluginId);
const isRunning = (_b = (_a = obsidian.plugins) == null ? void 0 : _a[pluginId]) == null ? void 0 : _b._loaded;
switch (startupType) {
case "disabled" /* disabled */:
await obsidian.disablePluginAndSave(pluginId);
break;
case "instant" /* instant */:
if (!isActiveOnStartup && !isRunning)
await obsidian.enablePluginAndSave(pluginId);
break;
case "short" /* short */:
case "long" /* long */:
if (isActiveOnStartup) {
await obsidian.disablePluginAndSave(pluginId);
await obsidian.enablePlugin(pluginId);
} else if (!isRunning) {
const seconds = startupType === "short" /* short */ ? this.settings.shortDelaySeconds : this.settings.longDelaySeconds;
const stagger = isNaN(this.settings.delayBetweenPlugins) ? 40 : this.settings.delayBetweenPlugins;
const delay = this.manifests.findIndex((x) => x.id === pluginId) * stagger;
const timeout = setTimeout(async () => {
var _a2, _b2;
if (!((_b2 = (_a2 = obsidian.plugins) == null ? void 0 : _a2[pluginId]) == null ? void 0 : _b2._loaded)) {
if (this.data.showConsoleLog) {
console.log(`Starting ${pluginId} after a ${startupType} delay`);
}
await obsidian.enablePlugin(pluginId);
}
}, seconds * 1e3 + delay);
this.pendingTimeouts.push(timeout);
}
break;
}
}
/**
* Get the startup type for a given pluginId, falling back to Obsidian's current
* loading method (enabled/disabled) if no configuration is found for this plugin.
*/
getPluginStartup(pluginId) {
var _a, _b;
return ((_b = (_a = this.settings.plugins) == null ? void 0 : _a[pluginId]) == null ? void 0 : _b.startupType) || this.settings.defaultStartupType || (this.app.plugins.enabledPlugins.has(pluginId) ? "instant" /* instant */ : "disabled" /* disabled */);
}
async loadSettings() {
this.data = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
this.data.desktop = Object.assign({}, DEFAULT_DEVICE_SETTINGS, this.data.desktop);
if (this.data.dualConfigs && import_obsidian2.Platform.isMobile) {
if (!this.data.mobile) {
this.data.mobile = JSON.parse(JSON.stringify(this.data.desktop));
} else {
this.data.mobile = Object.assign({}, DEFAULT_DEVICE_SETTINGS, this.data.mobile);
}
this.settings = this.data.mobile;
this.device = "mobile";
} else {
this.settings = this.data.desktop;
this.device = "desktop/global";
}
}
async saveSettings() {
await this.saveData(this.data);
}
/**
* Set the initial config value for all installed plugins. This will also set the value
* for any new plugin in the future, depending on what default value is chosen in the
* Settings page.
*/
async setInitialPluginsConfiguration() {
var _a, _b;
for (const plugin of this.manifests) {
if (!((_b = (_a = this.settings.plugins) == null ? void 0 : _a[plugin.id]) == null ? void 0 : _b.startupType)) {
await this.updatePluginSettings(plugin.id, this.getPluginStartup(plugin.id));
}
}
}
/**
* Update an individual plugin's configuration in the settings file
*/
async updatePluginSettings(pluginId, startupType) {
this.settings.plugins[pluginId] = { startupType };
await this.saveSettings();
}
updateManifests() {
this.manifests = Object.values(this.app.plugins.manifests).filter((plugin) => (
// Filter out the Lazy Loader plugin
plugin.id !== lazyPluginId && // Filter out desktop-only plugins from mobile
!(import_obsidian2.Platform.isMobile && plugin.isDesktopOnly)
)).sort((a, b) => a.name.localeCompare(b.name));
}
/*
* Originally this was set up so that when the plugin unloaded, it would enablePluginAndSave()
* the other plugins based on their Lazy Loader startup config.
*
* The problem with that is that the onunload() function is called during plugin *update* also,
* which means that every time you get an update for this plugin, it would cause:
*
* a) A slowdown across the vault for the next 1-2 restarts.
* b) The possibility of plugins being loaded twice / duplicated.
*
* Since across all users, updating the plugin is common, and uninstalling the plugin is less
* common, I decided to remove this function.
*
* I apologise to the people who have to manually re-enable their plugins once they uninstall this one :(
*
* --------------------
*
* When the Lazy Loader plugin is disabled / deleted from Obsidian, iterate over
* the configured plugins and re-enable any that are set to be delayed.
*
* This will cause a short slowdown as each plugin has to be disabled and then
* re-enabled to save its new startup state.
*
async onunload () {
// Clear any pending timeouts
this.pendingTimeouts.forEach(timeout => clearTimeout(timeout))
// Iterate over the configured plugins
for (const plugin of this.manifests) {
const startupType = this.settings.plugins?.[plugin.id]?.startupType
if (startupType !== LoadingMethod.disabled) {
await this.app.plugins.disablePlugin(plugin.id)
await this.app.plugins.enablePluginAndSave(plugin.id)
console.log(`Set ${plugin.id} back to instant start`)
}
}
} */
};
/* nosourcemap */
-11
View File
@@ -1,11 +0,0 @@
{
"id": "lazy-plugins",
"name": "Lazy Plugin Loader",
"version": "1.0.21",
"minAppVersion": "1.6.0",
"description": "Load plugins with a delay on startup, so that you can get your app startup down into the sub-second loading time.",
"author": "Alan Grainger",
"authorUrl": "https://github.com/alangrainger",
"fundingUrl": "https://ko-fi.com/alan_",
"isDesktopOnly": false
}
-4
View File
@@ -1,4 +0,0 @@
.lazy-plugin-filter {
margin: 4px;
font-size: 90%;
}
+46904
View File
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "link-tree",
"name": "Link Tree",
"version": "1.0.0",
"minAppVersion": "0.15.0",
"description": "View file links and backlinks as a recursively expandable, filterable list with editable text, combining the structure of outliners like Dynalist & WorkFlowy with the flexibility of Obsidian.",
"author": "Joshua Reinier",
"authorUrl": "https://joshuareinier.com",
"fundingUrl": "https://joshuareinier.com",
"isDesktopOnly": false
}
+790
View File
@@ -0,0 +1,790 @@
/* src/plugins/obsidian-link-tree/src/styles.css */
*,
::before,
::after {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / 0.5);
--tw-ring-offset-shadow: 0 0 #0000;
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
}
::backdrop {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-rotate: 0;
--tw-skew-x: 0;
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-pan-x: ;
--tw-pan-y: ;
--tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ;
--tw-slashed-zero: ;
--tw-numeric-figure: ;
--tw-numeric-spacing: ;
--tw-numeric-fraction: ;
--tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / 0.5);
--tw-ring-offset-shadow: 0 0 #0000;
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
--tw-blur: ;
--tw-brightness: ;
--tw-contrast: ;
--tw-grayscale: ;
--tw-hue-rotate: ;
--tw-invert: ;
--tw-saturate: ;
--tw-sepia: ;
--tw-drop-shadow: ;
--tw-backdrop-blur: ;
--tw-backdrop-brightness: ;
--tw-backdrop-contrast: ;
--tw-backdrop-grayscale: ;
--tw-backdrop-hue-rotate: ;
--tw-backdrop-invert: ;
--tw-backdrop-opacity: ;
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
}
.fixed {
position: fixed;
}
.\!absolute {
position: absolute !important;
}
.absolute {
position: absolute;
}
.relative {
position: relative;
}
.sticky {
position: sticky;
}
.left-0 {
left: 0px;
}
.left-1\/2 {
left: 50%;
}
.top-0 {
top: 0px;
}
.top-1\/2 {
top: 50%;
}
.top-4 {
top: 1rem;
}
.z-10 {
z-index: 10;
}
.z-30 {
z-index: 30;
}
.z-40 {
z-index: 40;
}
.\!mx-0 {
margin-left: 0px !important;
margin-right: 0px !important;
}
.mx-1 {
margin-left: 0.25rem;
margin-right: 0.25rem;
}
.my-0 {
margin-top: 0px;
margin-bottom: 0px;
}
.my-1 {
margin-top: 0.25rem;
margin-bottom: 0.25rem;
}
.my-2 {
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
.my-4 {
margin-top: 1rem;
margin-bottom: 1rem;
}
.-mt-1 {
margin-top: -0.25rem;
}
.ml-1 {
margin-left: 0.25rem;
}
.ml-2 {
margin-left: 0.5rem;
}
.mr-1 {
margin-right: 0.25rem;
}
.mr-2 {
margin-right: 0.5rem;
}
.mt-1 {
margin-top: 0.25rem;
}
.mt-2 {
margin-top: 0.5rem;
}
.block {
display: block;
}
.inline {
display: inline;
}
.flex {
display: flex;
}
.grid {
display: grid;
}
.hidden {
display: none;
}
.aspect-square {
aspect-ratio: 1 / 1;
}
.\!h-fit {
height: -moz-fit-content !important;
height: fit-content !important;
}
.h-0 {
height: 0px;
}
.h-0\.5 {
height: 0.125rem;
}
.h-1 {
height: 0.25rem;
}
.h-1\.5 {
height: 0.375rem;
}
.h-12 {
height: 3rem;
}
.h-2 {
height: 0.5rem;
}
.h-3 {
height: 0.75rem;
}
.h-4 {
height: 1rem;
}
.h-6 {
height: 1.5rem;
}
.h-\[16px\] {
height: 16px;
}
.h-\[28px\] {
height: 28px;
}
.h-\[75vh\] {
height: 75vh;
}
.h-full {
height: 100%;
}
.h-line {
height: calc(var(--line-height-normal) * 1em);
}
.max-h-\[50\%\] {
max-height: 50%;
}
.max-h-\[calc\(28px\*2\+2px\)\] {
max-height: calc(28px * 2 + 2px);
}
.min-h-\[12px\] {
min-height: 12px;
}
.min-h-\[4px\] {
min-height: 4px;
}
.min-h-line {
min-height: var(--font-text-size);
}
.\!w-8 {
width: 2rem !important;
}
.\!w-full {
width: 100% !important;
}
.w-1 {
width: 0.25rem;
}
.w-1\.5 {
width: 0.375rem;
}
.w-16 {
width: 4rem;
}
.w-2 {
width: 0.5rem;
}
.w-3 {
width: 0.75rem;
}
.w-4 {
width: 1rem;
}
.w-6 {
width: 1.5rem;
}
.w-7 {
width: 1.75rem;
}
.w-8 {
width: 2rem;
}
.w-\[4em\] {
width: 4em;
}
.w-fit {
width: -moz-fit-content;
width: fit-content;
}
.w-full {
width: 100%;
}
.min-w-\[24px\] {
min-width: 24px;
}
.max-w-\[75\%\] {
max-width: 75%;
}
.flex-none {
flex: none;
}
.grow {
flex-grow: 1;
}
.-translate-x-1\/2 {
--tw-translate-x: -50%;
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));
}
.-translate-y-1\/2 {
--tw-translate-y: -50%;
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-grab {
cursor: grab;
}
.cursor-ns-resize {
cursor: ns-resize;
}
.cursor-pointer {
cursor: pointer;
}
.select-none {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.snap-x {
scroll-snap-type: x var(--tw-scroll-snap-strictness);
}
.snap-y {
scroll-snap-type: y var(--tw-scroll-snap-strictness);
}
.snap-mandatory {
--tw-scroll-snap-strictness: mandatory ;
}
.grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.flex-col {
flex-direction: column;
}
.flex-wrap {
flex-wrap: wrap;
}
.items-center {
align-items: center;
}
.justify-end {
justify-content: flex-end;
}
.justify-center {
justify-content: center;
}
.justify-around {
justify-content: space-around;
}
.space-x-1 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.25rem * var(--tw-space-x-reverse));
margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-4 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(1rem * var(--tw-space-x-reverse));
margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.overflow-hidden {
overflow: hidden;
}
.\!overflow-x-auto {
overflow-x: auto !important;
}
.overflow-x-auto {
overflow-x: auto;
}
.overflow-y-auto {
overflow-y: auto;
}
.overflow-x-hidden {
overflow-x: hidden;
}
.overflow-y-clip {
overflow-y: clip;
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.whitespace-nowrap {
white-space: nowrap;
}
.break-words {
overflow-wrap: break-word;
}
.rounded {
border-radius: 0.25rem;
}
.rounded-checkbox {
border-radius: var(--checkbox-radius);
}
.rounded-full {
border-radius: 9999px;
}
.rounded-icon {
border-radius: var(--clickable-icon-radius);
}
.rounded-lg {
border-radius: 0.5rem;
}
.border {
border-width: 1px;
}
.border-t {
border-top-width: 1px;
}
.border-solid {
border-style: solid;
}
.\!border-none {
border-style: none !important;
}
.border-none {
border-style: none;
}
.border-faint {
border-color: var(--text-faint);
}
.border-muted {
border-color: var(--text-muted);
}
.\!bg-accent {
background-color: var(--text-accent) !important;
}
.\!bg-selection {
background-color: var(--text-selection) !important;
}
.bg-faint {
background-color: var(--text-faint);
}
.bg-gray-500\/5 {
background-color: rgb(107 114 128 / 0.05);
}
.bg-muted {
background-color: var(--text-muted);
}
.bg-primary {
background-color: var(--background-primary);
}
.bg-primary-alt {
background-color: var(--background-primary-alt);
}
.bg-red-500\/20 {
background-color: rgb(239 68 68 / 0.2);
}
.bg-red-800\/50 {
background-color: rgb(153 27 27 / 0.5);
}
.bg-secondary-alt {
background-color: var(--background-secondary-alt);
}
.bg-selection {
background-color: var(--text-selection);
}
.bg-transparent {
background-color: transparent;
}
.p-0 {
padding: 0px;
}
.p-0\.5 {
padding: 0.125rem;
}
.p-1 {
padding: 0.25rem;
}
.p-4 {
padding: 1rem;
}
.px-1 {
padding-left: 0.25rem;
padding-right: 0.25rem;
}
.px-4 {
padding-left: 1rem;
padding-right: 1rem;
}
.py-0 {
padding-top: 0px;
padding-bottom: 0px;
}
.py-0\.5 {
padding-top: 0.125rem;
padding-bottom: 0.125rem;
}
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
.py-2 {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
.pb-0 {
padding-bottom: 0px;
}
.pb-0\.5 {
padding-bottom: 0.125rem;
}
.pb-1 {
padding-bottom: 0.25rem;
}
.pb-2 {
padding-bottom: 0.5rem;
}
.pb-4 {
padding-bottom: 1rem;
}
.pl-1 {
padding-left: 0.25rem;
}
.pl-2 {
padding-left: 0.5rem;
}
.pl-6 {
padding-left: 1.5rem;
}
.pl-7 {
padding-left: 1.75rem;
}
.pr-2 {
padding-right: 0.5rem;
}
.pt-4 {
padding-top: 1rem;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.font-menu {
font-family: var(--font-interface);
}
.font-sans {
font-family: var(--font-text);
}
.font-serif {
font-family: var(--font-text);
}
.\!text-xs {
font-size: 0.75rem !important;
line-height: 1rem !important;
}
.text-base {
font-size: var(--font-text-size);
}
.text-lg {
font-size: 1.125rem;
line-height: 1.75rem;
}
.text-sm {
font-size: 0.875rem;
line-height: 1.25rem;
}
.text-xs {
font-size: 0.75rem;
line-height: 1rem;
}
.font-bold {
font-weight: 700;
}
.leading-line {
line-height: var(--line-height-normal);
}
.text-accent {
color: var(--text-accent);
}
.text-faint {
color: var(--text-faint);
}
.text-muted {
color: var(--text-muted);
}
.text-normal {
color: var(--text-normal);
}
.line-through {
text-decoration-line: line-through;
}
.opacity-0 {
opacity: 0;
}
.opacity-40 {
opacity: 0.4;
}
.opacity-50 {
opacity: 0.5;
}
.opacity-75 {
opacity: 0.75;
}
.\!shadow-none {
--tw-shadow: 0 0 #0000 !important;
--tw-shadow-colored: 0 0 #0000 !important;
box-shadow:
var(--tw-ring-offset-shadow, 0 0 #0000),
var(--tw-ring-shadow, 0 0 #0000),
var(--tw-shadow) !important;
}
.shadow-none {
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
box-shadow:
var(--tw-ring-offset-shadow, 0 0 #0000),
var(--tw-ring-shadow, 0 0 #0000),
var(--tw-shadow);
}
.invert {
--tw-invert: invert(100%);
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);
}
.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);
}
.backdrop-blur {
--tw-backdrop-blur: blur(8px);
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
transition-property:
color,
background-color,
border-color,
text-decoration-color,
fill,
stroke,
opacity,
box-shadow,
transform,
filter,
-webkit-backdrop-filter;
transition-property:
color,
background-color,
border-color,
text-decoration-color,
fill,
stroke,
opacity,
box-shadow,
transform,
filter,
backdrop-filter;
transition-property:
color,
background-color,
border-color,
text-decoration-color,
fill,
stroke,
opacity,
box-shadow,
transform,
filter,
backdrop-filter,
-webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.transition-colors {
transition-property:
color,
background-color,
border-color,
text-decoration-color,
fill,
stroke;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.transition-opacity {
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
.duration-1000 {
transition-duration: 1000ms;
}
.duration-300 {
transition-duration: 300ms;
}
.ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-linear {
transition-timing-function: linear;
}
.hover\:border-b:hover {
border-bottom-width: 1px;
}
.hover\:border-normal:hover {
border-color: var(--text-normal);
}
.hover\:underline:hover {
text-decoration-line: underline;
}
.active\:\!w-full:active {
width: 100% !important;
}
.group:hover .group-hover\:opacity-100 {
opacity: 1;
}
.child\:relative > * {
position: relative;
}
.child\:h-full > * {
height: 100%;
}
.child\:w-1\/2 > * {
width: 50%;
}
.child\:w-1\/3 > * {
width: 33.333333%;
}
.child\:w-1\/4 > * {
width: 25%;
}
.child\:w-\[calc\(100\%\/7\)\] > * {
width: calc(100% / 7);
}
.child\:w-full > * {
width: 100%;
}
.child\:flex-none > * {
flex: none;
}
.child\:snap-start > * {
scroll-snap-align: start;
}
.child\:truncate > * {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.child\:p-2 > * {
padding: 0.5rem;
}
.child\:px-1 > * {
padding-left: 0.25rem;
padding-right: 0.25rem;
}
.child\:pb-0 > * {
padding-bottom: 0px;
}
@media (hover: hover) {
.mouse\:hover\:border:hover {
border-width: 1px;
}
.mouse\:hover\:border-solid:hover {
border-style: solid;
}
}
+539
View File
@@ -0,0 +1,539 @@
{
"vaultProfiles": [
{
"id": "default",
"name": "Default",
"fileVisibility": "supported",
"propertyKeys": [],
"hiddenFolders": [],
"hiddenTags": [],
"hiddenFileNames": [],
"hiddenFileTags": [],
"hiddenFileProperties": [],
"navigationBanner": null,
"periodicNotesFolder": "daily",
"shortcuts": [
{
"type": "note",
"path": "S2 LOGOS.md"
},
{
"type": "note",
"path": "désintégration audioactive.md"
}
],
"navRainbow": {
"mode": "foreground",
"balanceHueLuminance": true,
"separateThemeColors": false,
"shortcuts": {
"enabled": false,
"firstColor": "#ef4444",
"lastColor": "#8b5cf6",
"darkFirstColor": "#ef4444",
"darkLastColor": "#8b5cf6",
"transitionStyle": "rgb"
},
"recent": {
"enabled": false,
"firstColor": "#ef4444",
"lastColor": "#8b5cf6",
"darkFirstColor": "#ef4444",
"darkLastColor": "#8b5cf6",
"transitionStyle": "rgb"
},
"folders": {
"enabled": true,
"firstColor": "#ef4444",
"lastColor": "#8b5cf6",
"darkFirstColor": "#fb7185",
"darkLastColor": "#c084fc",
"transitionStyle": "hue",
"scope": "root"
},
"tags": {
"enabled": true,
"firstColor": "#ef4444",
"lastColor": "#8b5cf6",
"darkFirstColor": "#fb7185",
"darkLastColor": "#c084fc",
"transitionStyle": "hue",
"scope": "root"
},
"properties": {
"enabled": false,
"firstColor": "#ef4444",
"lastColor": "#8b5cf6",
"darkFirstColor": "#fb7185",
"darkLastColor": "#c084fc",
"transitionStyle": "hue",
"scope": "root"
}
}
}
],
"vaultProfile": "default",
"vaultTitle": "navigation",
"syncModes": {
"vaultProfile": "synced",
"homepage": "synced",
"folderSortOrder": "synced",
"tagSortOrder": "synced",
"propertySortOrder": "synced",
"includeDescendantNotes": "synced",
"useFloatingToolbars": "synced",
"dualPane": "synced",
"dualPaneOrientation": "synced",
"paneTransitionDuration": "synced",
"toolbarVisibility": "synced",
"pinNavigationBanner": "synced",
"navIndent": "synced",
"navItemHeight": "synced",
"navItemHeightScaleText": "synced",
"calendarPlacement": "synced",
"calendarLeftPlacement": "synced",
"calendarWeeksToShow": "synced",
"compactItemHeight": "synced",
"compactItemHeightScaleText": "synced",
"featureImageSize": "synced",
"featureImagePixelSize": "synced",
"uiScale": "synced"
},
"createNewNotesInNewTab": false,
"autoRevealActiveFile": true,
"autoRevealShortestPath": true,
"autoRevealIgnoreRightSidebar": true,
"autoRevealIgnoreOtherWindows": true,
"paneTransitionDuration": 150,
"multiSelectModifier": "cmdCtrl",
"enterToOpenFiles": false,
"shiftEnterOpenContext": "tab",
"cmdCtrlEnterOpenContext": "split",
"mouseBackForwardAction": "history",
"startView": "files",
"showInfoButtons": true,
"homepage": {
"source": "none",
"file": null
},
"dualPane": true,
"dualPaneOrientation": "horizontal",
"showTooltips": false,
"showTooltipPath": true,
"desktopBackground": "separate",
"desktopScale": 1,
"mobileScale": 1,
"useFloatingToolbars": true,
"toolbarVisibility": {
"navigation": {
"toggleDualPane": true,
"expandCollapse": true,
"calendar": true,
"hiddenItems": true,
"rootReorder": true,
"newFolder": true
},
"list": {
"back": true,
"search": true,
"descendants": true,
"sort": true,
"appearance": true,
"newNote": true
}
},
"interfaceIcons": {},
"colorIconOnly": false,
"dateFormat": "MMM D, YYYY",
"timeFormat": "h:mm a",
"calendarTemplateFolder": "",
"confirmBeforeDelete": true,
"deleteAttachments": "ask",
"moveFileConflicts": "ask",
"externalIconProviders": {},
"checkForUpdatesOnStart": true,
"pinNavigationBanner": true,
"showNoteCount": true,
"separateNoteCounts": true,
"showIndentGuides": true,
"rootLevelSpacing": 0,
"navIndent": 16,
"navItemHeight": 28,
"navItemHeightScaleText": true,
"collapseBehavior": "all",
"smartCollapse": true,
"autoSelectFirstFileOnFocusChange": false,
"autoExpandNavItems": true,
"springLoadedFolders": true,
"springLoadedFoldersInitialDelay": 0.5,
"springLoadedFoldersSubsequentDelay": 0.5,
"showSectionIcons": true,
"showShortcuts": true,
"shortcutBadgeDisplay": "index",
"skipAutoScroll": false,
"showRecentNotes": true,
"hideRecentNotes": "none",
"pinRecentNotesWithShortcuts": false,
"recentNotesCount": 5,
"showFolderIcons": true,
"showRootFolder": true,
"inheritFolderColors": true,
"folderSortOrder": "alpha-asc",
"enableFolderNotes": false,
"folderNoteType": "markdown",
"folderNoteName": "",
"folderNoteNamePattern": "",
"folderNoteTemplate": null,
"enableFolderNoteLinks": true,
"hideFolderNoteInList": true,
"pinCreatedFolderNote": false,
"openFolderNotesInNewTab": false,
"showTags": true,
"showTagIcons": true,
"showAllTagsFolder": true,
"showUntagged": true,
"scopeTagsToCurrentContext": false,
"tagSortOrder": "alpha-asc",
"inheritTagColors": true,
"keepEmptyTagsProperty": false,
"showProperties": true,
"showPropertyIcons": true,
"inheritPropertyColors": true,
"propertySortOrder": "alpha-asc",
"showAllPropertiesFolder": true,
"scopePropertiesToCurrentContext": false,
"defaultListMode": "standard",
"includeDescendantNotes": true,
"defaultFolderSort": "modified-desc",
"propertySortKey": "",
"propertySortSecondary": "title",
"revealFileOnListChanges": true,
"listPaneTitle": "header",
"noteGrouping": "date",
"showSelectedNavigationPills": false,
"filterPinnedByFolder": false,
"showPinnedGroupHeader": true,
"showPinnedIcon": true,
"optimizeNoteHeight": true,
"compactItemHeight": 28,
"compactItemHeightScaleText": true,
"showQuickActions": true,
"quickActionRevealInFolder": false,
"quickActionAddTag": true,
"quickActionAddToShortcuts": true,
"quickActionPinNote": true,
"quickActionOpenInNewTab": false,
"useFrontmatterMetadata": false,
"frontmatterIconField": "icon",
"frontmatterColorField": "color",
"frontmatterBackgroundField": "background",
"frontmatterNameField": "",
"frontmatterCreatedField": "",
"frontmatterModifiedField": "",
"frontmatterDateFormat": "",
"showFileIconUnfinishedTask": false,
"showFileBackgroundUnfinishedTask": false,
"unfinishedTaskBackgroundColor": "#ef000050",
"showFileIcons": true,
"showFilenameMatchIcons": false,
"fileNameIconMap": {},
"showCategoryIcons": false,
"fileTypeIconMap": {},
"fileNameRows": 1,
"showFilePreview": true,
"skipHeadingsInPreview": true,
"skipCodeBlocksInPreview": true,
"stripHtmlInPreview": true,
"stripLatexInPreview": true,
"previewRows": 2,
"previewProperties": [],
"previewPropertiesFallback": true,
"showFeatureImage": true,
"featureImageProperties": [],
"featureImageExcludeProperties": [],
"featureImageSize": "64",
"featureImagePixelSize": "256",
"forceSquareFeatureImage": true,
"downloadExternalFeatureImages": true,
"showFileTags": true,
"colorFileTags": true,
"prioritizeColoredFileTags": true,
"showFileTagAncestors": false,
"showFileTagsInCompactMode": false,
"showFileProperties": true,
"colorFileProperties": true,
"prioritizeColoredFileProperties": true,
"showFilePropertiesInCompactMode": false,
"showPropertiesOnSeparateRows": false,
"enablePropertyInternalLinks": true,
"enablePropertyExternalLinks": true,
"notePropertyType": "none",
"showFileDate": true,
"alphabeticalDateMode": "modified",
"showParentFolder": true,
"parentFolderClickRevealsFile": false,
"showParentFolderColor": false,
"showParentFolderIcon": false,
"calendarEnabled": true,
"calendarPlacement": "left-sidebar",
"calendarConfirmBeforeCreate": true,
"calendarLocale": "fr",
"calendarWeekendDays": "sat-sun",
"calendarMonthHeadingFormat": "full",
"calendarHighlightToday": true,
"calendarShowFeatureImage": true,
"calendarMonthHighlights": {},
"calendarShowWeekNumber": false,
"calendarShowQuarter": false,
"calendarShowYearCalendar": true,
"calendarLeftPlacement": "navigation",
"calendarWeeksToShow": 6,
"calendarIntegrationMode": "daily-notes",
"calendarCustomFilePattern": "YYYY/YYYYMMDD",
"calendarCustomWeekPattern": "gggg/[W]ww",
"calendarCustomMonthPattern": "YYYY/YYYYMM",
"calendarCustomQuarterPattern": "YYYY/[Q]Q",
"calendarCustomYearPattern": "YYYY",
"calendarCustomFileTemplate": null,
"calendarCustomWeekTemplate": null,
"calendarCustomMonthTemplate": null,
"calendarCustomQuarterTemplate": null,
"calendarCustomYearTemplate": null,
"keyboardShortcuts": {
"pane:move-up": [
{
"key": "ArrowUp",
"modifiers": []
}
],
"pane:move-down": [
{
"key": "ArrowDown",
"modifiers": []
}
],
"pane:page-up": [
{
"key": "PageUp",
"modifiers": []
}
],
"pane:page-down": [
{
"key": "PageDown",
"modifiers": []
}
],
"pane:home": [
{
"key": "Home",
"modifiers": []
}
],
"pane:end": [
{
"key": "End",
"modifiers": []
}
],
"navigation:collapse-or-parent": [
{
"key": "ArrowLeft",
"modifiers": []
}
],
"navigation:expand-or-focus-list": [
{
"key": "ArrowRight",
"modifiers": []
}
],
"navigation:focus-list": [
{
"key": "Tab",
"modifiers": []
}
],
"pane:delete-selected": [
{
"key": "Delete",
"modifiers": []
},
{
"key": "Backspace",
"modifiers": []
}
],
"list:focus-navigation": [
{
"key": "ArrowLeft",
"modifiers": []
},
{
"key": "Tab",
"modifiers": [
"Shift"
]
}
],
"list:focus-editor": [
{
"key": "ArrowRight",
"modifiers": []
},
{
"key": "Tab",
"modifiers": []
}
],
"list:select-all": [
{
"key": "A",
"modifiers": [
"Mod"
]
}
],
"list:extend-selection-up": [
{
"key": "ArrowUp",
"modifiers": [
"Shift"
]
}
],
"list:extend-selection-down": [
{
"key": "ArrowDown",
"modifiers": [
"Shift"
]
}
],
"list:range-to-start": [
{
"key": "Home",
"modifiers": [
"Shift"
]
}
],
"list:range-to-end": [
{
"key": "End",
"modifiers": [
"Shift"
]
}
],
"search:focus-list": [
{
"key": "Tab",
"modifiers": []
},
{
"key": "Enter",
"modifiers": []
}
],
"search:focus-navigation": [
{
"key": "Tab",
"modifiers": [
"Shift"
]
}
],
"search:close": [
{
"key": "Escape",
"modifiers": []
}
]
},
"customVaultName": "",
"pinnedNotes": {},
"fileIcons": {},
"fileColors": {},
"fileBackgroundColors": {},
"folderIcons": {},
"folderColors": {},
"folderBackgroundColors": {},
"folderSortOverrides": {},
"folderTreeSortOverrides": {},
"folderAppearances": {
"sources": {
"titleRows": 2
}
},
"tagIcons": {},
"tagColors": {},
"tagBackgroundColors": {},
"tagSortOverrides": {},
"tagTreeSortOverrides": {},
"tagAppearances": {},
"propertyIcons": {},
"propertyColors": {},
"propertyBackgroundColors": {},
"propertySortOverrides": {},
"propertyTreeSortOverrides": {},
"propertyAppearances": {},
"virtualFolderColors": {},
"virtualFolderBackgroundColors": {},
"navigationSeparators": {},
"userColors": [
"#ffffff",
"#d9d9d9",
"#a6a6a6",
"#737373",
"#000000",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040",
"#404040"
],
"lastShownVersion": "2.5.7",
"rootFolderOrder": [
"sources",
"attachments",
"blog",
"daily",
"env",
"Excalidraw",
"exports",
"gists",
"informatique",
"kanban",
"media",
"quickadd_scripts",
"templates"
],
"rootTagOrder": [
"__untagged__",
"s",
"t",
"task",
"zotero",
"excalidraw",
"flashcards",
"not-done",
"dataview-test",
"devoir-fait",
"howto",
"micrometa",
"obsidan_export",
"pocket"
],
"rootPropertyOrder": []
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "notebook-navigator",
"name": "Notebook Navigator",
"version": "2.5.7",
"minAppVersion": "1.8.7",
"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",
"fundingUrl": "https://github.com/sponsors/johansan/",
"isDesktopOnly": false
}
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -627,8 +627,7 @@ p.align-center {
--dbg-size: 1px; --dbg-size: 1px;
border: 1px solid red; border: 1px solid red;
} }
.reset-margin, .reset-margin {
.reset-margin > * {
--r-block-margin: 0; --r-block-margin: 0;
--r-heading-margin: 0; --r-heading-margin: 0;
} }
@@ -75,13 +75,13 @@
--r-selection-color: #fff; --r-selection-color: #fff;
} }
.reveal-viewport { .reveal-viewport {
background: #1c1e20; background: rgb(28, 30, 32);
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20)); background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background-color: var(--r-background-color); background-color: var(--r-background-color);
} }
.reveal { .reveal {
@@ -179,8 +179,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -360,6 +360,9 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
.reveal .slides { .reveal .slides {
text-align: left; text-align: left;
} }
+8 -8
View File
@@ -1,21 +1,21 @@
{ {
"port": "", "port": "3123",
"autoReload": true, "autoReload": true,
"exportDirectory": "/presentations", "exportDirectory": "/presentations",
"enableChalkboard": true, "enableChalkboard": false,
"enableOverview": true, "enableOverview": true,
"enableMenu": true, "enableMenu": true,
"enablePointer": false, "enablePointer": true,
"enableTimeBar": false, "enableTimeBar": false,
"theme": "black", "theme": "serif",
"highlightTheme": "zenburn", "highlightTheme": "zenburn",
"transition": "fade", "transition": "slide",
"transitionSpeed": "normal", "transitionSpeed": "normal",
"controls": false, "controls": true,
"progress": true, "progress": true,
"slideNumber": true, "slideNumber": true,
"showGrid": false, "showGrid": false,
"autoComplete": "inPreview", "autoComplete": "never",
"paneMode": "tab", "paneMode": "tab",
"motm": "" "motm": "2026-03-29T19:04:49.274Z"
} }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -57,13 +57,13 @@
--r-selection-color: #fff; --r-selection-color: #fff;
} }
.reveal-viewport { .reveal-viewport {
background: #f7f2d3; background: rgb(247, 242, 211);
background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); background: -moz-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3)); background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(255, 255, 255)), color-stop(100%, rgb(247, 242, 211)));
background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); background: -webkit-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); background: -o-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); background: -ms-radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%); background: radial-gradient(center, circle cover, rgb(255, 255, 255) 0%, rgb(247, 242, 211) 100%);
background-color: var(--r-background-color); background-color: var(--r-background-color);
} }
.reveal { .reveal {
@@ -161,8 +161,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -342,3 +342,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -146,8 +146,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -327,3 +327,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -151,8 +151,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -332,6 +332,9 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
.reveal p { .reveal p {
font-weight: 300; font-weight: 300;
text-shadow: 1px 1px #222; text-shadow: 1px 1px #222;
@@ -146,8 +146,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -327,6 +327,9 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
.reveal table th, .reveal table th,
.reveal table td { .reveal table td {
vertical-align: top; vertical-align: top;
@@ -57,13 +57,13 @@
--r-selection-color: #fff; --r-selection-color: #fff;
} }
.reveal-viewport { .reveal-viewport {
background: #1c1e20; background: rgb(28, 30, 32);
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20)); background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background-color: var(--r-background-color); background-color: var(--r-background-color);
} }
.reveal { .reveal {
@@ -161,8 +161,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -342,3 +342,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -75,13 +75,13 @@
--r-selection-color: #fff; --r-selection-color: #fff;
} }
.reveal-viewport { .reveal-viewport {
background: #1c1e20; background: rgb(28, 30, 32);
background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -moz-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20)); background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgb(85, 90, 95)), color-stop(100%, rgb(28, 30, 32)));
background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -webkit-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -o-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: -ms-radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%); background: radial-gradient(center, circle cover, rgb(85, 90, 95) 0%, rgb(28, 30, 32) 100%);
background-color: var(--r-background-color); background-color: var(--r-background-color);
} }
.reveal { .reveal {
@@ -179,8 +179,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -360,6 +360,9 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
.reveal .slides { .reveal .slides {
text-align: left; text-align: left;
} }
@@ -148,8 +148,8 @@ html * {
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -329,3 +329,6 @@ html * {
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -144,8 +144,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -325,3 +325,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -152,8 +152,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -333,3 +333,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -144,8 +144,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -325,3 +325,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -150,8 +150,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -331,3 +331,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -139,8 +139,8 @@ html * {
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -320,3 +320,6 @@ html * {
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -146,8 +146,8 @@
.reveal img, .reveal img,
.reveal video, .reveal video,
.reveal iframe { .reveal iframe {
max-width: 95%; max-width: 100%;
max-height: 95%; max-height: 100%;
} }
.reveal strong, .reveal strong,
.reveal b { .reveal b {
@@ -327,3 +327,6 @@
canvas[data-chart] { canvas[data-chart] {
padding: 0.5em; padding: 0.5em;
} }
.reveal .hljs {
min-height: 50%;
}
@@ -1,3 +1,3 @@
{ {
"version": "1.15.0" "version": "1.20.0"
} }
@@ -0,0 +1,144 @@
var ElapsedTimeBar = {
// default value
barColor: 'rgb(200,0,0)',
pausedBarColor: 'rgba(200,0,0,.6)',
isPaused: false,
isFinished: false,
allottedTime: null,
timeProgressBar: null,
startTime: null,
pauseTime: null,
pauseTimeDuration: 0,
/**
* initialize elements
*/
handleReady() {
var config = Reveal.getConfig();
// activate this plugin if config.allottedTime exists.
if (!config.allottedTime) {
console.warn('Failed to start ElapsedTimeBar plugin. "allottedTime" property is required.');
return;
}
// set configurations
this.barColor = config.barColor || this.barColor;
this.pausedBarColor = config.pausedBarColor || this.pausedBarColor;
// calc barHeight from config.barHeight or page-progress container
var barHeight;
var pageProgressContainer = document.querySelector('.progress');
if (config.progressBarHeight) {
barHeight = parseInt(config.progressBarHeight, 10) + 'px';
// override height of page-progress container
pageProgressContainer && (pageProgressContainer.style.height = barHeight);
} else if (config.progress && pageProgressContainer) {
// get height from page-progress container
barHeight = pageProgressContainer.getBoundingClientRect().height + 'px';
} else {
// default
barHeight = '3px';
}
// create container of time-progress
var timeProgressContainer = document.createElement('div');
timeProgressContainer.classList.add('progress');
Object.entries({
display: 'block',
position: 'fixed',
bottom: config.progress ? barHeight : 0,
width: '100%',
height: barHeight
}).forEach(([k, v]) => {
timeProgressContainer.style[k] = v;
});
document.querySelector('.reveal').appendChild(timeProgressContainer);
// create content of time-progress
this.timeProgressBar = document.createElement('div');
Object.entries({
height: '100%',
willChange: 'width'
}).forEach(([k, v]) => {
this.timeProgressBar.style[k] = v;
});
timeProgressContainer.appendChild(this.timeProgressBar);
// start timer
this.start(config.allottedTime);
},
/**
* update repeatedly using requestAnimationFrame.
*/
loop() {
if (this.isPaused) return;
var now = +new Date();
var elapsedTime = now - this.startTime - this.pauseTimeDuration;
if (elapsedTime > this.allottedTime) {
this.timeProgressBar.style.width = '100%';
this.isFinished = true;
} else {
this.timeProgressBar.style.width = elapsedTime / this.allottedTime * 100 + '%';
requestAnimationFrame(this.loop.bind(this));
}
},
/**
* set color of progress bar
*/
setBarColor() {
if (this.isPaused) {
this.timeProgressBar.style.backgroundColor = this.pausedBarColor;
} else {
this.timeProgressBar.style.backgroundColor = this.barColor;
}
},
/**
* start(reset) timer with new allotted time.
* @param {number} allottedTime
* @param {number} [elapsedTime=0]
*/
start(allottedTime, elapsedTime = 0) {
this.isFinished = false;
this.isPaused = false;
this.allottedTime = allottedTime;
this.startTime = +new Date() - elapsedTime;
this.pauseTimeDuration = 0;
this.setBarColor();
this.loop();
},
reset() {
this.start(this.allottedTime);
},
pause() {
if (this.isPaused) return;
this.isPaused = true;
this.pauseTime = +new Date();
this.setBarColor();
},
resume() {
if (!this.isPaused) return;
// add paused time duration
this.isPaused = false;
this.pauseTimeDuration += new Date() - this.pauseTime;
this.pauseTime = null;
this.setBarColor();
this.loop();
}
};
if (Reveal.isReady()) {
ElapsedTimeBar.handleReady();
} else {
Reveal.addEventListener('ready', () => ElapsedTimeBar.handleReady());
}
@@ -106,7 +106,7 @@ const Plugin = {
var scrollState = { currentBlock: block }; var scrollState = { currentBlock: block };
// If there is at least one highlight step, generate // If there is more than one highlight step, generate
// fragments // fragments
var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) ); var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) );
if( highlightSteps.length > 1 ) { if( highlightSteps.length > 1 ) {
@@ -142,7 +142,7 @@ const Plugin = {
} ); } );
block.removeAttribute( 'data-fragment-index' ) block.removeAttribute( 'data-fragment-index' );
block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) ); block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) );
} }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@
* of external markdown documents. * of external markdown documents.
*/ */
import marked from 'marked' import { marked } from 'marked';
const DEFAULT_SLIDE_SEPARATOR = '\r?\n---\r?\n', const DEFAULT_SLIDE_SEPARATOR = '\r?\n---\r?\n',
DEFAULT_NOTES_SEPARATOR = 'notes?:', DEFAULT_NOTES_SEPARATOR = 'notes?:',
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -56,7 +56,7 @@ export const MathJax3 = () => {
let revealOptions = deck.getConfig().mathjax3 || {}; let revealOptions = deck.getConfig().mathjax3 || {};
let options = {...defaultOptions, ...revealOptions}; let options = {...defaultOptions, ...revealOptions};
options.tex = {...defaultOptions.tex, ...revealOptions.tex} options.tex = {...defaultOptions.tex, ...revealOptions.tex}
options.options = {...options.options, ...defaultOptions.options} options.options = {...defaultOptions.options, ...revealOptions.options}
options.startup = {...defaultOptions.startup, ...revealOptions.startup} options.startup = {...defaultOptions.startup, ...revealOptions.startup}
let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'; let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js';
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,16 +4,20 @@
import mermaid from "mermaid"; import mermaid from "mermaid";
mermaid.mermaidAPI.initialize({
// The node size will be calculated incorrectly if set `startOnLoad: start`,
// so we need to manually render.
startOnLoad: false,
});
const Plugin = { const Plugin = {
id: "mermaid", id: "mermaid",
init: function (reveal) { init: function (reveal) {
let { ...mermaidConfig } = reveal.getConfig().mermaid || {};
mermaid.mermaidAPI.initialize({
// The node size will be calculated incorrectly if set `startOnLoad: start`,
// so we need to manually render.
startOnLoad: false,
...mermaidConfig,
});
const mermaidEls = reveal.getRevealElement().querySelectorAll(".mermaid"); const mermaidEls = reveal.getRevealElement().querySelectorAll(".mermaid");
Array.from(mermaidEls).forEach(function (el) { Array.from(mermaidEls).forEach(function (el) {
@@ -30,8 +34,16 @@ const Plugin = {
insertSvg insertSvg
); );
} catch (error) { } catch (error) {
console.error(error, { graphDefinition, el }); let errorStr = "";
el.innerHTML = error.message; if (error?.str) {
// From mermaid 9.1.4, error.message does not exists anymore
errorStr = error.str;
}
if (error?.message) {
errorStr = error.message;
}
console.error(errorStr, { error, graphDefinition, el });
el.innerHTML = errorStr;
} }
}); });
}, },
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
import speakerViewHTML from './speaker-view.html'; import speakerViewHTML from './speaker-view.html';
import marked from 'marked'; import { marked } from 'marked';
/** /**
* Handles opening of and synchronization with the reveal.js * Handles opening of and synchronization with the reveal.js
@@ -15,141 +15,172 @@ import marked from 'marked';
*/ */
const Plugin = () => { const Plugin = () => {
let popup = null; let connectInterval;
let speakerWindow = null;
let deck;
let deck; /**
* Opens a new speaker view window.
*/
function openSpeakerWindow() {
function openNotes() { // If a window is already open, focus it
if( speakerWindow && !speakerWindow.closed ) {
speakerWindow.focus();
}
else {
speakerWindow = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' );
speakerWindow.marked = marked;
speakerWindow.document.write( speakerViewHTML );
if (popup && !popup.closed) { if( !speakerWindow ) {
popup.focus(); alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
return; return;
} }
popup = window.open( 'about:blank', 'reveal.js - Notes', 'width=1100,height=700' ); connect();
popup.marked = marked;
popup.document.write( speakerViewHTML );
if( !popup ) {
alert( 'Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.' );
return;
} }
/** }
* Connect to the notes window through a postmessage handshake.
* Using postmessage enables us to work in situations where the
* origins differ, such as a presentation being opened from the
* file system.
*/
function connect() {
// Keep trying to connect until we get a 'connected' message back
let connectInterval = setInterval( function() {
popup.postMessage( JSON.stringify( {
namespace: 'reveal-notes',
type: 'connect',
url: window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search,
state: deck.getState()
} ), '*' );
}, 500 );
window.addEventListener( 'message', function( event ) { /**
let data = JSON.parse( event.data ); * Reconnect with an existing speaker view window.
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) { */
clearInterval( connectInterval ); function reconnectSpeakerWindow( reconnectWindow ) {
onConnected();
} if( speakerWindow && !speakerWindow.closed ) {
if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) { speakerWindow.focus();
callRevealApi( data.methodName, data.arguments, data.callId ); }
} else {
} ); speakerWindow = reconnectWindow;
window.addEventListener( 'message', onPostMessage );
onConnected();
} }
/** }
* Calls the specified Reveal.js method with the provided argument
* and then pushes the result to the notes frame.
*/
function callRevealApi( methodName, methodArguments, callId ) {
let result = deck[methodName].apply( deck, methodArguments ); /**
popup.postMessage( JSON.stringify( { * Connect to the notes window through a postmessage handshake.
* Using postmessage enables us to work in situations where the
* origins differ, such as a presentation being opened from the
* file system.
*/
function connect() {
const presentationURL = deck.getConfig().url;
const url = typeof presentationURL === 'string' ? presentationURL :
window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search;
// Keep trying to connect until we get a 'connected' message back
connectInterval = setInterval( function() {
speakerWindow.postMessage( JSON.stringify( {
namespace: 'reveal-notes', namespace: 'reveal-notes',
type: 'return', type: 'connect',
result: result, state: deck.getState(),
callId: callId url
} ), '*' ); } ), '*' );
}, 500 );
window.addEventListener( 'message', onPostMessage );
}
/**
* Calls the specified Reveal.js method with the provided argument
* and then pushes the result to the notes frame.
*/
function callRevealApi( methodName, methodArguments, callId ) {
let result = deck[methodName].apply( deck, methodArguments );
speakerWindow.postMessage( JSON.stringify( {
namespace: 'reveal-notes',
type: 'return',
result,
callId
} ), '*' );
}
/**
* Posts the current slide data to the notes window.
*/
function post( event ) {
let slideElement = deck.getCurrentSlide(),
notesElement = slideElement.querySelector( 'aside.notes' ),
fragmentElement = slideElement.querySelector( '.current-fragment' );
let messageData = {
namespace: 'reveal-notes',
type: 'state',
notes: '',
markdown: false,
whitespace: 'normal',
state: deck.getState()
};
// Look for notes defined in a slide attribute
if( slideElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = slideElement.getAttribute( 'data-notes' );
messageData.whitespace = 'pre-wrap';
} }
/** // Look for notes defined in a fragment
* Posts the current slide data to the notes window if( fragmentElement ) {
*/ let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
function post( event ) { if( fragmentNotes ) {
notesElement = fragmentNotes;
let slideElement = deck.getCurrentSlide(), }
notesElement = slideElement.querySelector( 'aside.notes' ), else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
fragmentElement = slideElement.querySelector( '.current-fragment' ); messageData.notes = fragmentElement.getAttribute( 'data-notes' );
let messageData = {
namespace: 'reveal-notes',
type: 'state',
notes: '',
markdown: false,
whitespace: 'normal',
state: deck.getState()
};
// Look for notes defined in a slide attribute
if( slideElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = slideElement.getAttribute( 'data-notes' );
messageData.whitespace = 'pre-wrap'; messageData.whitespace = 'pre-wrap';
// In case there are slide notes
notesElement = null;
} }
// Look for notes defined in a fragment
if( fragmentElement ) {
let fragmentNotes = fragmentElement.querySelector( 'aside.notes' );
if( fragmentNotes ) {
notesElement = fragmentNotes;
}
else if( fragmentElement.hasAttribute( 'data-notes' ) ) {
messageData.notes = fragmentElement.getAttribute( 'data-notes' );
messageData.whitespace = 'pre-wrap';
// In case there are slide notes
notesElement = null;
}
}
// Look for notes defined in an aside element
if( notesElement ) {
messageData.notes = notesElement.innerHTML;
messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
}
popup.postMessage( JSON.stringify( messageData ), '*' );
} }
/** // Look for notes defined in an aside element
* Called once we have established a connection to the notes if( notesElement ) {
* window. messageData.notes = notesElement.innerHTML;
*/ messageData.markdown = typeof notesElement.getAttribute( 'data-markdown' ) === 'string';
function onConnected() {
// Monitor events that trigger a change in state
deck.on( 'slidechanged', post );
deck.on( 'fragmentshown', post );
deck.on( 'fragmenthidden', post );
deck.on( 'overviewhidden', post );
deck.on( 'overviewshown', post );
deck.on( 'paused', post );
deck.on( 'resumed', post );
// Post the initial state
post();
} }
connect(); speakerWindow.postMessage( JSON.stringify( messageData ), '*' );
}
function onPostMessage( event ) {
let data = JSON.parse( event.data );
if( data && data.namespace === 'reveal-notes' && data.type === 'connected' ) {
clearInterval( connectInterval );
onConnected();
}
else if( data && data.namespace === 'reveal-notes' && data.type === 'call' ) {
callRevealApi( data.methodName, data.arguments, data.callId );
}
}
/**
* Called once we have established a connection to the notes
* window.
*/
function onConnected() {
// Monitor events that trigger a change in state
deck.on( 'slidechanged', post );
deck.on( 'fragmentshown', post );
deck.on( 'fragmenthidden', post );
deck.on( 'overviewhidden', post );
deck.on( 'overviewshown', post );
deck.on( 'paused', post );
deck.on( 'resumed', post );
// Post the initial state
post();
} }
@@ -164,19 +195,40 @@ const Plugin = () => {
// If the there's a 'notes' query set, open directly // If the there's a 'notes' query set, open directly
if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) { if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
openNotes(); openSpeakerWindow();
}
else {
// Keep listening for speaker view hearbeats. If we receive a
// heartbeat from an orphaned window, reconnect it. This ensures
// that we remain connected to the notes even if the presentation
// is reloaded.
window.addEventListener( 'message', event => {
if( !speakerWindow && typeof event.data === 'string' ) {
let data;
try {
data = JSON.parse( event.data );
}
catch( error ) {}
if( data && data.namespace === 'reveal-notes' && data.type === 'heartbeat' ) {
reconnectSpeakerWindow( event.source );
}
}
});
} }
// Open the notes when the 's' key is hit // Open the notes when the 's' key is hit
deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() { deck.addKeyBinding({keyCode: 83, key: 'S', description: 'Speaker notes view'}, function() {
openNotes(); openSpeakerWindow();
} ); } );
} }
}, },
open: openNotes open: openSpeakerWindow
}; };
}; };
@@ -1,3 +1,6 @@
<!--
NOTE: You need to build the notes plugin after making changes to this file.
-->
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
@@ -347,7 +350,8 @@
layoutDropdown, layoutDropdown,
pendingCalls = {}, pendingCalls = {},
lastRevealApiCallId = 0, lastRevealApiCallId = 0,
connected = false; connected = false,
whitelistedWindows = [window.opener];
var SPEAKER_LAYOUTS = { var SPEAKER_LAYOUTS = {
'default': 'Default', 'default': 'Default',
@@ -362,9 +366,14 @@
var connectionTimeout = setTimeout( function() { var connectionTimeout = setTimeout( function() {
connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.'; connectionStatus.innerHTML = 'Error connecting to main window.<br>Please try closing and reopening the speaker view.';
}, 5000 ); }, 5000 );
;
window.addEventListener( 'message', function( event ) { window.addEventListener( 'message', function( event ) {
// Validate the origin of this message to prevent XSS
if( window.location.origin !== event.origin && whitelistedWindows.indexOf( event.source ) === -1 ) {
return;
}
clearTimeout( connectionTimeout ); clearTimeout( connectionTimeout );
connectionStatus.style.display = 'none'; connectionStatus.style.display = 'none';
@@ -395,13 +404,21 @@
} }
else if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) { else if( /slidechanged|fragmentshown|fragmenthidden|paused|resumed/.test( data.eventName ) && currentState !== JSON.stringify( data.state ) ) {
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ data.state ]} ), '*' ); dispatchStateToMainWindow( data.state );
} }
} }
} ); } );
/**
* Updates the presentation in the main window to match the state
* of the presentation in the notes window.
*/
const dispatchStateToMainWindow = debounce(( state ) => {
window.opener.postMessage( JSON.stringify({ method: 'setState', args: [ state ]} ), '*' );
}, 500);
/** /**
* Asynchronously calls the Reveal.js API of the main frame. * Asynchronously calls the Reveal.js API of the main frame.
*/ */
@@ -432,6 +449,7 @@
setupKeyboard(); setupKeyboard();
setupNotes(); setupNotes();
setupTimer(); setupTimer();
setupHeartbeat();
} }
} }
@@ -521,6 +539,8 @@
upcomingSlide.setAttribute( 'src', upcomingURL ); upcomingSlide.setAttribute( 'src', upcomingURL );
document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide ); document.querySelector( '#upcoming-slide' ).appendChild( upcomingSlide );
whitelistedWindows.push( currentSlide.contentWindow, upcomingSlide.contentWindow );
} }
/** /**
@@ -533,6 +553,18 @@
} }
/**
* We send out a heartbeat at all times to ensure we can
* reconnect with the main presentation window after reloads.
*/
function setupHeartbeat() {
setInterval( () => {
window.opener.postMessage( JSON.stringify({ namespace: 'reveal-notes', type: 'heartbeat'} ), '*' );
}, 1000 );
}
function getTimings( callback ) { function getTimings( callback ) {
callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) { callRevealApi( 'getSlidesAttributes', [], function ( slideAttributes ) {
@@ -0,0 +1 @@
.cursor-dot,.cursor-dot-outline{pointer-events:none;position:absolute;top:0;left:0;border-radius:50%;opacity:0;transform:translate(-50%,-50%);transition:opacity 0.3s ease-in-out,transform 0.3s ease-in-out;}.cursor-dot{width:12px;height:12px;background-color:red;z-index:1;}.no-cursor{cursor:none;}.no-cursor a,.no-cursor div,.no-cursor span{cursor:none;}
@@ -0,0 +1 @@
var RevealPointer=function(){"use strict";var e={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pausebreak:19,capslock:20,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,leftarrow:37,uparrow:38,rightarrow:39,downarrow:40,insert:45,delete:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,leftwindowkey:91,rightwindowkey:92,selectkey:93,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105,multiply:106,add:107,subtract:109,decimalpoint:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrolllock:145,semicolon:186,equalsign:187,comma:188,dash:189,period:190,forwardslash:191,graveaccent:192,openbracket:219,backslash:220,closebracket:221,singlequote:222};return function(){var t={},o=!1,n=null,a={x:0,y:0,isVisible:!1},i={x:0,y:0,scale:1};function l(o){var n;null==(t=o.pointer||{}).key?t.key="q":t.key=t.key.toLowerCase(),null!=t.pointerSize&&"number"==typeof t.pointerSize||(t.pointerSize=12),null!=t.tailLength&&"number"==typeof t.tailLength||(t.tailLength=10),null!=t.color&&"string"==typeof t.color||(t.color="red"),null!=t.alwaysVisible&&"boolean"==typeof t.alwaysVisible||(t.alwaysVisible=!1),null!=t.opacity&&"number"==typeof t.opacity||(t.opacity=.8),t.keyCode=(n=t.key,e[n])}function r(){n.style.top="".concat((a.y-i.y)/i.scale,"px"),n.style.left="".concat((a.x-i.x)/i.scale,"px"),a.isVisible?n.style.opacity=t.opacity.toString():n.style.opacity="0",1!==i.scale?(n.style.width="".concat(t.pointerSize/i.scale,"px"),n.style.height="".concat(t.pointerSize/i.scale,"px")):(n.style.width="".concat(t.pointerSize,"px"),n.style.height="".concat(t.pointerSize,"px"))}function c(e){a.x=e.pageX,a.y=e.pageY;var t=document.body.style.transform;""!==t?(i.x=Number.parseInt(/translate\((.*)px,/gm.exec(t)[1]),i.y=Number.parseInt(/px,\s(.*)px\)/gm.exec(t)[1]),i.scale=Number.parseFloat(/scale\((.)\)/gm.exec(t)[1])):(i.x=0,i.y=0,i.scale=1),requestAnimationFrame(r)}function s(){(o=!o)?(document.addEventListener("mousemove",c),document.body.classList.add("no-cursor"),a.isVisible=!0):(document.removeEventListener("mousemove",c),document.body.classList.remove("no-cursor"),a.isVisible=!1,requestAnimationFrame(r))}return{id:"pointer",init:function(e){var o;l(e.getConfig()),t.alwaysVisible?s():e.addKeyBinding({keyCode:t.keyCode,key:t.key},(function(){s()})),e.on("pointerColorChange",(function(e){var o;o=e.color,null!=n&&(n.style.backgroundColor=null!=o?o:t.color)})),(o=document.createElement("div")).className="cursor-dot",o.style.width="".concat(t.pointerSize,"px"),o.style.height="".concat(t.pointerSize,"px"),o.style.backgroundColor=t.color,t.alwaysVisible&&(o.style.opacity="0.8"),document.body.appendChild(o),n=o}}}}();
@@ -25,6 +25,12 @@ const Plugin = {
} }
} ); } );
},
destroy: () => {
zoom.reset();
} }
}; };
@@ -52,19 +58,11 @@ var zoom = (function(){
panUpdateInterval = -1; panUpdateInterval = -1;
// Check for transform support so that we can fallback otherwise // Check for transform support so that we can fallback otherwise
var supportsTransforms = 'WebkitTransform' in document.body.style || var supportsTransforms = 'transform' in document.body.style;
'MozTransform' in document.body.style ||
'msTransform' in document.body.style ||
'OTransform' in document.body.style ||
'transform' in document.body.style;
if( supportsTransforms ) { if( supportsTransforms ) {
// The easing that will be applied when we zoom in/out // The easing that will be applied when we zoom in/out
document.body.style.transition = 'transform 0.8s ease'; document.body.style.transition = 'transform 0.8s ease';
document.body.style.OTransition = '-o-transform 0.8s ease';
document.body.style.msTransition = '-ms-transform 0.8s ease';
document.body.style.MozTransition = '-moz-transform 0.8s ease';
document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
} }
// Zoom out if the user hits escape // Zoom out if the user hits escape
@@ -105,10 +103,6 @@ var zoom = (function(){
// Reset // Reset
if( scale === 1 ) { if( scale === 1 ) {
document.body.style.transform = ''; document.body.style.transform = '';
document.body.style.OTransform = '';
document.body.style.msTransform = '';
document.body.style.MozTransform = '';
document.body.style.WebkitTransform = '';
} }
// Scale // Scale
else { else {
@@ -116,16 +110,7 @@ var zoom = (function(){
transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')'; transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
document.body.style.transformOrigin = origin; document.body.style.transformOrigin = origin;
document.body.style.OTransformOrigin = origin;
document.body.style.msTransformOrigin = origin;
document.body.style.MozTransformOrigin = origin;
document.body.style.WebkitTransformOrigin = origin;
document.body.style.transform = transform; document.body.style.transform = transform;
document.body.style.OTransform = transform;
document.body.style.msTransform = transform;
document.body.style.MozTransform = transform;
document.body.style.WebkitTransform = transform;
} }
} }
else { else {
@@ -1,4 +1,4 @@
/*! /*!
* reveal.js Zoom plugin * reveal.js Zoom plugin
*/ */
var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e} var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(n){var o=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:o)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;n[i]&&!e.isOverview()&&(n.preventDefault(),t.to({x:n.clientX,y:n.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,n=0,o=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,n){var o=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*n)/2,t.y-=(window.innerHeight-t.height*n)/2,l)if(1===n)document.body.style.transform="";else{var i=o.x+"px "+o.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+n+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===n?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(o.x+t.x)/n+"px",document.body.style.top=-(o.y+t.y)/n+"px",document.body.style.width=100*n+"%",document.body.style.height=100*n+"%",document.body.style.zoom=n);e=n,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();o<i?window.scroll(d.x,d.y-14/e*(1-o/i)):o>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-o)/i)*(14/e)),n<t?window.scroll(d.x-14/e*(1-n/t),d.y):n>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-n)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(n){1!==e&&27===n.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(n=t.clientX,o=t.clientY)})),{to:function(n){if(1!==e)t.out();else{if(n.x=n.x||0,n.y=n.y||0,n.element){var o=n.element.getBoundingClientRect();n.x=o.left-20,n.y=o.top-20,n.width=o.width+40,n.height=o.height+40}void 0!==n.width&&void 0!==n.height&&(n.scale=Math.max(Math.min(window.innerWidth/n.width,window.innerHeight/n.height),1)),n.scale>1&&(n.x*=n.scale,n.y*=n.scale,s(n,n.scale),!1!==n.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
@@ -1,4 +1,4 @@
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=o()}(this,(function(){"use strict"; !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=t()}(this,(function(){"use strict";
/*! /*!
* reveal.js Zoom plugin * reveal.js Zoom plugin
*/var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=l();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=l();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),t<o?window.scroll(d.x-14/e*(1-t/o),d.y):t>window.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function l(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}})); */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,o){var n=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,l)if(1===o)document.body.style.transform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,s(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
@@ -16,6 +16,10 @@
<link rel="stylesheet" href="{{{base}}}plugin/chalkboard/style.css"> <link rel="stylesheet" href="{{{base}}}plugin/chalkboard/style.css">
{{/enableChalkboard}} {{/enableChalkboard}}
{{#enablePointer}}
<link rel="stylesheet" href="{{{base}}}plugin/reveal-pointer/pointer.css" />
{{/enablePointer}}
{{#cssPaths}} {{#cssPaths}}
<link rel="stylesheet" href="{{{base}}}{{{.}}}" /> <link rel="stylesheet" href="{{{base}}}{{{.}}}" />
{{/cssPaths}} {{/cssPaths}}
@@ -113,6 +117,14 @@
{{#enableChalkboard}} {{#enableChalkboard}}
<script src="{{{base}}}plugin/chalkboard/plugin.js"></script> <script src="{{{base}}}plugin/chalkboard/plugin.js"></script>
{{/enableChalkboard}} {{/enableChalkboard}}
{{#enablePointer}}
<script src="{{{base}}}plugin/reveal-pointer/pointer.js"></script>
{{/enablePointer}}
{{#timeForPresentation}}
{{#enableTimeBar}}
<script src="{{{base}}}plugin/elapsed-time-bar/elapsed-time-bar.js"></script>
{{/enableTimeBar}}
{{/timeForPresentation}}
<script> <script>
function extend() { function extend() {
@@ -144,8 +156,9 @@
} }
var bgColor = getComputedStyle(document.documentElement).getPropertyValue('--r-background-color').trim(); var bgColor = getComputedStyle(document.documentElement).getPropertyValue('--r-background-color').trim();
var isLight = isLight(bgColor);
if(isLight(bgColor)){ if(isLight){
document.body.classList.add('has-light-background'); document.body.classList.add('has-light-background');
} else { } else {
document.body.classList.add('has-dark-background'); document.body.classList.add('has-dark-background');
@@ -172,14 +185,38 @@
{{#enableMenu}} {{#enableMenu}}
RevealMenu, RevealMenu,
{{/enableMenu}} {{/enableMenu}}
{{#enablePointer}}
RevealPointer,
{{/enablePointer}}
{{#enableChalkboard}} {{#enableChalkboard}}
RevealChalkboard, RevealChalkboard,
{{/enableChalkboard}} {{/enableChalkboard}}
{{#timeForPresentation}}
{{#enableTimeBar}}
ElapsedTimeBar
{{/enableTimeBar}}
{{/timeForPresentation}}
], ],
{{#timeForPresentation}}
allottedTime: {{{.}}} * 1000,
{{/timeForPresentation}}
mathjax3: { mathjax3: {
mathjax: '{{{base}}}plugin/math/mathjax/tex-mml-chtml.js', mathjax: '{{{base}}}plugin/math/mathjax/tex-mml-chtml.js',
}, },
markdown: {
gfm: true,
mangle: true,
pedantic: false,
smartLists: false,
smartypants: false,
},
mermaid: {
theme: isLight ? 'default' : 'dark',
},
{{#enableCustomControls}} {{#enableCustomControls}}
customcontrols: { customcontrols: {
@@ -221,4 +258,6 @@
Reveal.initialize(options); Reveal.initialize(options);
</script> </script>
</body> </body>
<!-- created with {{! ignore me }}Advanced Slides -->
</html> </html>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-asciimath", "id": "obsidian-asciimath",
"name": "asciimath", "name": "asciimath",
"version": "0.8.1", "version": "0.8.2",
"minAppVersion": "0.15.0", "minAppVersion": "0.15.0",
"description": "Add asciimath support for Obsidian.", "description": "Add asciimath support for Obsidian.",
"author": "widcardw", "author": "widcardw",
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+6 -6
View File
@@ -34,7 +34,7 @@
"allowImageCache": true, "allowImageCache": true,
"allowImageCacheInScene": true, "allowImageCacheInScene": true,
"displayExportedImageIfAvailable": false, "displayExportedImageIfAvailable": false,
"previewMatchObsidianTheme": false, "previewMatchObsidianTheme": true,
"width": "400", "width": "400",
"height": "", "height": "",
"overrideObsidianFontSize": false, "overrideObsidianFontSize": false,
@@ -45,7 +45,7 @@
"phoneUIMode": "mobile", "phoneUIMode": "mobile",
"iframeMatchExcalidrawTheme": true, "iframeMatchExcalidrawTheme": true,
"matchTheme": true, "matchTheme": true,
"matchThemeAlways": false, "matchThemeAlways": true,
"matchThemeTrigger": true, "matchThemeTrigger": true,
"defaultMode": "normal", "defaultMode": "normal",
"defaultPenMode": "never", "defaultPenMode": "never",
@@ -85,7 +85,7 @@
"iframelyAllowed": true, "iframelyAllowed": true,
"pngExportScale": 1, "pngExportScale": 1,
"exportWithTheme": true, "exportWithTheme": true,
"exportWithBackground": true, "exportWithBackground": false,
"exportPaddingSVG": 10, "exportPaddingSVG": 10,
"exportEmbedScene": false, "exportEmbedScene": false,
"keepInSync": true, "keepInSync": true,
@@ -113,7 +113,7 @@
"library2": { "library2": {
"type": "excalidrawlib", "type": "excalidrawlib",
"version": 2, "version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.21.2", "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.22.0",
"libraryItems": [] "libraryItems": []
}, },
"imageElementNotice": true, "imageElementNotice": true,
@@ -149,11 +149,11 @@
} }
} }
}, },
"previousRelease": "2.21.2", "previousRelease": "2.22.0",
"showReleaseNotes": true, "showReleaseNotes": true,
"compareManifestToPluginVersion": true, "compareManifestToPluginVersion": true,
"showNewVersionNotification": true, "showNewVersionNotification": true,
"latexBoilerplate": "\\color{blue}", "latexBoilerplate": "",
"latexPreambleLocation": "preamble.sty", "latexPreambleLocation": "preamble.sty",
"taskboneEnabled": false, "taskboneEnabled": false,
"taskboneAPIkey": "", "taskboneAPIkey": "",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-excalidraw-plugin", "id": "obsidian-excalidraw-plugin",
"name": "Excalidraw", "name": "Excalidraw",
"version": "2.21.2", "version": "2.22.0",
"minAppVersion": "1.5.7", "minAppVersion": "1.5.7",
"description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.", "description": "Sketch Your Mind. An Obsidian plugin to edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
"author": "Zsolt Viczian", "author": "Zsolt Viczian",
File diff suppressed because one or more lines are too long
+254 -254
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,5 +6,5 @@
"description": "Integrate Git version control with automatic backup and other advanced features.", "description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false, "isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent", "fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.0" "version": "2.38.1"
} }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-latex-suite", "id": "obsidian-latex-suite",
"name": "Latex Suite", "name": "Latex Suite",
"version": "1.11.0", "version": "1.11.3",
"minAppVersion": "1.0.0", "minAppVersion": "1.0.0",
"description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements", "description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements",
"author": "artisticat", "author": "artisticat",
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-markmind", "id": "obsidian-markmind",
"name": "Markmind", "name": "Markmind",
"version": "3.4.6", "version": "3.4.7",
"minAppVersion": "0.9.12", "minAppVersion": "0.9.12",
"description": "This is a mindmap , outline tool for obsidian.", "description": "This is a mindmap , outline tool for obsidian.",
"author": "Mark", "author": "Mark",
+10 -1
View File
@@ -3794,7 +3794,7 @@ span.mm-sline .line {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-right:4px; margin-right: 4px;
cursor: pointer; cursor: pointer;
border-radius: 5px; border-radius: 5px;
background-color: #333; background-color: #333;
@@ -3815,3 +3815,12 @@ span.mm-sline .line {
.theme-light .cm-mindmap-mobile div svg { .theme-light .cm-mindmap-mobile div svg {
fill: #333; fill: #333;
} }
.mm-node-size .mm-node-edit {
max-width: none !important;
}
.mm-node-size .mm-node-icon {
display: flex;
}
+1 -1
View File
@@ -8,7 +8,7 @@
"lineWidth": 40, "lineWidth": 40,
"lineWidthWide": 50, "lineWidthWide": 50,
"maxWidth": 98, "maxWidth": 98,
"textNormal": 22, "textNormal": 26,
"textSmall": 18, "textSmall": 18,
"imgGrid": false, "imgGrid": false,
"imgWidth": "img-default-width", "imgWidth": "img-default-width",
+1 -1
View File
@@ -5,7 +5,7 @@
{ {
"id": 1, "id": 1,
"name": "Ma bibliothèque", "name": "Ma bibliothèque",
"lastUpdate": 1774723941998 "lastUpdate": 1776186666489
} }
], ],
"renderCitations": true, "renderCitations": true,
+189
View File
@@ -41,6 +41,195 @@
"C-KeyN", "C-KeyN",
"KeyQ" "KeyQ"
] ]
},
{
"command": "workspace:split-horizontal",
"chords": [
"C-KeyZ",
"KeyS"
]
},
{
"command": "workspace:split-vertical",
"chords": [
"C-KeyZ",
"KeyV"
]
},
{
"command": "editor:focus-top",
"chords": [
"C-KeyZ",
"C-KeyK"
]
},
{
"command": "editor:focus-top",
"chords": [
"C-KeyZ",
"KeyK"
]
},
{
"command": "editor:focus-bottom",
"chords": [
"C-KeyZ",
"C-KeyJ"
]
},
{
"command": "editor:focus-bottom",
"chords": [
"C-KeyZ",
"KeyJ"
]
},
{
"command": "editor:focus-left",
"chords": [
"C-KeyZ",
"KeyH"
]
},
{
"command": "editor:focus-right",
"chords": [
"C-KeyZ",
"C-KeyL"
]
},
{
"command": "editor:focus-right",
"chords": [
"C-KeyZ",
"KeyL"
]
},
{
"command": "workspace:next-tab",
"chords": [
"C-KeyB",
"ArrowRight"
]
},
{
"command": "workspace:previous-tab",
"chords": [
"C-KeyB",
"ArrowLeft"
]
},
{
"command": "workspace:goto-tab-1",
"chords": [
"C-KeyB",
"Numpad1"
]
},
{
"command": "workspace:goto-tab-1",
"chords": [
"C-KeyB",
"S-Digit1"
]
},
{
"command": "workspace:goto-tab-2",
"chords": [
"C-KeyB",
"Numpad2"
]
},
{
"command": "workspace:goto-tab-2",
"chords": [
"C-KeyB",
"S-Digit2"
]
},
{
"command": "workspace:goto-tab-3",
"chords": [
"C-KeyB",
"Numpad3"
]
},
{
"command": "workspace:goto-tab-3",
"chords": [
"C-KeyB",
"S-Digit3"
]
},
{
"command": "workspace:goto-tab-4",
"chords": [
"C-KeyB",
"Numpad4"
]
},
{
"command": "workspace:goto-tab-4",
"chords": [
"C-KeyB",
"S-Digit4"
]
},
{
"command": "workspace:goto-tab-5",
"chords": [
"C-KeyB",
"Numpad5"
]
},
{
"command": "workspace:goto-tab-5",
"chords": [
"C-KeyB",
"S-Digit5"
]
},
{
"command": "workspace:goto-tab-6",
"chords": [
"C-KeyB",
"Numpad6"
]
},
{
"command": "workspace:goto-tab-6",
"chords": [
"C-KeyB",
"S-Digit6"
]
},
{
"command": "workspace:goto-tab-7",
"chords": [
"C-KeyB",
"Numpad7"
]
},
{
"command": "workspace:goto-tab-7",
"chords": [
"C-KeyB",
"S-Digit7"
]
},
{
"command": "workspace:goto-tab-8",
"chords": [
"C-KeyB",
"Numpad8"
]
},
{
"command": "workspace:goto-tab-8",
"chords": [
"C-KeyB",
"S-Digit8"
]
} }
] ]
} }
+1 -1
View File
@@ -35,7 +35,7 @@
"minimal-style@@code-background@@dark": "#1E1E1E", "minimal-style@@code-background@@dark": "#1E1E1E",
"minimal-style@@window-title-off": false, "minimal-style@@window-title-off": false,
"minimal-style@@code-normal@@dark": "#BCBCBC", "minimal-style@@code-normal@@dark": "#BCBCBC",
"minimal-style@@image-muted": 0.7, "minimal-style@@image-muted": 1,
"minimal-style@@col-alt": false, "minimal-style@@col-alt": false,
"supercharged-links@@f1e2-3136-color": "#008A88", "supercharged-links@@f1e2-3136-color": "#008A88",
"supercharged-links@@591a-86c0-decoration": "initial", "supercharged-links@@591a-86c0-decoration": "initial",
+21 -13
View File
@@ -5,12 +5,12 @@
"template": "{{file.basename}}, p.{{pageLabel}}" "template": "{{file.basename}}, p.{{pageLabel}}"
}, },
{ {
"name": "Page", "name": "Title",
"template": "p.{{pageLabel}}" "template": "{{file.basename}}"
}, },
{ {
"name": "Text", "name": "Page",
"template": "{{text}}" "template": "p.{{pageLabel}}"
}, },
{ {
"name": "Emoji", "name": "Emoji",
@@ -18,10 +18,14 @@
}, },
{ {
"name": "APA", "name": "APA",
"template": "({{properties.author.toString().slice(2, -2).split('|')[0]}}, {{properties.year}})" "template": "({{properties.author.toString().replace('[[','').replace(/\\|.*]]/g,'')}}, {{properties.year}})"
},
{
"name": "Text",
"template": "{{text}}"
} }
], ],
"defaultDisplayTextFormatIndex": 0, "defaultDisplayTextFormatIndex": 1,
"syncDisplayTextFormat": true, "syncDisplayTextFormat": true,
"syncDefaultDisplayTextFormat": false, "syncDefaultDisplayTextFormat": false,
"copyCommands": [ "copyCommands": [
@@ -48,6 +52,10 @@
{ {
"name": "source:: [[|source]]", "name": "source:: [[|source]]",
"template": "source:: [[{{linktext}}|source]]" "template": "source:: [[{{linktext}}|source]]"
},
{
"name": "bullet point",
"template": " - \" <span style='display: inline-block; vertical-align: baseline; padding: 0.6ex; height: 0px; margin-bottom: -2pt; border: 2pt solid var(--text-normal); background: {{ ({\"yellow\": \"#F9CF04\", \"red\": \"#EA5151\", \"note\": \"#2F6DDE\", \"important\": \"#BA60E5\", \"\": \"transparent\"})[color.toString()]}}; border-radius: 100%'></span> {{text}} {{linkWithDisplay}}"
} }
], ],
"useAnotherCopyTemplateWhenNoSelection": false, "useAnotherCopyTemplateWhenNoSelection": false,
@@ -83,10 +91,10 @@
"colors": { "colors": {
"Yellow": "#ffd000", "Yellow": "#ffd000",
"Red": "#ea5252", "Red": "#ea5252",
"Note": "#086ddd", "Definition": "#086ddd",
"Important": "#bb61e5" "Exemple": "#7c4cff"
}, },
"defaultColor": "", "defaultColor": "Yellow",
"defaultColorPaletteItemIndex": 0, "defaultColorPaletteItemIndex": 0,
"syncColorPaletteItem": true, "syncColorPaletteItem": true,
"syncDefaultColorPaletteItem": false, "syncDefaultColorPaletteItem": false,
@@ -102,7 +110,7 @@
"singleMDLeafInSidebar": true, "singleMDLeafInSidebar": true,
"alwaysUseSidebar": true, "alwaysUseSidebar": true,
"ignoreExistingMarkdownTabIn": [], "ignoreExistingMarkdownTabIn": [],
"defaultColorPaletteActionIndex": 2, "defaultColorPaletteActionIndex": 3,
"syncColorPaletteAction": true, "syncColorPaletteAction": true,
"syncDefaultColorPaletteAction": false, "syncDefaultColorPaletteAction": false,
"proxyMDProperty": "pdf", "proxyMDProperty": "pdf",
@@ -113,7 +121,7 @@
"enableHoverPDFInternalLink": true, "enableHoverPDFInternalLink": true,
"recordPDFInternalLinkHistory": true, "recordPDFInternalLinkHistory": true,
"alwaysRecordHistory": true, "alwaysRecordHistory": true,
"renderMarkdownInStickyNote": false, "renderMarkdownInStickyNote": true,
"enablePDFEdit": true, "enablePDFEdit": true,
"author": "Oscar Plaisant", "author": "Oscar Plaisant",
"writeHighlightToFileOpacity": 0.2, "writeHighlightToFileOpacity": 0.2,
@@ -225,7 +233,7 @@
"clearSelectionAfterAutoPaste": true, "clearSelectionAfterAutoPaste": true,
"respectCursorPositionWhenAutoPaste": true, "respectCursorPositionWhenAutoPaste": true,
"blankLineAboveAppendedContent": true, "blankLineAboveAppendedContent": true,
"autoCopy": false, "autoCopy": true,
"autoFocus": false, "autoFocus": false,
"autoPaste": false, "autoPaste": false,
"autoFocusTarget": "last-active-and-open-then-last-paste", "autoFocusTarget": "last-active-and-open-then-last-paste",
@@ -279,7 +287,7 @@
"showBacklinkIconForAnnotation": false, "showBacklinkIconForAnnotation": false,
"showBacklinkIconForOffset": true, "showBacklinkIconForOffset": true,
"showBacklinkIconForRect": false, "showBacklinkIconForRect": false,
"showBoundingRectForBacklinkedAnnot": false, "showBoundingRectForBacklinkedAnnot": true,
"hideReplyAnnotation": false, "hideReplyAnnotation": false,
"hideStampAnnotation": false, "hideStampAnnotation": false,
"searchLinkHighlightAll": "true", "searchLinkHighlightAll": "true",
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,9 +1,9 @@
{ {
"id": "templater-obsidian", "id": "templater-obsidian",
"name": "Templater", "name": "Templater",
"version": "2.18.1", "version": "2.19.0",
"description": "Create and use templates", "description": "Create and use templates",
"minAppVersion": "1.5.0", "minAppVersion": "1.12.2",
"author": "SilentVoid", "author": "SilentVoid",
"authorUrl": "https://github.com/SilentVoid13", "authorUrl": "https://github.com/SilentVoid13",
"helpUrl": "https://silentvoid13.github.io/Templater/", "helpUrl": "https://silentvoid13.github.io/Templater/",
+15 -2
View File
@@ -15,6 +15,7 @@
"delayMilliSeconds": 20, "delayMilliSeconds": 20,
"disableSuggestionsDuringImeOn": true, "disableSuggestionsDuringImeOn": true,
"disableSuggestionsInMathBlock": true, "disableSuggestionsInMathBlock": true,
"disableSuggestionsInCodeBlock": false,
"insertSpaceAfterCompletion": false, "insertSpaceAfterCompletion": false,
"firstCharactersDisableSuggestions": ":/^", "firstCharactersDisableSuggestions": ":/^",
"patternsToSuppressTrigger": [ "patternsToSuppressTrigger": [
@@ -31,7 +32,7 @@
"select": [ "select": [
{ {
"modifiers": [], "modifiers": [],
"key": "Tab", "key": "Enter",
"hideHotkeyGuide": false "hideHotkeyGuide": false
} }
], ],
@@ -40,10 +41,12 @@
"modifiers": [ "modifiers": [
"Shift" "Shift"
], ],
"key": "Tab", "key": "Enter",
"hideHotkeyGuide": false "hideHotkeyGuide": false
} }
], ],
"select with custom alias and add to aliases": [],
"select with query alias": [],
"up": [ "up": [
{ {
"modifiers": [], "modifiers": [],
@@ -78,6 +81,7 @@
"currentVaultMinNumberOfCharacters": 2, "currentVaultMinNumberOfCharacters": 2,
"includeCurrentVaultPathPrefixPatterns": "", "includeCurrentVaultPathPrefixPatterns": "",
"excludeCurrentVaultPathPrefixPatterns": "", "excludeCurrentVaultPathPrefixPatterns": "",
"excludeCurrentVaultPathGlobPatterns": [],
"includeCurrentVaultOnlyFilesUnderCurrentDirectory": false, "includeCurrentVaultOnlyFilesUnderCurrentDirectory": false,
"excludeCurrentVaultWordPatterns": [], "excludeCurrentVaultWordPatterns": [],
"enableCustomDictionaryComplement": false, "enableCustomDictionaryComplement": false,
@@ -90,7 +94,11 @@
"displayedTextSuffix": " => ...", "displayedTextSuffix": " => ...",
"enableInternalLinkComplement": true, "enableInternalLinkComplement": true,
"suggestInternalLinkWithAlias": true, "suggestInternalLinkWithAlias": true,
"preserveFirstLetterCaseOnInternalLink": false,
"excludeInternalLinkPathPrefixPatterns": "", "excludeInternalLinkPathPrefixPatterns": "",
"excludeInternalLinkPathGlobPatterns": [],
"excludeSelfInternalLink": false,
"excludeExistingInActiveFileInternalLinks": false,
"updateInternalLinksOnSave": true, "updateInternalLinksOnSave": true,
"insertAliasTransformedFromDisplayedInternalLink": { "insertAliasTransformedFromDisplayedInternalLink": {
"enabled": false, "enabled": false,
@@ -98,9 +106,14 @@
"after": "" "after": ""
}, },
"frontMatterKeyForExclusionInternalLink": "", "frontMatterKeyForExclusionInternalLink": "",
"tagsForExclusionInternalLink": [],
"enableFrontMatterComplement": true, "enableFrontMatterComplement": true,
"frontMatterComplementMatchStrategy": "inherit", "frontMatterComplementMatchStrategy": "inherit",
"insertCommaAfterFrontMatterCompletion": false, "insertCommaAfterFrontMatterCompletion": false,
"currentFileMinNumberOfCharactersForTrigger": 0,
"currentVaultMinNumberOfCharactersForTrigger": 0,
"customDictionaryMinNumberOfCharactersForTrigger": 0,
"internalLinkMinNumberOfCharactersForTrigger": 2,
"intelligentSuggestionPrioritization": { "intelligentSuggestionPrioritization": {
"enabled": true, "enabled": true,
"historyFilePath": "", "historyFilePath": "",
File diff suppressed because one or more lines are too long
+83 -14
View File
@@ -1059,6 +1059,29 @@ var AppHelper = class {
} }
return !!((_c = (_b = cm5or6 == null ? void 0 : cm5or6.display) == null ? void 0 : _b.input) == null ? void 0 : _c.composing); return !!((_c = (_b = cm5or6 == null ? void 0 : cm5or6.display) == null ? void 0 : _b.input) == null ? void 0 : _c.composing);
} }
/**
* Unsafe method
*/
getVisibleLineRange() {
var _a;
const markdownView = this.unsafeApp.workspace.getActiveViewOfType(import_obsidian.MarkdownView);
if (!markdownView) {
return null;
}
const cm = markdownView.editor.cm;
if (!(cm == null ? void 0 : cm.visibleRanges) || !((_a = cm == null ? void 0 : cm.state) == null ? void 0 : _a.doc)) {
return null;
}
const visibleRanges = cm.visibleRanges;
if (visibleRanges.length === 0) {
return null;
}
const first = visibleRanges[0];
const last = visibleRanges[visibleRanges.length - 1];
const fromLine = cm.state.doc.lineAt(first.from).number - 1;
const toLine = cm.state.doc.lineAt(last.to).number - 1;
return { from: fromLine, to: toLine };
}
isMobile() { isMobile() {
return this.unsafeApp.isMobile; return this.unsafeApp.isMobile;
} }
@@ -7245,6 +7268,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian7.Ed
this.previousLinksCacheInActiveFile = /* @__PURE__ */ new Set(); this.previousLinksCacheInActiveFile = /* @__PURE__ */ new Set();
this.keymapEventHandler = []; this.keymapEventHandler = [];
this.spareEditorSuggestContext = null; this.spareEditorSuggestContext = null;
this.predictableCycleState = null;
this.appHelper = new AppHelper(app); this.appHelper = new AppHelper(app);
this.statusBar = statusBar; this.statusBar = statusBar;
} }
@@ -7310,6 +7334,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian7.Ed
ins.activeLeafChangeRef = app.workspace.on( ins.activeLeafChangeRef = app.workspace.on(
"active-leaf-change", "active-leaf-change",
async (_) => { async (_) => {
ins.predictableCycleState = null;
await ins.refreshCurrentFileTokens(); await ins.refreshCurrentFileTokens();
ins.refreshInternalLinkTokens(); ins.refreshInternalLinkTokens();
ins.updateFrontMatterToken(); ins.updateFrontMatterToken();
@@ -7345,32 +7370,76 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian7.Ed
return; return;
} }
const cursor = editor.getCursor(); const cursor = editor.getCursor();
if (this.predictableCycleState) {
const state = this.predictableCycleState;
const currentCandidate = state.candidates[state.currentIndex];
const expectedCh = state.replacementStartCh + currentCandidate.length;
if (cursor.line === state.line && cursor.ch === expectedCh) {
state.currentIndex = (state.currentIndex + 1) % state.candidates.length;
const nextCandidate = state.candidates[state.currentIndex];
editor.replaceRange(
nextCandidate,
{ line: state.line, ch: state.replacementStartCh },
cursor
);
this.close();
this.debounceClose();
return;
}
this.predictableCycleState = null;
}
const currentToken = this.tokenizer.tokenize(editor.getLine(cursor.line).slice(0, cursor.ch)).last(); const currentToken = this.tokenizer.tokenize(editor.getLine(cursor.line).slice(0, cursor.ch)).last();
if (!currentToken) { if (!currentToken) {
return; return;
} }
let suggestion = this.tokenizer.tokenize( const candidates = this.collectPredictableCandidates(
editor.getRange({ line: Math.max(cursor.line - 50, 0), ch: 0 }, cursor) editor,
).reverse().slice(1).find((x) => x.startsWith(currentToken)); cursor,
if (!suggestion) { currentToken
suggestion = this.tokenizer.tokenize( );
editor.getRange(cursor, { if (candidates.length <= 1) {
line: Math.min(cursor.line + 50, editor.lineCount() - 1),
ch: 0
})
).find((x) => x.startsWith(currentToken));
}
if (!suggestion) {
return; return;
} }
const replacementStartCh = cursor.ch - currentToken.length;
this.predictableCycleState = {
originalToken: currentToken,
replacementStartCh,
line: cursor.line,
candidates,
currentIndex: 0
};
const suggestion = candidates[0];
editor.replaceRange( editor.replaceRange(
suggestion, suggestion,
{ line: cursor.line, ch: cursor.ch - currentToken.length }, { line: cursor.line, ch: replacementStartCh },
{ line: cursor.line, ch: cursor.ch } cursor
); );
this.close(); this.close();
this.debounceClose(); this.debounceClose();
} }
collectPredictableCandidates(editor, cursor, originalToken) {
var _a, _b;
const seen = /* @__PURE__ */ new Set();
const candidates = [];
const addIfNew = (token) => {
if (token.startsWith(originalToken) && token !== originalToken && !seen.has(token)) {
seen.add(token);
candidates.push(token);
}
};
const visibleRange = this.appHelper.getVisibleLineRange();
const rangeStart = (_a = visibleRange == null ? void 0 : visibleRange.from) != null ? _a : Math.max(cursor.line - 50, 0);
const rangeEnd = (_b = visibleRange == null ? void 0 : visibleRange.to) != null ? _b : Math.min(cursor.line + 50, editor.lineCount() - 1);
const textAbove = editor.getRange({ line: rangeStart, ch: 0 }, cursor);
this.tokenizer.tokenize(textAbove).reverse().slice(1).forEach(addIfNew);
const textBelow = editor.getRange(cursor, {
line: rangeEnd,
ch: editor.getLine(rangeEnd).length
});
this.tokenizer.tokenize(textBelow).forEach(addIfNew);
candidates.push(originalToken);
return candidates;
}
unregister() { unregister() {
this.app.vault.offref(this.modifyEventRef); this.app.vault.offref(this.modifyEventRef);
this.app.workspace.offref(this.activeLeafChangeRef); this.app.workspace.offref(this.activeLeafChangeRef);
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "various-complements", "id": "various-complements",
"name": "Various Complements", "name": "Various Complements",
"version": "11.0.0", "version": "11.1.0",
"minAppVersion": "1.11.4", "minAppVersion": "1.11.4",
"description": "This plugin enables you to complete words like the auto-completion of IDE", "description": "This plugin enables you to complete words like the auto-completion of IDE",
"author": "tadashi-aikawa", "author": "tadashi-aikawa",
+18 -5
View File
@@ -5,17 +5,30 @@
/* pdfs, figures... */ /* pdfs, figures... */
.theme-dark .pdf-cropped-embed, /* PDF++ rectangle highlights */ .theme-dark .pdf-cropped-embed, /* PDF++ rectangle highlights embeds */
.theme-dark .pdfViewer > .page { .theme-dark .pdfViewer > .page,
.pdf-thumbnail-view .thumbnail,
.pdf-thumbnail-view .thumbnail::after
{
filter: invert(0.7) filter: invert(0.7)
brightness(0.85) /* brightness(0.85) */
contrast(1.6) /* contrast(1.6) */
brightness(1.2)
contrast(2.5)
hue-rotate(180deg) hue-rotate(180deg)
saturate(150%) saturate(100%)
/* blur(0.5px) /1* blur makes the white text less agressive *1/ */ /* blur(0.5px) /1* blur makes the white text less agressive *1/ */
; ;
} }
.pdf-thumbnail-view .thumbnail::after {
filter: invert(1)
brightness(1)
contrast(1.5)
blur(0.5px) /* blur for better antialiasing */
;
}
+8
View File
@@ -0,0 +1,8 @@
.workspace-leaf-content[data-type="link-tree"] #link-tree {
/* color: red; */
font-size: var(--font-adaptive-small);
}

Some files were not shown because too many files have changed in this diff Show More