├── .gitignore ├── .obsidian ├── app.json ├── appearance.json ├── community-plugins.json ├── core-plugins-migration.json ├── core-plugins.json ├── daily-notes.json ├── graph.json ├── hotkeys.json ├── plugins │ ├── customjs │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── dataview │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── execute-code │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-advanced-slides │ │ ├── css │ │ │ ├── layout.css │ │ │ ├── mattropolis.css │ │ │ └── vs2015.css │ │ ├── data.json │ │ ├── dist │ │ │ ├── fontawesome │ │ │ │ └── all.min.js │ │ │ ├── reset.css │ │ │ ├── reveal.css │ │ │ ├── reveal.esm.js │ │ │ ├── reveal.esm.js.map │ │ │ ├── reveal.js │ │ │ ├── reveal.js.map │ │ │ └── theme │ │ │ │ ├── beige.css │ │ │ │ ├── black.css │ │ │ │ ├── blood.css │ │ │ │ ├── consult.css │ │ │ │ ├── fonts │ │ │ │ ├── lato │ │ │ │ │ └── lato.css │ │ │ │ ├── league-gothic │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── source-sans-pro-italic.eot │ │ │ │ │ ├── source-sans-pro-italic.ttf │ │ │ │ │ ├── source-sans-pro-italic.woff │ │ │ │ │ ├── source-sans-pro-regular.eot │ │ │ │ │ ├── source-sans-pro-regular.ttf │ │ │ │ │ ├── source-sans-pro-regular.woff │ │ │ │ │ ├── source-sans-pro-semibold.eot │ │ │ │ │ ├── source-sans-pro-semibold.ttf │ │ │ │ │ ├── source-sans-pro-semibold.woff │ │ │ │ │ ├── source-sans-pro-semibolditalic.eot │ │ │ │ │ ├── source-sans-pro-semibolditalic.ttf │ │ │ │ │ ├── source-sans-pro-semibolditalic.woff │ │ │ │ │ └── source-sans-pro.css │ │ │ │ ├── league.css │ │ │ │ ├── mattropolis.css │ │ │ │ ├── moon.css │ │ │ │ ├── night.css │ │ │ │ ├── serif.css │ │ │ │ ├── simple.css │ │ │ │ ├── sky.css │ │ │ │ ├── solarized.css │ │ │ │ └── white.css │ │ ├── distVersion.json │ │ ├── main.js │ │ ├── manifest.json │ │ ├── plugin │ │ │ ├── chalkboard │ │ │ │ ├── README.md │ │ │ │ ├── _style.css │ │ │ │ ├── img │ │ │ │ │ ├── blackboard.png │ │ │ │ │ ├── boardmarker-black.png │ │ │ │ │ ├── boardmarker-blue.png │ │ │ │ │ ├── boardmarker-green.png │ │ │ │ │ ├── boardmarker-orange.png │ │ │ │ │ ├── boardmarker-purple.png │ │ │ │ │ ├── boardmarker-red.png │ │ │ │ │ ├── boardmarker-yellow.png │ │ │ │ │ ├── chalk-blue.png │ │ │ │ │ ├── chalk-green.png │ │ │ │ │ ├── chalk-orange.png │ │ │ │ │ ├── chalk-purple.png │ │ │ │ │ ├── chalk-red.png │ │ │ │ │ ├── chalk-white.png │ │ │ │ │ ├── chalk-yellow.png │ │ │ │ │ ├── sponge.png │ │ │ │ │ └── whiteboard.png │ │ │ │ ├── plugin (copy).js │ │ │ │ ├── plugin.js │ │ │ │ └── style.css │ │ │ ├── chart │ │ │ │ ├── README.md │ │ │ │ ├── chart.min.js │ │ │ │ └── plugin.js │ │ │ ├── customcontrols │ │ │ │ ├── README.md │ │ │ │ ├── plugin.js │ │ │ │ └── style.css │ │ │ ├── elapsed-time-bar │ │ │ │ └── elapsed-time-bar.js │ │ │ ├── highlight │ │ │ │ ├── highlight.esm.js │ │ │ │ ├── highlight.js │ │ │ │ ├── monokai.css │ │ │ │ ├── plugin.js │ │ │ │ └── zenburn.css │ │ │ ├── markdown │ │ │ │ ├── markdown.esm.js │ │ │ │ ├── markdown.js │ │ │ │ └── plugin.js │ │ │ ├── math │ │ │ │ ├── katex.js │ │ │ │ ├── math.esm.js │ │ │ │ ├── math.js │ │ │ │ ├── mathjax │ │ │ │ │ ├── a11y │ │ │ │ │ │ ├── assistive-mml.js │ │ │ │ │ │ ├── complexity.js │ │ │ │ │ │ ├── explorer.js │ │ │ │ │ │ └── semantic-enrich.js │ │ │ │ │ ├── adaptors │ │ │ │ │ │ └── liteDOM.js │ │ │ │ │ ├── core.js │ │ │ │ │ ├── input │ │ │ │ │ │ ├── asciimath.js │ │ │ │ │ │ ├── mml.js │ │ │ │ │ │ ├── mml │ │ │ │ │ │ │ ├── entities.js │ │ │ │ │ │ │ └── extensions │ │ │ │ │ │ │ │ ├── mml3.js │ │ │ │ │ │ │ │ └── mml3.sef.json │ │ │ │ │ │ ├── tex-base.js │ │ │ │ │ │ ├── tex-full.js │ │ │ │ │ │ ├── tex.js │ │ │ │ │ │ └── tex │ │ │ │ │ │ │ └── extensions │ │ │ │ │ │ │ ├── action.js │ │ │ │ │ │ │ ├── all-packages.js │ │ │ │ │ │ │ ├── ams.js │ │ │ │ │ │ │ ├── amscd.js │ │ │ │ │ │ │ ├── autoload.js │ │ │ │ │ │ │ ├── bbox.js │ │ │ │ │ │ │ ├── boldsymbol.js │ │ │ │ │ │ │ ├── braket.js │ │ │ │ │ │ │ ├── bussproofs.js │ │ │ │ │ │ │ ├── cancel.js │ │ │ │ │ │ │ ├── centernot.js │ │ │ │ │ │ │ ├── color.js │ │ │ │ │ │ │ ├── colortbl.js │ │ │ │ │ │ │ ├── colorv2.js │ │ │ │ │ │ │ ├── configmacros.js │ │ │ │ │ │ │ ├── enclose.js │ │ │ │ │ │ │ ├── extpfeil.js │ │ │ │ │ │ │ ├── gensymb.js │ │ │ │ │ │ │ ├── html.js │ │ │ │ │ │ │ ├── mathtools.js │ │ │ │ │ │ │ ├── mhchem.js │ │ │ │ │ │ │ ├── newcommand.js │ │ │ │ │ │ │ ├── noerrors.js │ │ │ │ │ │ │ ├── noundefined.js │ │ │ │ │ │ │ ├── physics.js │ │ │ │ │ │ │ ├── require.js │ │ │ │ │ │ │ ├── setoptions.js │ │ │ │ │ │ │ ├── tagformat.js │ │ │ │ │ │ │ ├── textcomp.js │ │ │ │ │ │ │ ├── textmacros.js │ │ │ │ │ │ │ ├── unicode.js │ │ │ │ │ │ │ ├── upgreek.js │ │ │ │ │ │ │ └── verb.js │ │ │ │ │ ├── latest.js │ │ │ │ │ ├── loader.js │ │ │ │ │ ├── mml-chtml.js │ │ │ │ │ ├── mml-svg.js │ │ │ │ │ ├── node-main.js │ │ │ │ │ ├── output │ │ │ │ │ │ ├── chtml.js │ │ │ │ │ │ ├── chtml │ │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ │ ├── tex.js │ │ │ │ │ │ │ │ └── woff-v2 │ │ │ │ │ │ │ │ ├── MathJax_AMS-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Calligraphic-Bold.woff │ │ │ │ │ │ │ │ ├── MathJax_Calligraphic-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Fraktur-Bold.woff │ │ │ │ │ │ │ │ ├── MathJax_Fraktur-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Main-Bold.woff │ │ │ │ │ │ │ │ ├── MathJax_Main-Italic.woff │ │ │ │ │ │ │ │ ├── MathJax_Main-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Math-BoldItalic.woff │ │ │ │ │ │ │ │ ├── MathJax_Math-Italic.woff │ │ │ │ │ │ │ │ ├── MathJax_Math-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_SansSerif-Bold.woff │ │ │ │ │ │ │ │ ├── MathJax_SansSerif-Italic.woff │ │ │ │ │ │ │ │ ├── MathJax_SansSerif-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Script-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Size1-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Size2-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Size3-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Size4-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Typewriter-Regular.woff │ │ │ │ │ │ │ │ ├── MathJax_Vector-Bold.woff │ │ │ │ │ │ │ │ ├── MathJax_Vector-Regular.woff │ │ │ │ │ │ │ │ └── MathJax_Zero.woff │ │ │ │ │ │ ├── svg.js │ │ │ │ │ │ └── svg │ │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ └── tex.js │ │ │ │ │ ├── sre │ │ │ │ │ │ ├── mathmaps │ │ │ │ │ │ │ ├── de.js │ │ │ │ │ │ │ ├── en.js │ │ │ │ │ │ │ ├── es.js │ │ │ │ │ │ │ ├── fr.js │ │ │ │ │ │ │ ├── hi.js │ │ │ │ │ │ │ ├── it.js │ │ │ │ │ │ │ └── nemeth.js │ │ │ │ │ │ ├── sre-node.js │ │ │ │ │ │ └── sre_browser.js │ │ │ │ │ ├── startup.js │ │ │ │ │ ├── tex-chtml-full.js │ │ │ │ │ ├── tex-chtml.js │ │ │ │ │ ├── tex-mml-chtml.js │ │ │ │ │ ├── tex-mml-svg.js │ │ │ │ │ ├── tex-svg-full.js │ │ │ │ │ ├── tex-svg.js │ │ │ │ │ └── ui │ │ │ │ │ │ ├── lazy.js │ │ │ │ │ │ ├── menu.js │ │ │ │ │ │ └── safe.js │ │ │ │ ├── mathjax2.js │ │ │ │ ├── mathjax3.js │ │ │ │ └── plugin.js │ │ │ ├── menu │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bower.json │ │ │ │ ├── gulpfile.js │ │ │ │ ├── menu.css │ │ │ │ ├── menu.esm.js │ │ │ │ ├── menu.js │ │ │ │ ├── package.json │ │ │ │ └── plugin.js │ │ │ ├── mermaid │ │ │ │ ├── mermaid.esm.js │ │ │ │ ├── mermaid.js │ │ │ │ └── plugin.js │ │ │ ├── notes │ │ │ │ ├── notes.esm.js │ │ │ │ ├── notes.js │ │ │ │ ├── plugin.js │ │ │ │ └── speaker-view.html │ │ │ ├── reveal-pointer │ │ │ │ ├── pointer.css │ │ │ │ └── pointer.js │ │ │ ├── search │ │ │ │ ├── plugin.js │ │ │ │ ├── search.esm.js │ │ │ │ └── search.js │ │ │ └── zoom │ │ │ │ ├── plugin.js │ │ │ │ ├── zoom.esm.js │ │ │ │ └── zoom.js │ │ ├── styles.css │ │ └── template │ │ │ ├── embed.html │ │ │ └── reveal.html │ ├── obsidian-excalidraw-plugin │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-image-toolkit │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-reminder-plugin │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-underline │ │ ├── main.js │ │ └── manifest.json │ ├── omnisearch │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── table-editor-obsidian │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── templater-obsidian │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ └── url-into-selection │ │ ├── main.js │ │ └── manifest.json ├── scripts │ ├── config.js │ ├── dailyNotes.js │ ├── habitTracker.js │ └── structure.py ├── templates.json ├── themes │ └── Things │ │ ├── manifest.json │ │ └── theme.css ├── workspace-mobile.json └── workspace.json ├── 00. 📓 Log ├── 🌈 Lessons.md ├── 🏃 Meeting actions.md ├── 📈 Habits.config.md ├── 📈 Habits.md ├── 📖 Backlog.md ├── 🗒 Daily │ ├── 2023-07-29, Sat 29 Jul.md │ └── 2023-07-31, Mon 31 Jul.md └── 🚩 Milestones.md ├── 01. ⏱ Todo ├── _⏱ Short term.md ├── _📆 Long term.md ├── 🎵 Music.md ├── 📚 Books.md ├── 📱 Apps.md ├── 🔍 Look up.md ├── 🧠 Development.md └── 🧩 Project │ ├── Make obsidian template repo.md │ ├── Some project that I am doing.md │ └── Some project that I still want to do.md ├── 10. 🧑‍💻 Work1 └── 👥 Meeting │ └── 2023-07-31 Some meeting.md ├── 11. ⚡️ Work2.nosync └── 👥 Meeting │ └── 2023-08-01 Important meeting.md ├── 30. 🏡 Personal └── 🚀 Goals │ └── Make goals more concrete.md ├── Makefile ├── README.md ├── _♻️ Templates ├── 00. 📓 Daily.md ├── 11. 👥 Meeting.md ├── 12. 🧍‍♀️ Standup.md ├── 13. 📈 1on1.md ├── 22. 📝 Note.md ├── 33. ⏱ Todo.md ├── 34. 🧩 Project.md ├── 35. 🚀 Goal.md ├── 55. 👨‍🏫 Training.md ├── 66. 🍽 Recipe.md ├── 67. 🗺 Trip.md └── 77. 🙎‍♀️ Person.md ├── _📎 Attachments ├── Pasted image 20230729185113.png └── Pasted image 20230729185208.png └── ❓ Help.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | prep_repo.ipynb 3 | -------------------------------------------------------------------------------- /.obsidian/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "livePreview": true, 3 | "promptDelete": false, 4 | "attachmentFolderPath": "_📎 Attachments", 5 | "showInlineTitle": false, 6 | "alwaysUpdateLinks": true, 7 | "userIgnoreFilters": [ 8 | "00. 📓 Log/", 9 | "03. 👨‍🏫 Training/✓ Given/", 10 | "22. 🎄 Holiday/🗺 Trip/", 11 | "_♻️ Templates/" 12 | ], 13 | "mobileToolbarCommands": [ 14 | "editor:toggle-checklist-status", 15 | "editor:attach-file", 16 | "editor:unindent-list", 17 | "editor:indent-list", 18 | "editor:toggle-keyboard", 19 | "editor:undo", 20 | "editor:redo", 21 | "editor:toggle-bullet-list", 22 | "editor:insert-link", 23 | "editor:configure-toolbar" 24 | ] 25 | } -------------------------------------------------------------------------------- /.obsidian/appearance.json: -------------------------------------------------------------------------------- 1 | { 2 | "accentColor": "", 3 | "theme": "moonstone", 4 | "showViewHeader": true, 5 | "translucency": false, 6 | "baseFontSize": 16, 7 | "nativeMenus": true, 8 | "cssTheme": "Things" 9 | } -------------------------------------------------------------------------------- /.obsidian/community-plugins.json: -------------------------------------------------------------------------------- 1 | [ 2 | "templater-obsidian", 3 | "table-editor-obsidian", 4 | "obsidian-underline", 5 | "obsidian-excalidraw-plugin", 6 | "obsidian-advanced-slides", 7 | "obsidian-reminder-plugin", 8 | "obsidian-image-toolkit", 9 | "omnisearch", 10 | "dataview", 11 | "execute-code", 12 | "customjs", 13 | "url-into-selection" 14 | ] -------------------------------------------------------------------------------- /.obsidian/core-plugins-migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "file-explorer": true, 3 | "global-search": true, 4 | "switcher": true, 5 | "graph": true, 6 | "backlink": true, 7 | "outgoing-link": true, 8 | "tag-pane": true, 9 | "page-preview": true, 10 | "daily-notes": true, 11 | "templates": true, 12 | "note-composer": true, 13 | "command-palette": true, 14 | "slash-command": false, 15 | "editor-status": true, 16 | "starred": true, 17 | "markdown-importer": false, 18 | "zk-prefixer": false, 19 | "random-note": false, 20 | "outline": true, 21 | "word-count": true, 22 | "slides": true, 23 | "audio-recorder": false, 24 | "workspaces": false, 25 | "file-recovery": true, 26 | "publish": false, 27 | "sync": true, 28 | "canvas": true, 29 | "bookmarks": true 30 | } -------------------------------------------------------------------------------- /.obsidian/core-plugins.json: -------------------------------------------------------------------------------- 1 | [ 2 | "file-explorer", 3 | "global-search", 4 | "switcher", 5 | "graph", 6 | "backlink", 7 | "canvas", 8 | "outgoing-link", 9 | "tag-pane", 10 | "page-preview", 11 | "daily-notes", 12 | "templates", 13 | "note-composer", 14 | "command-palette", 15 | "editor-status", 16 | "bookmarks", 17 | "outline", 18 | "word-count", 19 | "slides", 20 | "file-recovery", 21 | "sync" 22 | ] -------------------------------------------------------------------------------- /.obsidian/daily-notes.json: -------------------------------------------------------------------------------- 1 | { 2 | "folder": "00. 📓 Log/🗒 Daily", 3 | "template": "", 4 | "format": "YYYY-MM-DD, ddd D MMM" 5 | } -------------------------------------------------------------------------------- /.obsidian/graph.json: -------------------------------------------------------------------------------- 1 | { 2 | "collapse-filter": false, 3 | "search": "", 4 | "showTags": true, 5 | "showAttachments": false, 6 | "hideUnresolved": true, 7 | "showOrphans": true, 8 | "collapse-color-groups": true, 9 | "colorGroups": [ 10 | { 11 | "query": "#log", 12 | "color": { 13 | "a": 1, 14 | "rgb": 3552822 15 | } 16 | }, 17 | { 18 | "query": "#meeting", 19 | "color": { 20 | "a": 1, 21 | "rgb": 3552822 22 | } 23 | } 24 | ], 25 | "collapse-display": true, 26 | "showArrow": false, 27 | "textFadeMultiplier": 0, 28 | "nodeSizeMultiplier": 1.87369791666667, 29 | "lineSizeMultiplier": 2.35245311049211, 30 | "collapse-forces": true, 31 | "centerStrength": 0.389340761374188, 32 | "repelStrength": 10.3019205729167, 33 | "linkStrength": 1, 34 | "linkDistance": 158, 35 | "scale": 0.2719003190317541, 36 | "close": true 37 | } -------------------------------------------------------------------------------- /.obsidian/plugins/customjs/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "jsFiles": ".obsidian/scripts/dailyNotes.js,.obsidian/scripts/config.js,.obsidian/scripts/habitTracker.js", 3 | "jsFolder": "" 4 | } -------------------------------------------------------------------------------- /.obsidian/plugins/customjs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "customjs", 3 | "name": "CustomJS", 4 | "version": "1.0.13", 5 | "minAppVersion": "0.9.12", 6 | "description": "This plugin allows for the loading and reuse of custom JS inside your vault.", 7 | "author": "Sam Lewis", 8 | "authorUrl": "https://github.com/samlewis0602", 9 | "isDesktopOnly": false 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/customjs/styles.css: -------------------------------------------------------------------------------- 1 | /* Sets all the text color to red! */ 2 | /* body { 3 | color: red; 4 | } */ 5 | -------------------------------------------------------------------------------- /.obsidian/plugins/dataview/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "renderNullAs": "\\-", 3 | "taskCompletionTracking": true, 4 | "taskCompletionUseEmojiShorthand": false, 5 | "taskCompletionText": "completion", 6 | "taskCompletionDateFormat": "yyyy-MM-dd", 7 | "warnOnEmptyResult": false, 8 | "refreshEnabled": true, 9 | "refreshInterval": 2000, 10 | "defaultDateFormat": "MMMM dd, yyyy", 11 | "defaultDateTimeFormat": "h:mm a - MMMM dd, yyyy", 12 | "maxRecursiveRenderDepth": 4, 13 | "tableIdColumnName": "Note", 14 | "tableGroupColumnName": "Group", 15 | "allowHtml": true, 16 | "inlineQueryPrefix": "=", 17 | "inlineJsQueryPrefix": "$=", 18 | "inlineQueriesInCodeblocks": true, 19 | "enableDataviewJs": true, 20 | "enableInlineDataviewJs": false, 21 | "prettyRenderInlineFields": true 22 | } -------------------------------------------------------------------------------- /.obsidian/plugins/dataview/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "dataview", 3 | "name": "Dataview", 4 | "version": "0.5.47", 5 | "minAppVersion": "0.13.11", 6 | "description": "Complex data views for the data-obsessed.", 7 | "author": "Michael Brenan ", 8 | "authorUrl": "https://github.com/blacksmithgu", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/dataview/styles.css: -------------------------------------------------------------------------------- 1 | /** Live Preview padding fixes, specifically for DataviewJS custom HTML elements. */ 2 | .is-live-preview .block-language-dataviewjs > p, .is-live-preview .block-language-dataviewjs > span { 3 | line-height: 1.0; 4 | } 5 | 6 | /*****************/ 7 | /** Table Views **/ 8 | /*****************/ 9 | 10 | /* List View Default Styling; rendered internally as a table. */ 11 | .table-view-table { 12 | width: 100%; 13 | } 14 | 15 | .table-view-table > thead > tr, .table-view-table > tbody > tr { 16 | margin-top: 1em; 17 | margin-bottom: 1em; 18 | text-align: left; 19 | } 20 | 21 | .table-view-table > tbody > tr:hover { 22 | background-color: var(--text-selection) !important; 23 | } 24 | 25 | .table-view-table > thead > tr > th { 26 | font-weight: 700; 27 | font-size: larger; 28 | border-top: none; 29 | border-left: none; 30 | border-right: none; 31 | border-bottom: solid; 32 | 33 | max-width: 100%; 34 | } 35 | 36 | .table-view-table > tbody > tr > td { 37 | text-align: left; 38 | border: none; 39 | font-weight: 400; 40 | max-width: 100%; 41 | } 42 | 43 | .table-view-table ul, .table-view-table ol { 44 | margin-block-start: 0.2em !important; 45 | margin-block-end: 0.2em !important; 46 | } 47 | 48 | /** Rendered value styling for any view. */ 49 | .dataview-result-list-root-ul { 50 | padding: 0em !important; 51 | margin: 0em !important; 52 | } 53 | 54 | .dataview-result-list-ul { 55 | margin-block-start: 0.2em !important; 56 | margin-block-end: 0.2em !important; 57 | } 58 | 59 | /** Generic grouping styling. */ 60 | .dataview.result-group { 61 | padding-left: 8px; 62 | } 63 | 64 | /*******************/ 65 | /** Inline Fields **/ 66 | /*******************/ 67 | 68 | .dataview.inline-field-key { 69 | padding-left: 8px; 70 | padding-right: 8px; 71 | font-family: var(--font-monospace); 72 | background-color: var(--background-primary-alt); 73 | color: var(--text-nav-selected); 74 | } 75 | 76 | .dataview.inline-field-value { 77 | padding-left: 8px; 78 | padding-right: 8px; 79 | font-family: var(--font-monospace); 80 | background-color: var(--background-secondary-alt); 81 | color: var(--text-nav-selected); 82 | } 83 | 84 | .dataview.inline-field-standalone-value { 85 | padding-left: 8px; 86 | padding-right: 8px; 87 | font-family: var(--font-monospace); 88 | background-color: var(--background-secondary-alt); 89 | color: var(--text-nav-selected); 90 | } 91 | 92 | /***************/ 93 | /** Task View **/ 94 | /***************/ 95 | 96 | .dataview.task-list-item, .dataview.task-list-basic-item { 97 | margin-top: 3px; 98 | margin-bottom: 3px; 99 | transition: 0.4s; 100 | } 101 | 102 | .dataview.task-list-item:hover, .dataview.task-list-basic-item:hover { 103 | background-color: var(--text-selection); 104 | box-shadow: -40px 0 0 var(--text-selection); 105 | cursor: pointer; 106 | } 107 | 108 | /*****************/ 109 | /** Error Views **/ 110 | /*****************/ 111 | 112 | div.dataview-error-box { 113 | width: 100%; 114 | min-height: 150px; 115 | display: flex; 116 | align-items: center; 117 | justify-content: center; 118 | border: 4px dashed var(--background-secondary); 119 | } 120 | 121 | .dataview-error-message { 122 | color: var(--text-muted); 123 | text-align: center; 124 | } 125 | 126 | /*************************/ 127 | /** Additional Metadata **/ 128 | /*************************/ 129 | 130 | .dataview.small-text { 131 | font-size: smaller; 132 | color: var(--text-muted); 133 | margin-left: 3px; 134 | } 135 | 136 | .dataview.small-text::before { 137 | content: "("; 138 | } 139 | 140 | .dataview.small-text::after { 141 | content: ")"; 142 | } 143 | -------------------------------------------------------------------------------- /.obsidian/plugins/execute-code/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "execute-code", 3 | "name": "Execute Code", 4 | "version": "1.8.1", 5 | "minAppVersion": "0.12.0", 6 | "description": "Allows to execute code snippets within a note. Supported programming languages: C, CPP, Dart, Golang, Groovy, Kotlin, Java, JavaScript, TypeScript, Lean, Lua, CSharp, Prolog, Rust, Python, R, Ruby, Wolfram Mathematica, Haskell, Scala, Racket, F#, Batch, Shell & Powershell.", 7 | "author": "twibiral", 8 | "authorUrl": "https://www.github.com/twibiral", 9 | "isDesktopOnly": true 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/css/vs2015.css: -------------------------------------------------------------------------------- 1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%} -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": "3000", 3 | "autoReload": true, 4 | "exportDirectory": "/export", 5 | "enableChalkboard": true, 6 | "enableOverview": true, 7 | "enableMenu": true, 8 | "enablePointer": true, 9 | "enableTimeBar": false, 10 | "theme": "black", 11 | "highlightTheme": "zenburn", 12 | "transition": "slide", 13 | "transitionSpeed": "default", 14 | "controls": true, 15 | "progress": true, 16 | "slideNumber": true, 17 | "showGrid": false, 18 | "autoComplete": "inPreview", 19 | "paneMode": "split", 20 | "motm": "2023-07-01T11:08:16.008Z" 21 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v4.0 | 20180602 3 | License: none (public domain) 4 | */ 5 | 6 | html, body, div, span, applet, object, iframe, 7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 8 | a, abbr, acronym, address, big, cite, code, 9 | del, dfn, em, img, ins, kbd, q, s, samp, 10 | small, strike, strong, sub, sup, tt, var, 11 | b, u, i, center, 12 | dl, dt, dd, ol, ul, li, 13 | fieldset, form, label, legend, 14 | table, caption, tbody, tfoot, thead, tr, th, td, 15 | article, aside, canvas, details, embed, 16 | figure, figcaption, footer, header, hgroup, 17 | main, menu, nav, output, ruby, section, summary, 18 | time, mark, audio, video { 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | font-size: 100%; 23 | font: inherit; 24 | vertical-align: baseline; 25 | } 26 | /* HTML5 display-role reset for older browsers */ 27 | article, aside, details, figcaption, figure, 28 | footer, header, hgroup, main, menu, nav, section { 29 | display: block; 30 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/LICENSE: -------------------------------------------------------------------------------- 1 | SIL Open Font License 2 | 3 | Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. 4 | 5 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 6 | This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL 7 | 8 | —————————————————————————————- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | —————————————————————————————- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. 14 | 15 | The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. 16 | 17 | DEFINITIONS 18 | “Font Software” refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. 19 | 20 | “Reserved Font Name” refers to any names specified as such after the copyright statement(s). 21 | 22 | “Original Version” refers to the collection of Font Software components as distributed by the Copyright Holder(s). 23 | 24 | “Modified Version” refers to any derivative made by adding to, deleting, or substituting—in part or in whole—any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. 25 | 26 | “Author” refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. 27 | 28 | PERMISSION & CONDITIONS 29 | Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 30 | 31 | 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 32 | 33 | 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 34 | 35 | 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 36 | 37 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 38 | 39 | 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. 40 | 41 | TERMINATION 42 | This license becomes null and void if any of the above conditions are not met. 43 | 44 | DISCLAIMER 45 | THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.eot -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.ttf -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-italic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.eot -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.ttf -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.eot -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.ttf -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.eot -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.ttf -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro-semibolditalic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/dist/theme/fonts/source-sans-pro/source-sans-pro.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Source Sans Pro'; 3 | src: url('./source-sans-pro-regular.eot'); 4 | src: url('./source-sans-pro-regular.eot?#iefix') format('embedded-opentype'), 5 | url('./source-sans-pro-regular.woff') format('woff'), 6 | url('./source-sans-pro-regular.ttf') format('truetype'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } 10 | 11 | @font-face { 12 | font-family: 'Source Sans Pro'; 13 | src: url('./source-sans-pro-italic.eot'); 14 | src: url('./source-sans-pro-italic.eot?#iefix') format('embedded-opentype'), 15 | url('./source-sans-pro-italic.woff') format('woff'), 16 | url('./source-sans-pro-italic.ttf') format('truetype'); 17 | font-weight: normal; 18 | font-style: italic; 19 | } 20 | 21 | @font-face { 22 | font-family: 'Source Sans Pro'; 23 | src: url('./source-sans-pro-semibold.eot'); 24 | src: url('./source-sans-pro-semibold.eot?#iefix') format('embedded-opentype'), 25 | url('./source-sans-pro-semibold.woff') format('woff'), 26 | url('./source-sans-pro-semibold.ttf') format('truetype'); 27 | font-weight: 600; 28 | font-style: normal; 29 | } 30 | 31 | @font-face { 32 | font-family: 'Source Sans Pro'; 33 | src: url('./source-sans-pro-semibolditalic.eot'); 34 | src: url('./source-sans-pro-semibolditalic.eot?#iefix') format('embedded-opentype'), 35 | url('./source-sans-pro-semibolditalic.woff') format('woff'), 36 | url('./source-sans-pro-semibolditalic.ttf') format('truetype'); 37 | font-weight: 600; 38 | font-style: italic; 39 | } 40 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/distVersion.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.19.0" 3 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-advanced-slides", 3 | "name": "Advanced Slides", 4 | "version": "1.19.0", 5 | "minAppVersion": "0.12.0", 6 | "description": "Create markdown-based presentations in Obsidian", 7 | "author": "Matthäus Szturc", 8 | "authorUrl": "https://github.com/MSzturc", 9 | "isDesktopOnly": true 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/_style.css: -------------------------------------------------------------------------------- 1 | div.palette, div.boardhandle { 2 | position: absolute; 3 | /* 4 | height: 260px; 5 | margin: -130px 0 0 0px; 6 | */ 7 | top: 50%; 8 | transform: translateY(-50%); 9 | font-size: 24px; 10 | border-radius: 10px; 11 | border-top: 4px solid #222; 12 | border-right: 4px solid #222; 13 | border-bottom: 4px solid #222; 14 | background: black; 15 | transition: transform 0.3s; 16 | } 17 | 18 | div.palette { 19 | left: -10px; 20 | padding-left:10px; 21 | } 22 | 23 | div.boardhandle { 24 | right: -10px; 25 | padding-right:10px; 26 | } 27 | 28 | div.palette > ul, 29 | div.boardhandle > ul { 30 | list-style-type: none; 31 | margin: 0; 32 | padding: 0; 33 | } 34 | 35 | div.palette > ul > li, 36 | div.boardhandle > ul > li { 37 | margin: 10px; 38 | } 39 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/blackboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/blackboard.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-black.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-blue.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-green.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-orange.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-purple.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-red.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/boardmarker-yellow.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-blue.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-green.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-orange.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-purple.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-red.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-white.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/chalk-yellow.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/sponge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/sponge.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/whiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/img/whiteboard.png -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chalkboard/style.css: -------------------------------------------------------------------------------- 1 | div.palette, div.boardhandle { 2 | position: absolute; 3 | /* 4 | height: 260px; 5 | margin: -130px 0 0 0px; 6 | */ 7 | top: 50%; 8 | transform: translateY(-50%); 9 | font-size: 24px; 10 | border-radius: 10px; 11 | border-top: 4px solid #222; 12 | border-right: 4px solid #222; 13 | border-bottom: 4px solid #222; 14 | background: black; 15 | transition: transform 0.3s; 16 | } 17 | 18 | div.palette { 19 | left: -10px; 20 | padding-left:10px; 21 | } 22 | 23 | div.boardhandle { 24 | right: -10px; 25 | padding-right:10px; 26 | } 27 | 28 | div.palette > ul, 29 | div.boardhandle > ul { 30 | list-style-type: none; 31 | margin: 0; 32 | padding: 0; 33 | } 34 | 35 | div.palette > ul > li, 36 | div.boardhandle > ul > li { 37 | margin: 10px; 38 | } 39 | 40 | @media print { 41 | div.palette, div.boardhandle, .chalkboard-button { 42 | display: none!important; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/chart/README.md: -------------------------------------------------------------------------------- 1 | # Chart 2 | 3 | A plugin for [Reveal.js](https://github.com/hakimel/reveal.js) allowing to easily add charts using [Chart.js](http://www.chartjs.org/). 4 | 5 | [Check out the live demo](https://rajgoel.github.io/reveal.js-demos/chart-demo.html) 6 | 7 | ## Installation 8 | 9 | Copy the file `plugin.js` into the plugin folder of your reveal.js presentation, i.e. `plugin/chart`. 10 | 11 | Add the plugin and Chart.js to the dependencies in your presentation, as below. 12 | 13 | ```html 14 | 15 | 16 | 17 | 24 | ``` 25 | 26 | ## Configuration 27 | 28 | The plugin has several parameters that you can set for your presentation by providing an `chart` option in the reveal.js initialization options. Note that all configuration parameters are optional and the defaults of Chart.js will be used for parameters that are not specified. 29 | 30 | 31 | ```javascript 32 | Reveal.initialize({ 33 | // ... 34 | chart: { 35 | defaults: { 36 | color: 'lightgray', // color of labels 37 | scale: { 38 | beginAtZero: true, 39 | ticks: { stepSize: 1 }, 40 | grid: { color: "lightgray" } , // color of grid lines 41 | }, 42 | }, 43 | line: { borderColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ], "borderDash": [ [5,10], [0,0] ] }, 44 | bar: { backgroundColor: [ "rgba(20,220,220,.8)" , "rgba(220,120,120,.8)", "rgba(20,120,220,.8)" ]}, 45 | pie: { backgroundColor: [ ["rgba(0,0,0,.8)" , "rgba(220,20,20,.8)", "rgba(20,220,20,.8)", "rgba(220,220,20,.8)", "rgba(20,20,220,.8)"] ]}, 46 | }, 47 | // ... 48 | }); 49 | ``` 50 | The `defaults` parameter will overwrite `Chart.defaults`. Furthermore, for any chart type, e.g. line, bar, etc., the parameters for the individual datasets can be specified. Where Chart.js allows to specify a single parameter for a particular dataset, the plugin allows to specify an array of values for this parameter, which will automatically be assigned to the different datasets. Note that if there are more datasets than elements in the array, the plugin will start again with the first value in the array. 51 | 52 | 53 | 54 | ## Usage 55 | 56 | A chart can be included in a slide by adding a `canvas` element with the `data-chart` attribute set to the desired chart type. 57 | 58 | The chart can be configured within the canvas body by a JSON string embedded into an HTML comment. 59 | 60 | ```html 61 | 62 | 79 | 80 | ``` 81 | It is possible to provide the chart data by comma separated values and use the JSON string within the HTML comment to configure the chart layout. 82 | 83 | ```html 84 | 85 | My first dataset, 65, 59, 80, 81, 56, 55, 40 86 | 87 | My second dataset, 28, 48, 40, 19, 86, 27, 90 88 | 96 | 97 | ``` 98 | 99 | The layout configuration provided in `chart` parameter (see Configuration) will be used by default and only those parameters that are specified in a JSON string are used to overwrite the default values. If no JSON string is provided to configure the chart layout the default configuration is used. Note, that if no labels for the data points are provided by a JSON string, the plugin expects that the first row provides table headers. 100 | 101 | ```html 102 | 103 | Month, January, February, March, April, May, June, July 104 | My first dataset, 65, 59, 80, 81, 56, 55, 40 105 | My second dataset, 28, 48, 40, 19, 86, 27, 90 106 | 107 | ``` 108 | 109 | The chart data can also be provided in an external CSV file. To include external data, the filename must be specified using the `data-chart-src` attribute of the `canvas` element. The CSV file is expected to only contain data values, whereas options for drawing the chart can be given as described above. 110 | 111 | ```html 112 | 113 | 121 | 122 | ``` 123 | 124 | 125 | ## License 126 | 127 | MIT licensed 128 | 129 | Copyright (C) 2021 Asvin Goel 130 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/customcontrols/README.md: -------------------------------------------------------------------------------- 1 | # Custom controls 2 | 3 | This plugin allows to add responsive custom controls to reveal.js which allow arbitrary positioning, layout, and behaviour of the controls. 4 | 5 | [Check out the live demo](https://rajgoel.github.io/reveal.js-demos/customcontrols-demo.html) 6 | 7 | 8 | ## Installation 9 | 10 | Copy the files `plugin.js` and `style.css` into the plugin folder of your reveal.js presentation, i.e. ```plugin/customcontrols``` and load the plugin as shown below. 11 | 12 | ```html 13 | 14 | 15 | 16 | 23 | ``` 24 | 25 | Note, without configuration you need to add 26 | 27 | ```javascript 28 | 29 | ``` 30 | 31 | between `````` and `````` of your HTML file because the defaults use [Font Awesome](http://fontawesome.io/). 32 | 33 | 34 | 35 | ## Configuration 36 | 37 | The plugin can be configured by adding custom controls and changing the layout of the slide number, e.g., by: 38 | 39 | 40 | ```javascript 41 | Reveal.initialize({ 42 | // ... 43 | customcontrols: { 44 | controls: [ 45 | { 46 | id: 'toggle-overview', 47 | title: 'Toggle overview (O)', 48 | icon: '', 49 | action: 'Reveal.toggleOverview();' 50 | }, 51 | { icon: '', 52 | title: 'Toggle chalkboard (B)', 53 | action: 'RevealChalkboard.toggleChalkboard();' 54 | }, 55 | { icon: '', 56 | title: 'Toggle notes canvas (C)', 57 | action: 'RevealChalkboard.toggleNotesCanvas();' 58 | } 59 | ] 60 | }, 61 | // ... 62 | 63 | }); 64 | ``` 65 | 66 | The `id` and `title` are optional. The configuration should be self explaining and any number of controls can be added. The style file can be altered to control the layout and responsiveness of the custom controls. 67 | 68 | ## License 69 | 70 | MIT licensed 71 | 72 | Copyright (C) 2020 Asvin Goel 73 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/customcontrols/plugin.js: -------------------------------------------------------------------------------- 1 | /***************************************************************** 2 | ** Author: Asvin Goel, goel@telematique.eu 3 | ** 4 | ** A plugin replacing the default controls by custom controls. 5 | ** 6 | ** Version: 2.0.0 7 | ** 8 | ** License: MIT license (see LICENSE.md) 9 | ** 10 | ******************************************************************/ 11 | window.RevealCustomControls = window.RevealCustomControls || { 12 | id: 'RevealCustomControls', 13 | init: function(deck) { 14 | initCustomControls(deck); 15 | } 16 | }; 17 | 18 | const initCustomControls = function(Reveal){ 19 | var config = Reveal.getConfig().customcontrols || {}; 20 | 21 | var collapseIcon = config.collapseIcon || ''; 22 | var expandIcon = config.expandIcon || ''; 23 | var tooltip = config.tooltip || 'Show/hide controls'; 24 | 25 | var div = document.createElement( 'div' ); 26 | div.id = 'customcontrols'; 27 | 28 | var toggleButton = document.createElement( 'button' ); 29 | toggleButton.title = tooltip; 30 | toggleButton.innerHTML = '' + collapseIcon + '' + '' + expandIcon + ''; 31 | 32 | toggleButton.addEventListener('click', function( event ) { 33 | var div = document.querySelector("div#customcontrols"); 34 | if ( div.classList.contains('collapsed') ) { 35 | div.classList.remove('collapsed'); 36 | } 37 | else { 38 | div.classList.add('collapsed'); 39 | } 40 | }); 41 | 42 | div.appendChild(toggleButton); 43 | 44 | var controls = document.createElement( 'ul' ); 45 | for (var i = 0; i < config.controls.length; i++ ) { 46 | var control = document.createElement( 'li' ); 47 | if ( config.controls[i].id ) { 48 | control.id = config.controls[i].id; 49 | } 50 | control.innerHTML = ''; 51 | controls.appendChild( control ); 52 | } 53 | div.appendChild( controls ); 54 | 55 | 56 | document.querySelector(".reveal").appendChild( div ); 57 | 58 | document.addEventListener( 'resize', function( event ) { 59 | // expand controls to make sure they are visible 60 | var div = document.querySelector("div#customcontrols.collapsed"); 61 | if ( div ) { 62 | div.classList.remove('collapsed'); 63 | } 64 | } ); 65 | 66 | return this; 67 | 68 | }; 69 | 70 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/customcontrols/style.css: -------------------------------------------------------------------------------- 1 | #customcontrols { 2 | z-index: 40; 3 | position: fixed; 4 | left: 70px; 5 | bottom: 30px; 6 | text-align: center; 7 | font-size: 24px; 8 | } 9 | 10 | #customcontrols button { 11 | background: none; 12 | color: var(--r-link-color); 13 | border: none; 14 | padding: 0; 15 | font: inherit; 16 | cursor: pointer; 17 | outline: inherit; 18 | z-index: 40; 19 | } 20 | 21 | #customcontrols button:hover { 22 | color: var(--r-link-color-hover); 23 | } 24 | 25 | #customcontrols > ul { 26 | position: fixed; 27 | left: 54px; 28 | bottom: 64px; 29 | list-style-type: none; 30 | overflow: hidden; 31 | margin: 0; 32 | padding: 0; 33 | border: 1px solid var(--r-link-color); 34 | border-radius: 5px; 35 | padding: 10px; 36 | background-color: var(--r-background-color) 37 | } 38 | 39 | #customcontrols ul > li { 40 | margin: 0px 5px; 41 | padding: 0px 5px; 42 | float: left; 43 | } 44 | 45 | #customcontrols.collapsed #collapse-customcontrols, #customcontrols.collapsed > ul { 46 | display: none; 47 | } 48 | 49 | #customcontrols:not(.collapsed) #expand-customcontrols { 50 | display: none; 51 | } 52 | 53 | @media only screen and (min-width: 500px) { 54 | #customcontrols > button { 55 | display: none; 56 | } 57 | #customcontrols > ul { 58 | bottom: 20px; 59 | border: none; 60 | background: none; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/elapsed-time-bar/elapsed-time-bar.js: -------------------------------------------------------------------------------- 1 | var ElapsedTimeBar = { 2 | // default value 3 | barColor: 'rgb(200,0,0)', 4 | pausedBarColor: 'rgba(200,0,0,.6)', 5 | 6 | isPaused: false, 7 | isFinished: false, 8 | 9 | allottedTime: null, 10 | timeProgressBar: null, 11 | startTime: null, 12 | pauseTime: null, 13 | pauseTimeDuration: 0, 14 | 15 | /** 16 | * initialize elements 17 | */ 18 | handleReady() { 19 | var config = Reveal.getConfig(); 20 | 21 | // activate this plugin if config.allottedTime exists. 22 | if (!config.allottedTime) { 23 | console.warn('Failed to start ElapsedTimeBar plugin. "allottedTime" property is required.'); 24 | return; 25 | } 26 | 27 | // set configurations 28 | this.barColor = config.barColor || this.barColor; 29 | this.pausedBarColor = config.pausedBarColor || this.pausedBarColor; 30 | 31 | // calc barHeight from config.barHeight or page-progress container 32 | var barHeight; 33 | var pageProgressContainer = document.querySelector('.progress'); 34 | if (config.progressBarHeight) { 35 | barHeight = parseInt(config.progressBarHeight, 10) + 'px'; 36 | 37 | // override height of page-progress container 38 | pageProgressContainer && (pageProgressContainer.style.height = barHeight); 39 | } else if (config.progress && pageProgressContainer) { 40 | // get height from page-progress container 41 | barHeight = pageProgressContainer.getBoundingClientRect().height + 'px'; 42 | } else { 43 | // default 44 | barHeight = '3px'; 45 | } 46 | 47 | // create container of time-progress 48 | var timeProgressContainer = document.createElement('div'); 49 | timeProgressContainer.classList.add('progress'); 50 | Object.entries({ 51 | display: 'block', 52 | position: 'fixed', 53 | bottom: config.progress ? barHeight : 0, 54 | width: '100%', 55 | height: barHeight 56 | }).forEach(([k, v]) => { 57 | timeProgressContainer.style[k] = v; 58 | }); 59 | document.querySelector('.reveal').appendChild(timeProgressContainer); 60 | 61 | // create content of time-progress 62 | this.timeProgressBar = document.createElement('div'); 63 | Object.entries({ 64 | height: '100%', 65 | willChange: 'width' 66 | }).forEach(([k, v]) => { 67 | this.timeProgressBar.style[k] = v; 68 | }); 69 | timeProgressContainer.appendChild(this.timeProgressBar); 70 | 71 | // start timer 72 | this.start(config.allottedTime); 73 | }, 74 | 75 | /** 76 | * update repeatedly using requestAnimationFrame. 77 | */ 78 | loop() { 79 | if (this.isPaused) return; 80 | var now = +new Date(); 81 | var elapsedTime = now - this.startTime - this.pauseTimeDuration; 82 | if (elapsedTime > this.allottedTime) { 83 | this.timeProgressBar.style.width = '100%'; 84 | this.isFinished = true; 85 | } else { 86 | this.timeProgressBar.style.width = elapsedTime / this.allottedTime * 100 + '%'; 87 | requestAnimationFrame(this.loop.bind(this)); 88 | } 89 | }, 90 | 91 | /** 92 | * set color of progress bar 93 | */ 94 | setBarColor() { 95 | if (this.isPaused) { 96 | this.timeProgressBar.style.backgroundColor = this.pausedBarColor; 97 | } else { 98 | this.timeProgressBar.style.backgroundColor = this.barColor; 99 | } 100 | }, 101 | 102 | /** 103 | * start(reset) timer with new allotted time. 104 | * @param {number} allottedTime 105 | * @param {number} [elapsedTime=0] 106 | */ 107 | start(allottedTime, elapsedTime = 0) { 108 | this.isFinished = false; 109 | this.isPaused = false; 110 | this.allottedTime = allottedTime; 111 | this.startTime = +new Date() - elapsedTime; 112 | this.pauseTimeDuration = 0; 113 | this.setBarColor(); 114 | this.loop(); 115 | }, 116 | 117 | reset() { 118 | this.start(this.allottedTime); 119 | }, 120 | 121 | pause() { 122 | if (this.isPaused) return; 123 | this.isPaused = true; 124 | this.pauseTime = +new Date(); 125 | this.setBarColor(); 126 | }, 127 | 128 | resume() { 129 | if (!this.isPaused) return; 130 | 131 | // add paused time duration 132 | this.isPaused = false; 133 | this.pauseTimeDuration += new Date() - this.pauseTime; 134 | this.pauseTime = null; 135 | this.setBarColor(); 136 | this.loop(); 137 | } 138 | }; 139 | 140 | if (Reveal.isReady()) { 141 | ElapsedTimeBar.handleReady(); 142 | } else { 143 | Reveal.addEventListener('ready', () => ElapsedTimeBar.handleReady()); 144 | } 145 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/highlight/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; 10 | color: #ddd; 11 | } 12 | 13 | .hljs-tag, 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal, 17 | .hljs-strong, 18 | .hljs-name { 19 | color: #f92672; 20 | } 21 | 22 | .hljs-code { 23 | color: #66d9ef; 24 | } 25 | 26 | .hljs-class .hljs-title { 27 | color: white; 28 | } 29 | 30 | .hljs-attribute, 31 | .hljs-symbol, 32 | .hljs-regexp, 33 | .hljs-link { 34 | color: #bf79db; 35 | } 36 | 37 | .hljs-string, 38 | .hljs-bullet, 39 | .hljs-subst, 40 | .hljs-title, 41 | .hljs-section, 42 | .hljs-emphasis, 43 | .hljs-type, 44 | .hljs-built_in, 45 | .hljs-builtin-name, 46 | .hljs-selector-attr, 47 | .hljs-selector-pseudo, 48 | .hljs-addition, 49 | .hljs-variable, 50 | .hljs-template-tag, 51 | .hljs-template-variable { 52 | color: #a6e22e; 53 | } 54 | 55 | .hljs-comment, 56 | .hljs-quote, 57 | .hljs-deletion, 58 | .hljs-meta { 59 | color: #75715e; 60 | } 61 | 62 | .hljs-keyword, 63 | .hljs-selector-tag, 64 | .hljs-literal, 65 | .hljs-doctag, 66 | .hljs-title, 67 | .hljs-section, 68 | .hljs-type, 69 | .hljs-selector-id { 70 | font-weight: bold; 71 | } 72 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/highlight/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/katex.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for KaTeX. 4 | * 5 | * @author Hakim El Hattab 6 | * @author Gerhard Burger 7 | */ 8 | export const KaTeX = () => { 9 | let deck; 10 | 11 | let defaultOptions = { 12 | version: 'latest', 13 | delimiters: [ 14 | {left: '$$', right: '$$', display: true}, // Note: $$ has to come before $ 15 | {left: '$', right: '$', display: false}, 16 | {left: '\\(', right: '\\)', display: false}, 17 | {left: '\\[', right: '\\]', display: true} 18 | ], 19 | ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre'] 20 | } 21 | 22 | const loadCss = src => { 23 | let link = document.createElement('link'); 24 | link.rel = 'stylesheet'; 25 | link.href = src; 26 | document.head.appendChild(link); 27 | }; 28 | 29 | /** 30 | * Loads a JavaScript file and returns a Promise for when it is loaded 31 | * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/ 32 | */ 33 | const loadScript = src => { 34 | return new Promise((resolve, reject) => { 35 | const script = document.createElement('script') 36 | script.type = 'text/javascript' 37 | script.onload = resolve 38 | script.onerror = reject 39 | script.src = src 40 | document.head.append(script) 41 | }) 42 | }; 43 | 44 | async function loadScripts(urls) { 45 | for(const url of urls) { 46 | await loadScript(url); 47 | } 48 | } 49 | 50 | return { 51 | id: 'katex', 52 | 53 | init: function (reveal) { 54 | 55 | deck = reveal; 56 | 57 | let revealOptions = deck.getConfig().katex || {}; 58 | 59 | let options = {...defaultOptions, ...revealOptions}; 60 | const {local, version, extensions, ...katexOptions} = options; 61 | 62 | let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex'; 63 | let versionString = options.local ? '' : '@' + options.version; 64 | 65 | let cssUrl = baseUrl + versionString + '/dist/katex.min.css'; 66 | let katexUrl = baseUrl + versionString + '/dist/katex.min.js'; 67 | let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js' 68 | let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js'; 69 | 70 | let katexScripts = [katexUrl]; 71 | if(options.extensions && options.extensions.includes("mhchem")) { 72 | katexScripts.push(mhchemUrl); 73 | } 74 | katexScripts.push(karUrl); 75 | 76 | const renderMath = () => { 77 | renderMathInElement(reveal.getSlidesElement(), katexOptions); 78 | deck.layout(); 79 | } 80 | 81 | loadCss(cssUrl); 82 | 83 | // For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does 84 | loadScripts(katexScripts).then(() => { 85 | if( deck.isReady() ) { 86 | renderMath(); 87 | } 88 | else { 89 | deck.on( 'ready', renderMath.bind( this ) ); 90 | } 91 | }); 92 | 93 | } 94 | } 95 | 96 | }; 97 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/action.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,o={669:function(t,a,o){Object.defineProperty(a,"__esModule",{value:!0}),a.ActionConfiguration=a.ActionMethods=void 0;var e=o(251),n=o(193),i=o(871),r=o(360);a.ActionMethods={},a.ActionMethods.Macro=r.default.Macro,a.ActionMethods.Toggle=function(t,a){for(var o,e=[];"\\endtoggle"!==(o=t.GetArgument(a));)e.push(new n.default(o,t.stack.env,t.configuration).mml());t.Push(t.create("node","maction",e,{actiontype:"toggle"}))},a.ActionMethods.Mathtip=function(t,a){var o=t.ParseArg(a),e=t.ParseArg(a);t.Push(t.create("node","maction",[o,e],{actiontype:"tooltip"}))},new i.CommandMap("action-macros",{toggle:"Toggle",mathtip:"Mathtip",texttip:["Macro","\\mathtip{#1}{\\text{#2}}",2]},a.ActionMethods),a.ActionConfiguration=e.Configuration.create("action",{handler:{macro:["action-macros"]}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},193:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.TexParser.default},360:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.base.BaseMethods.default}},e={};function n(t){var a=e[t];if(void 0!==a)return a.exports;var i=e[t]={exports:{}};return o[t](i,i.exports,n),i.exports}t=n(955),a=n(669),(0,t.r8)({_:{input:{tex:{action:{ActionConfiguration:a}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/bbox.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,e={133:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.BboxConfiguration=a.BboxMethods=void 0;var o=e(251),n=e(871),i=e(402);a.BboxMethods={},a.BboxMethods.BBox=function(t,a){for(var e,o,n,u=t.GetBrackets(a,""),l=t.ParseArg(a),x=u.split(/,/),M=0,c=x.length;M=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(a,"__esModule",{value:!0}),a.BoldsymbolConfiguration=a.rewriteBoldTokens=a.createBoldToken=a.BoldsymbolMethods=void 0;var n=o(251),r=o(748),i=o(108),l=o(871),s=o(348),u={};function d(t,a,o,e){var n=s.NodeFactory.createToken(t,a,o,e);return"mtext"!==a&&t.configuration.parser.stack.env.boldsymbol&&(r.default.setProperty(n,"fixBold",!0),t.configuration.addNode("fixBold",n)),n}function x(t){var a,o;try{for(var n=e(t.data.getList("fixBold")),l=n.next();!l.done;l=n.next()){var s=l.value;if(r.default.getProperty(s,"fixBold")){var d=r.default.getAttribute(s,"mathvariant");null==d?r.default.setAttribute(s,"mathvariant",i.TexConstant.Variant.BOLD):r.default.setAttribute(s,"mathvariant",u[d]||d),r.default.removeProperties(s,"fixBold")}}}catch(t){a={error:t}}finally{try{l&&!l.done&&(o=n.return)&&o.call(n)}finally{if(a)throw a.error}}}u[i.TexConstant.Variant.NORMAL]=i.TexConstant.Variant.BOLD,u[i.TexConstant.Variant.ITALIC]=i.TexConstant.Variant.BOLDITALIC,u[i.TexConstant.Variant.FRAKTUR]=i.TexConstant.Variant.BOLDFRAKTUR,u[i.TexConstant.Variant.SCRIPT]=i.TexConstant.Variant.BOLDSCRIPT,u[i.TexConstant.Variant.SANSSERIF]=i.TexConstant.Variant.BOLDSANSSERIF,u["-tex-calligraphic"]="-tex-bold-calligraphic",u["-tex-oldstyle"]="-tex-bold-oldstyle",u["-tex-mathit"]=i.TexConstant.Variant.BOLDITALIC,a.BoldsymbolMethods={},a.BoldsymbolMethods.Boldsymbol=function(t,a){var o=t.stack.env.boldsymbol;t.stack.env.boldsymbol=!0;var e=t.ParseArg(a);t.stack.env.boldsymbol=o,t.Push(e)},new l.CommandMap("boldsymbol",{boldsymbol:"Boldsymbol"},a.BoldsymbolMethods),a.createBoldToken=d,a.rewriteBoldTokens=x,a.BoldsymbolConfiguration=n.Configuration.create("boldsymbol",{handler:{macro:["boldsymbol"]},nodes:{token:d},postprocessors:[x]})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},348:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.NodeFactory=MathJax._.input.tex.NodeFactory.NodeFactory},748:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.NodeUtil.default},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.TexConstant=MathJax._.input.tex.TexConstants.TexConstant}},e={};function n(t){var a=e[t];if(void 0!==a)return a.exports;var r=e[t]={exports:{}};return o[t].call(r.exports,r,r.exports,n),r.exports}t=n(955),a=n(986),(0,t.r8)({_:{input:{tex:{boldsymbol:{BoldsymbolConfiguration:a}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/cancel.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,e={774:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.CancelConfiguration=a.CancelMethods=void 0;var n=e(251),o=e(108),i=e(871),c=e(398),r=e(975);a.CancelMethods={},a.CancelMethods.Cancel=function(t,a,e){var n=t.GetBrackets(a,""),o=t.ParseArg(a),i=c.default.keyvalOptions(n,r.ENCLOSE_OPTIONS);i.notation=e,t.Push(t.create("node","menclose",[o],i))},a.CancelMethods.CancelTo=function(t,a){var e=t.GetBrackets(a,""),n=t.ParseArg(a),i=t.ParseArg(a),l=c.default.keyvalOptions(e,r.ENCLOSE_OPTIONS);l.notation=[o.TexConstant.Notation.UPDIAGONALSTRIKE,o.TexConstant.Notation.UPDIAGONALARROW,o.TexConstant.Notation.NORTHEASTARROW].join(" "),n=t.create("node","mpadded",[n],{depth:"-.1em",height:"+.1em",voffset:".1em"}),t.Push(t.create("node","msup",[t.create("node","menclose",[i],l),n]))},new i.CommandMap("cancel",{cancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE],bcancel:["Cancel",o.TexConstant.Notation.DOWNDIAGONALSTRIKE],xcancel:["Cancel",o.TexConstant.Notation.UPDIAGONALSTRIKE+" "+o.TexConstant.Notation.DOWNDIAGONALSTRIKE],cancelto:"CancelTo"},a.CancelMethods),a.CancelConfiguration=n.Configuration.create("cancel",{handler:{macro:["cancel"]}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},398:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.ParseUtil.default},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.TexConstant=MathJax._.input.tex.TexConstants.TexConstant},975:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.ENCLOSE_OPTIONS=MathJax._.input.tex.enclose.EncloseConfiguration.ENCLOSE_OPTIONS,a.EncloseMethods=MathJax._.input.tex.enclose.EncloseConfiguration.EncloseMethods,a.EncloseConfiguration=MathJax._.input.tex.enclose.EncloseConfiguration.EncloseConfiguration}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var i=n[t]={exports:{}};return e[t](i,i.exports,o),i.exports}t=o(955),a=o(774),(0,t.r8)({_:{input:{tex:{cancel:{CancelConfiguration:a}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/centernot.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var e,t,a={286:function(e,t,a){var n=this&&this.__values||function(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],n=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(t,"__esModule",{value:!0}),t.CenternotConfiguration=t.filterCenterOver=void 0;var r=a(251),o=a(193),i=a(748),u=a(871),l=a(360);function p(e){var t,a,r=e.data;try{for(var o=n(r.getList("centerOver")),u=o.next();!u.done;u=o.next()){var l=u.value,p=i.default.getTexClass(l.childNodes[0].childNodes[0]);null!==p&&i.default.setProperties(l.parent.parent.parent.parent.parent.parent,{texClass:p})}}catch(e){t={error:e}}finally{try{u&&!u.done&&(a=o.return)&&a.call(o)}finally{if(t)throw t.error}}}new u.CommandMap("centernot",{centerOver:"CenterOver",centernot:["Macro","\\centerOver{#1}{{\u29f8}}",1]},{CenterOver:function(e,t){var a="{"+e.GetArgument(t)+"}",n=e.ParseArg(t),r=new o.default(a,e.stack.env,e.configuration).mml(),i=e.create("node","TeXAtom",[new o.default(a,e.stack.env,e.configuration).mml(),e.create("node","mpadded",[e.create("node","mpadded",[n],{width:0,lspace:"-.5width"}),e.create("node","mphantom",[r])],{width:0,lspace:"-.5width"})]);e.configuration.addNode("centerOver",r),e.Push(i)},Macro:l.default.Macro}),t.filterCenterOver=p,t.CenternotConfiguration=r.Configuration.create("centernot",{handler:{macro:["centernot"]},postprocessors:[p]})},955:function(e,t){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,t.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=MathJax._.input.tex.Configuration.Configuration,t.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,t.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},748:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.NodeUtil.default},871:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,t.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,t.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,t.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,t.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,t.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,t.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,t.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},193:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.TexParser.default},360:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.base.BaseMethods.default}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return a[e].call(o.exports,o,o.exports,r),o.exports}e=r(955),t=r(286),(0,e.r8)({_:{input:{tex:{centernot:{CenternotConfiguration:t}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/colortbl.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,e,a={558:function(t,e,a){var o,n=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function a(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(a.prototype=e.prototype,new a)});Object.defineProperty(e,"__esModule",{value:!0}),e.ColortblConfiguration=e.ColorArrayItem=void 0;var r=a(935),i=a(251),s=a(871),l=a(402),p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.color={cell:"",row:"",col:[]},e.hasColor=!1,e}return n(e,t),e.prototype.EndEntry=function(){t.prototype.EndEntry.call(this);var e=this.row[this.row.length-1],a=this.color.cell||this.color.row||this.color.col[this.row.length-1];a&&(e.attributes.set("mathbackground",a),this.color.cell="",this.hasColor=!0)},e.prototype.EndRow=function(){t.prototype.EndRow.call(this),this.color.row=""},e.prototype.createMml=function(){var e=t.prototype.createMml.call(this),a=e.isKind("mrow")?e.childNodes[1]:e;return a.isKind("menclose")&&(a=a.childNodes[0].childNodes[0]),this.hasColor&&"none"===a.attributes.get("frame")&&a.attributes.set("frame",""),e},e}(r.ArrayItem);e.ColorArrayItem=p,new s.CommandMap("colortbl",{cellcolor:["TableColor","cell"],rowcolor:["TableColor","row"],columncolor:["TableColor","col"]},{TableColor:function(t,e,a){var o=t.configuration.packageData.get("color").model,n=t.GetBrackets(e,""),r=o.getColor(n,t.GetArgument(e)),i=t.stack.Top();if(!(i instanceof p))throw new l.default("UnsupportedTableColor","Unsupported use of %1",t.currentCS);if("col"===a){if(i.table.length)throw new l.default("ColumnColorNotTop","%1 must be in the top row",e);i.color.col[i.row.length]=r,t.GetBrackets(e,"")&&t.GetBrackets(e,"")}else if(i.color[a]=r,"row"===a&&(i.Size()||i.row.length))throw new l.default("RowColorNotFirst","%1 must be at the beginning of a row",e)}});e.ColortblConfiguration=i.Configuration.create("colortbl",{handler:{macro:["colortbl"]},items:{array:p},priority:10,config:[function(t,e){e.parseOptions.packageData.has("color")||i.ConfigurationHandler.get("color").config(t,e)},10]})},955:function(t,e){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,e.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Configuration=MathJax._.input.tex.Configuration.Configuration,e.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,e.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,e.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,e.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,e.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,e.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,e.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,e.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,e.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},402:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.TexError.default},935:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.StartItem=MathJax._.input.tex.base.BaseItems.StartItem,e.StopItem=MathJax._.input.tex.base.BaseItems.StopItem,e.OpenItem=MathJax._.input.tex.base.BaseItems.OpenItem,e.CloseItem=MathJax._.input.tex.base.BaseItems.CloseItem,e.PrimeItem=MathJax._.input.tex.base.BaseItems.PrimeItem,e.SubsupItem=MathJax._.input.tex.base.BaseItems.SubsupItem,e.OverItem=MathJax._.input.tex.base.BaseItems.OverItem,e.LeftItem=MathJax._.input.tex.base.BaseItems.LeftItem,e.Middle=MathJax._.input.tex.base.BaseItems.Middle,e.RightItem=MathJax._.input.tex.base.BaseItems.RightItem,e.BeginItem=MathJax._.input.tex.base.BaseItems.BeginItem,e.EndItem=MathJax._.input.tex.base.BaseItems.EndItem,e.StyleItem=MathJax._.input.tex.base.BaseItems.StyleItem,e.PositionItem=MathJax._.input.tex.base.BaseItems.PositionItem,e.CellItem=MathJax._.input.tex.base.BaseItems.CellItem,e.MmlItem=MathJax._.input.tex.base.BaseItems.MmlItem,e.FnItem=MathJax._.input.tex.base.BaseItems.FnItem,e.NotItem=MathJax._.input.tex.base.BaseItems.NotItem,e.NonscriptItem=MathJax._.input.tex.base.BaseItems.NonscriptItem,e.DotsItem=MathJax._.input.tex.base.BaseItems.DotsItem,e.ArrayItem=MathJax._.input.tex.base.BaseItems.ArrayItem,e.EqnArrayItem=MathJax._.input.tex.base.BaseItems.EqnArrayItem,e.EquationItem=MathJax._.input.tex.base.BaseItems.EquationItem}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return a[t].call(r.exports,r,r.exports,n),r.exports}t=n(955),e=n(558),(0,t.r8)({_:{input:{tex:{colortbl:{ColortblConfiguration:e}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/colorv2.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var o,a,t={888:function(o,a,t){Object.defineProperty(a,"__esModule",{value:!0}),a.ColorConfiguration=a.ColorV2Methods=void 0;var n=t(871),e=t(251);a.ColorV2Methods={Color:function(o,a){var t=o.GetArgument(a),n=o.stack.env.color;o.stack.env.color=t;var e=o.ParseArg(a);n?o.stack.env.color=n:delete o.stack.env.color;var r=o.create("node","mstyle",[e],{mathcolor:t});o.Push(r)}},new n.CommandMap("colorv2",{color:"Color"},a.ColorV2Methods),a.ColorConfiguration=e.Configuration.create("colorv2",{handler:{macro:["colorv2"]}})},955:function(o,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(o,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(o,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap}},n={};function e(o){var a=n[o];if(void 0!==a)return a.exports;var r=n[o]={exports:{}};return t[o](r,r.exports,e),r.exports}o=e(955),a=e(888),(0,o.r8)({_:{input:{tex:{colorv2:{ColorV2Configuration:a}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/configmacros.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,e={359:function(t,a,e){var n,o=this&&this.__values||function(t){var a="function"==typeof Symbol&&Symbol.iterator,e=a&&t[a],n=0;if(e)return e.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(a?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(a,"__esModule",{value:!0}),a.ConfigMacrosConfiguration=void 0;var i=e(251),r=e(74),p=e(871),l=e(945),s=e(924),u=e(432),c=e(975),M="configmacros-map",f="configmacros-env-map";a.ConfigMacrosConfiguration=i.Configuration.create("configmacros",{init:function(t){new p.CommandMap(M,{},{}),new p.EnvironmentMap(f,l.default.environment,{},{}),t.append(i.Configuration.local({handler:{macro:[M],environment:[f]},priority:3}))},config:function(t,a){!function(t){var a,e,n=t.parseOptions.handlers.retrieve(M),i=t.parseOptions.options.macros;try{for(var r=o(Object.keys(i)),p=r.next();!p.done;p=r.next()){var l=p.value,c="string"==typeof i[l]?[i[l]]:i[l],f=Array.isArray(c[2])?new s.Macro(l,u.default.MacroWithTemplate,c.slice(0,2).concat(c[2])):new s.Macro(l,u.default.Macro,c);n.add(l,f)}}catch(t){a={error:t}}finally{try{p&&!p.done&&(e=r.return)&&e.call(r)}finally{if(a)throw a.error}}}(a),function(t){var a,e,n=t.parseOptions.handlers.retrieve(f),i=t.parseOptions.options.environments;try{for(var r=o(Object.keys(i)),p=r.next();!p.done;p=r.next()){var l=p.value;n.add(l,new s.Macro(l,u.default.BeginEnv,[!0].concat(i[l])))}}catch(t){a={error:t}}finally{try{p&&!p.done&&(e=r.return)&&e.call(r)}finally{if(a)throw a.error}}}(a)},items:(n={},n[c.BeginEnvItem.prototype.kind]=c.BeginEnvItem,n),options:{macros:r.expandable({}),environments:r.expandable({})}})},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},74:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.isObject=MathJax._.util.Options.isObject,a.APPEND=MathJax._.util.Options.APPEND,a.REMOVE=MathJax._.util.Options.REMOVE,a.OPTIONS=MathJax._.util.Options.OPTIONS,a.Expandable=MathJax._.util.Options.Expandable,a.expandable=MathJax._.util.Options.expandable,a.makeArray=MathJax._.util.Options.makeArray,a.keys=MathJax._.util.Options.keys,a.copy=MathJax._.util.Options.copy,a.insert=MathJax._.util.Options.insert,a.defaultOptions=MathJax._.util.Options.defaultOptions,a.userOptions=MathJax._.util.Options.userOptions,a.selectOptions=MathJax._.util.Options.selectOptions,a.selectOptionsFromKeys=MathJax._.util.Options.selectOptionsFromKeys,a.separateOptions=MathJax._.util.Options.separateOptions,a.lookup=MathJax._.util.Options.lookup},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},945:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.ParseMethods.default},924:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Symbol=MathJax._.input.tex.Symbol.Symbol,a.Macro=MathJax._.input.tex.Symbol.Macro},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},975:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.BeginEnvItem=MathJax._.input.tex.newcommand.NewcommandItems.BeginEnvItem},432:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.newcommand.NewcommandMethods.default}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var i=n[t]={exports:{}};return e[t].call(i.exports,i,i.exports,o),i.exports}t=o(955),a=o(359),(0,t.r8)({_:{input:{tex:{configmacros:{ConfigMacrosConfiguration:a}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/enclose.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var a,t,e={272:function(a,t,e){Object.defineProperty(t,"__esModule",{value:!0}),t.EncloseConfiguration=t.EncloseMethods=t.ENCLOSE_OPTIONS=void 0;var o=e(251),n=e(871),r=e(398);t.ENCLOSE_OPTIONS={"data-arrowhead":1,color:1,mathcolor:1,background:1,mathbackground:1,"data-padding":1,"data-thickness":1},t.EncloseMethods={},t.EncloseMethods.Enclose=function(a,e){var o=a.GetArgument(e).replace(/,/g," "),n=a.GetBrackets(e,""),i=a.ParseArg(e),l=r.default.keyvalOptions(n,t.ENCLOSE_OPTIONS);l.notation=o,a.Push(a.create("node","menclose",[i],l))},new n.CommandMap("enclose",{enclose:"Enclose"},t.EncloseMethods),t.EncloseConfiguration=o.Configuration.create("enclose",{handler:{macro:["enclose"]}})},955:function(a,t){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,t.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=MathJax._.input.tex.Configuration.Configuration,t.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,t.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},398:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=MathJax._.input.tex.ParseUtil.default},871:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,t.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,t.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,t.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,t.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,t.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,t.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,t.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap}},o={};function n(a){var t=o[a];if(void 0!==t)return t.exports;var r=o[a]={exports:{}};return e[a](r,r.exports,n),r.exports}a=n(955),t=n(272),(0,a.r8)({_:{input:{tex:{enclose:{EncloseConfiguration:t}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/extpfeil.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,e,a={646:function(t,e,a){Object.defineProperty(e,"__esModule",{value:!0}),e.ExtpfeilConfiguration=e.ExtpfeilMethods=void 0;var o=a(251),n=a(871),r=a(939),i=a(892),u=a(417),x=a(402);e.ExtpfeilMethods={},e.ExtpfeilMethods.xArrow=r.AmsMethods.xArrow,e.ExtpfeilMethods.NewExtArrow=function(t,a){var o=t.GetArgument(a),n=t.GetArgument(a),r=t.GetArgument(a);if(!o.match(/^\\([a-z]+|.)$/i))throw new x.default("NewextarrowArg1","First argument to %1 must be a control sequence name",a);if(!n.match(/^(\d+),(\d+)$/))throw new x.default("NewextarrowArg2","Second argument to %1 must be two integers separated by a comma",a);if(!r.match(/^(\d+|0x[0-9A-F]+)$/i))throw new x.default("NewextarrowArg3","Third argument to %1 must be a unicode character number",a);o=o.substr(1);var u=n.split(",");i.default.addMacro(t,o,e.ExtpfeilMethods.xArrow,[parseInt(r),parseInt(u[0]),parseInt(u[1])])},new n.CommandMap("extpfeil",{xtwoheadrightarrow:["xArrow",8608,12,16],xtwoheadleftarrow:["xArrow",8606,17,13],xmapsto:["xArrow",8614,6,7],xlongequal:["xArrow",61,7,7],xtofrom:["xArrow",8644,12,12],Newextarrow:"NewExtArrow"},e.ExtpfeilMethods);e.ExtpfeilConfiguration=o.Configuration.create("extpfeil",{handler:{macro:["extpfeil"]},init:function(t){u.NewcommandConfiguration.init(t)}})},955:function(t,e){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,e.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Configuration=MathJax._.input.tex.Configuration.Configuration,e.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,e.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,e.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,e.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,e.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,e.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,e.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,e.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,e.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},402:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.TexError.default},939:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AmsMethods=MathJax._.input.tex.ams.AmsMethods.AmsMethods,e.NEW_OPS=MathJax._.input.tex.ams.AmsMethods.NEW_OPS},417:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.NewcommandConfiguration=MathJax._.input.tex.newcommand.NewcommandConfiguration.NewcommandConfiguration},892:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.newcommand.NewcommandUtil.default}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={exports:{}};return a[t](r,r.exports,n),r.exports}t=n(955),e=n(646),(0,t.r8)({_:{input:{tex:{extpfeil:{ExtpfeilConfiguration:e}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/gensymb.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var a,t,n={82:function(a,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.GensymbConfiguration=void 0;var e=n(251),o=n(108);new(n(871).CharacterMap)("gensymb-symbols",(function(a,t){var n=t.attributes||{};n.mathvariant=o.TexConstant.Variant.NORMAL,n.class="MathML-Unit";var e=a.create("token","mi",n,t.char);a.Push(e)}),{ohm:"\u2126",degree:"\xb0",celsius:"\u2103",perthousand:"\u2030",micro:"\xb5"}),t.GensymbConfiguration=e.Configuration.create("gensymb",{handler:{macro:["gensymb-symbols"]}})},955:function(a,t){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,t.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=MathJax._.input.tex.Configuration.Configuration,t.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,t.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,t.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,t.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,t.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,t.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,t.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,t.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,t.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TexConstant=MathJax._.input.tex.TexConstants.TexConstant}},e={};function o(a){var t=e[a];if(void 0!==t)return t.exports;var i=e[a]={exports:{}};return n[a](i,i.exports,o),i.exports}a=o(955),t=o(82),(0,a.r8)({_:{input:{tex:{gensymb:{GensymbConfiguration:t}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/html.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,e,n={738:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.HtmlConfiguration=void 0;var n=e(251),r=e(871),o=e(248);new r.CommandMap("html_macros",{href:"Href",class:"Class",style:"Style",cssId:"Id"},o.default),a.HtmlConfiguration=n.Configuration.create("html",{handler:{macro:["html_macros"]}})},248:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0});var n=e(748),r={Href:function(t,a){var e=t.GetArgument(a),r=o(t,a);n.default.setAttribute(r,"href",e),t.Push(r)},Class:function(t,a){var e=t.GetArgument(a),r=o(t,a),i=n.default.getAttribute(r,"class");i&&(e=i+" "+e),n.default.setAttribute(r,"class",e),t.Push(r)},Style:function(t,a){var e=t.GetArgument(a),r=o(t,a),i=n.default.getAttribute(r,"style");i&&(";"!==e.charAt(e.length-1)&&(e+=";"),e=i+" "+e),n.default.setAttribute(r,"style",e),t.Push(r)},Id:function(t,a){var e=t.GetArgument(a),r=o(t,a);n.default.setAttribute(r,"id",e),t.Push(r)}},o=function(t,a){var e=t.ParseArg(a);if(!n.default.isInferred(e))return e;var r=n.default.getChildren(e);if(1===r.length)return r[0];var o=t.create("node","mrow");return n.default.copyChildren(e,o),n.default.copyAttributes(e,o),o};a.default=r},955:function(t,a){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,a.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.Configuration=MathJax._.input.tex.Configuration.Configuration,a.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,a.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},748:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.default=MathJax._.input.tex.NodeUtil.default},871:function(t,a){Object.defineProperty(a,"__esModule",{value:!0}),a.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,a.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,a.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,a.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,a.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,a.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,a.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,a.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap}},r={};function o(t){var a=r[t];if(void 0!==a)return a.exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}t=o(955),a=o(738),e=o(248),(0,t.r8)({_:{input:{tex:{html:{HtmlConfiguration:a,HtmlMethods:e}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/noerrors.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var o,n,r={634:function(o,n,r){Object.defineProperty(n,"__esModule",{value:!0}),n.NoErrorsConfiguration=void 0;var t=r(251);n.NoErrorsConfiguration=t.Configuration.create("noerrors",{nodes:{error:function(o,n,r,t){var e=o.create("token","mtext",{},t.replace(/\n/g," "));return o.create("node","merror",[e],{"data-mjx-error":n,title:n})}}})},955:function(o,n){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,n.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(o,n){Object.defineProperty(n,"__esModule",{value:!0}),n.Configuration=MathJax._.input.tex.Configuration.Configuration,n.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,n.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration}},t={};function e(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}};return r[o](a,a.exports,e),a.exports}o=e(955),n=e(634),(0,o.r8)({_:{input:{tex:{noerrors:{NoErrorsConfiguration:n}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/noundefined.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var n,o,t={999:function(n,o,t){var e=this&&this.__values||function(n){var o="function"==typeof Symbol&&Symbol.iterator,t=o&&n[o],e=0;if(t)return t.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&e>=n.length&&(n=void 0),{value:n&&n[e++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(o,"__esModule",{value:!0}),o.NoUndefinedConfiguration=void 0;var r=t(251);o.NoUndefinedConfiguration=r.Configuration.create("noundefined",{fallback:{macro:function(n,o){var t,r,i=n.create("text","\\"+o),a=n.options.noundefined||{},u={};try{for(var f=e(["color","background","size"]),l=f.next();!l.done;l=f.next()){var c=l.value;a[c]&&(u["math"+c]=a[c])}}catch(n){t={error:n}}finally{try{l&&!l.done&&(r=f.return)&&r.call(f)}finally{if(t)throw t.error}}n.Push(n.create("node","mtext",[],u,i))}},options:{noundefined:{color:"red",background:"",size:""}},priority:3})},955:function(n,o){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,o.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(n,o){Object.defineProperty(o,"__esModule",{value:!0}),o.Configuration=MathJax._.input.tex.Configuration.Configuration,o.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,o.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n].call(i.exports,i,i.exports,r),i.exports}n=r(955),o=r(999),(0,n.r8)({_:{input:{tex:{noundefined:{NoUndefinedConfiguration:o}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/setoptions.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,e,a={596:function(t,e,a){var o=this&&this.__values||function(t){var e="function"==typeof Symbol&&Symbol.iterator,a=e&&t[e],o=0;if(a)return a.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(e,"__esModule",{value:!0}),e.SetOptionsConfiguration=e.SetOptionsUtil=void 0;var n=a(251),i=a(871),r=a(402),l=a(398),p=a(924),s=a(360),u=a(74);e.SetOptionsUtil={filterPackage:function(t,e){if("tex"!==e&&!n.ConfigurationHandler.get(e))throw new r.default("NotAPackage","Not a defined package: %1",e);var a=t.options.setoptions,o=a.allowOptions[e];if(void 0===o&&!a.allowPackageDefault||!1===o)throw new r.default("PackageNotSettable",'Options can\'t be set for package "%1"',e);return!0},filterOption:function(t,e,a){var o,n=t.options.setoptions,i=n.allowOptions[e]||{},l=i.hasOwnProperty(a)&&!u.isObject(i[a])?i[a]:null;if(!1===l||null===l&&!n.allowOptionsDefault)throw new r.default("OptionNotSettable",'Option "%1" is not allowed to be set',a);if(!(null===(o="tex"===e?t.options:t.options[e])||void 0===o?void 0:o.hasOwnProperty(a)))throw"tex"===e?new r.default("InvalidTexOption",'Invalid TeX option "%1"',a):new r.default("InvalidOptionKey",'Invalid option "%1" for package "%2"',a,e);return!0},filterValue:function(t,e,a,o){return o}};var f=new i.CommandMap("setoptions",{setOptions:"SetOptions"},{SetOptions:function(t,e){var a,n,i=t.GetBrackets(e)||"tex",r=l.default.keyvalOptions(t.GetArgument(e)),p=t.options.setoptions;if(p.filterPackage(t,i))try{for(var s=o(Object.keys(r)),u=s.next();!u.done;u=s.next()){var f=u.value;p.filterOption(t,i,f)&&(("tex"===i?t.options:t.options[i])[f]=p.filterValue(t,i,f,r[f]))}}catch(t){a={error:t}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(a)throw a.error}}}});e.SetOptionsConfiguration=n.Configuration.create("setoptions",{handler:{macro:["setoptions"]},config:function(t,e){var a=e.parseOptions.handlers.get("macro").lookup("require");a&&(f.add("Require",new p.Macro("Require",a._func)),f.add("require",new p.Macro("require",s.default.Macro,["\\Require{#2}\\setOptions[#2]{#1}",2,""])))},priority:3,options:{setoptions:{filterPackage:e.SetOptionsUtil.filterPackage,filterOption:e.SetOptionsUtil.filterOption,filterValue:e.SetOptionsUtil.filterValue,allowPackageDefault:!0,allowOptionsDefault:!0,allowOptions:u.expandable({tex:{FindTeX:!1,formatError:!1,package:!1,baseURL:!1,tags:!1,maxBuffer:!1,maxMaxros:!1,macros:!1,environments:!1},setoptions:!1,autoload:!1,require:!1,configmacros:!1,tagformat:!1})}}})},955:function(t,e){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,e.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},74:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.isObject=MathJax._.util.Options.isObject,e.APPEND=MathJax._.util.Options.APPEND,e.REMOVE=MathJax._.util.Options.REMOVE,e.OPTIONS=MathJax._.util.Options.OPTIONS,e.Expandable=MathJax._.util.Options.Expandable,e.expandable=MathJax._.util.Options.expandable,e.makeArray=MathJax._.util.Options.makeArray,e.keys=MathJax._.util.Options.keys,e.copy=MathJax._.util.Options.copy,e.insert=MathJax._.util.Options.insert,e.defaultOptions=MathJax._.util.Options.defaultOptions,e.userOptions=MathJax._.util.Options.userOptions,e.selectOptions=MathJax._.util.Options.selectOptions,e.selectOptionsFromKeys=MathJax._.util.Options.selectOptionsFromKeys,e.separateOptions=MathJax._.util.Options.separateOptions,e.lookup=MathJax._.util.Options.lookup},251:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Configuration=MathJax._.input.tex.Configuration.Configuration,e.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,e.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},398:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.ParseUtil.default},924:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Symbol=MathJax._.input.tex.Symbol.Symbol,e.Macro=MathJax._.input.tex.Symbol.Macro},871:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,e.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,e.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,e.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,e.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,e.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,e.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,e.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},402:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.TexError.default},360:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.base.BaseMethods.default}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var i=o[t]={exports:{}};return a[t].call(i.exports,i,i.exports,n),i.exports}t=n(955),e=n(596),(0,t.r8)({_:{input:{tex:{setoptions:{SetOptionsConfiguration:e}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/tagformat.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,o,n={941:function(t,o,n){var a,r=this&&this.__extends||(a=function(t,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,o){t.__proto__=o}||function(t,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])})(t,o)},function(t,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function n(){this.constructor=t}a(t,o),t.prototype=null===o?Object.create(o):(n.prototype=o.prototype,new n)});Object.defineProperty(o,"__esModule",{value:!0}),o.TagFormatConfiguration=o.tagformatConfig=void 0;var e=n(251),i=n(680),s=0;function u(t,o){var n=o.parseOptions.options.tags;"base"!==n&&t.tags.hasOwnProperty(n)&&i.TagsFactory.add(n,t.tags[n]);var a=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r(n,t),n.prototype.formatNumber=function(t){return o.parseOptions.options.tagformat.number(t)},n.prototype.formatTag=function(t){return o.parseOptions.options.tagformat.tag(t)},n.prototype.formatId=function(t){return o.parseOptions.options.tagformat.id(t)},n.prototype.formatUrl=function(t,n){return o.parseOptions.options.tagformat.url(t,n)},n}(i.TagsFactory.create(o.parseOptions.options.tags).constructor),e="configTags-"+ ++s;i.TagsFactory.add(e,a),o.parseOptions.options.tags=e}o.tagformatConfig=u,o.TagFormatConfiguration=e.Configuration.create("tagformat",{config:[u,10],options:{tagformat:{number:function(t){return t.toString()},tag:function(t){return"("+t+")"},id:function(t){return"mjx-eqn:"+t.replace(/\s/g,"_")},url:function(t,o){return o+"#"+encodeURIComponent(t)}}}})},955:function(t,o){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,o.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(t,o){Object.defineProperty(o,"__esModule",{value:!0}),o.Configuration=MathJax._.input.tex.Configuration.Configuration,o.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,o.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},680:function(t,o){Object.defineProperty(o,"__esModule",{value:!0}),o.Label=MathJax._.input.tex.Tags.Label,o.TagInfo=MathJax._.input.tex.Tags.TagInfo,o.AbstractTags=MathJax._.input.tex.Tags.AbstractTags,o.NoTags=MathJax._.input.tex.Tags.NoTags,o.AllTags=MathJax._.input.tex.Tags.AllTags,o.TagsFactory=MathJax._.input.tex.Tags.TagsFactory}},a={};function r(t){var o=a[t];if(void 0!==o)return o.exports;var e=a[t]={exports:{}};return n[t].call(e.exports,e,e.exports,r),e.exports}t=r(955),o=r(941),(0,t.r8)({_:{input:{tex:{tagformat:{TagFormatConfiguration:o}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/unicode.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,e,a={376:function(t,e,a){Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeConfiguration=e.UnicodeMethods=void 0;var n=a(251),o=a(402),i=a(871),r=a(398),u=a(748),l=a(992);e.UnicodeMethods={};var c={};e.UnicodeMethods.Unicode=function(t,e){var a=t.GetBrackets(e),n=null,i=null;a&&(a.replace(/ /g,"").match(/^(\d+(\.\d*)?|\.\d+),(\d+(\.\d*)?|\.\d+)$/)?(n=a.replace(/ /g,"").split(/,/),i=t.GetBrackets(e)):i=a);var p=r.default.trimSpaces(t.GetArgument(e)).replace(/^0x/,"x");if(!p.match(/^(x[0-9A-Fa-f]+|[0-9]+)$/))throw new o.default("BadUnicode","Argument to \\unicode must be a number");var M=parseInt(p.match(/^x/)?"0"+p:p);c[M]?i||(i=c[M][2]):c[M]=[800,200,i,M],n&&(c[M][0]=Math.floor(1e3*parseFloat(n[0])),c[M][1]=Math.floor(1e3*parseFloat(n[1])));var d=t.stack.env.font,s={};i?(c[M][2]=s.fontfamily=i.replace(/'/g,"'"),d&&(d.match(/bold/)&&(s.fontweight="bold"),d.match(/italic|-mathit/)&&(s.fontstyle="italic"))):d&&(s.mathvariant=d);var x=t.create("token","mtext",s,l.numeric(p));u.default.setProperty(x,"unicode",!0),t.Push(x)},new i.CommandMap("unicode",{unicode:"Unicode"},e.UnicodeMethods),e.UnicodeConfiguration=n.Configuration.create("unicode",{handler:{macro:["unicode"]}})},955:function(t,e){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,e.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},992:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.options=MathJax._.util.Entities.options,e.entities=MathJax._.util.Entities.entities,e.add=MathJax._.util.Entities.add,e.remove=MathJax._.util.Entities.remove,e.translate=MathJax._.util.Entities.translate,e.numeric=MathJax._.util.Entities.numeric},251:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.Configuration=MathJax._.input.tex.Configuration.Configuration,e.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,e.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},748:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.NodeUtil.default},398:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.ParseUtil.default},871:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,e.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,e.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,e.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,e.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,e.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,e.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,e.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},402:function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=MathJax._.input.tex.TexError.default}},n={};function o(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return a[t](i,i.exports,o),i.exports}t=o(955),e=o(376),(0,t.r8)({_:{input:{tex:{unicode:{UnicodeConfiguration:e}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/upgreek.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var a,t,p={927:function(a,t,p){Object.defineProperty(t,"__esModule",{value:!0}),t.UpgreekConfiguration=void 0;var e=p(251),n=p(871),o=p(108);new n.CharacterMap("upgreek",(function(a,t){var p=t.attributes||{};p.mathvariant=o.TexConstant.Variant.NORMAL;var e=a.create("token","mi",p,t.char);a.Push(e)}),{upalpha:"\u03b1",upbeta:"\u03b2",upgamma:"\u03b3",updelta:"\u03b4",upepsilon:"\u03f5",upzeta:"\u03b6",upeta:"\u03b7",uptheta:"\u03b8",upiota:"\u03b9",upkappa:"\u03ba",uplambda:"\u03bb",upmu:"\u03bc",upnu:"\u03bd",upxi:"\u03be",upomicron:"\u03bf",uppi:"\u03c0",uprho:"\u03c1",upsigma:"\u03c3",uptau:"\u03c4",upupsilon:"\u03c5",upphi:"\u03d5",upchi:"\u03c7",uppsi:"\u03c8",upomega:"\u03c9",upvarepsilon:"\u03b5",upvartheta:"\u03d1",upvarpi:"\u03d6",upvarrho:"\u03f1",upvarsigma:"\u03c2",upvarphi:"\u03c6",Upgamma:"\u0393",Updelta:"\u0394",Uptheta:"\u0398",Uplambda:"\u039b",Upxi:"\u039e",Uppi:"\u03a0",Upsigma:"\u03a3",Upupsilon:"\u03a5",Upphi:"\u03a6",Uppsi:"\u03a8",Upomega:"\u03a9"}),t.UpgreekConfiguration=e.Configuration.create("upgreek",{handler:{macro:["upgreek"]}})},955:function(a,t){MathJax._.components.global.isObject,MathJax._.components.global.combineConfig,MathJax._.components.global.combineDefaults,t.r8=MathJax._.components.global.combineWithMathJax,MathJax._.components.global.MathJax},251:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Configuration=MathJax._.input.tex.Configuration.Configuration,t.ConfigurationHandler=MathJax._.input.tex.Configuration.ConfigurationHandler,t.ParserConfiguration=MathJax._.input.tex.Configuration.ParserConfiguration},871:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractSymbolMap=MathJax._.input.tex.SymbolMap.AbstractSymbolMap,t.RegExpMap=MathJax._.input.tex.SymbolMap.RegExpMap,t.AbstractParseMap=MathJax._.input.tex.SymbolMap.AbstractParseMap,t.CharacterMap=MathJax._.input.tex.SymbolMap.CharacterMap,t.DelimiterMap=MathJax._.input.tex.SymbolMap.DelimiterMap,t.MacroMap=MathJax._.input.tex.SymbolMap.MacroMap,t.CommandMap=MathJax._.input.tex.SymbolMap.CommandMap,t.EnvironmentMap=MathJax._.input.tex.SymbolMap.EnvironmentMap},108:function(a,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TexConstant=MathJax._.input.tex.TexConstants.TexConstant}},e={};function n(a){var t=e[a];if(void 0!==t)return t.exports;var o=e[a]={exports:{}};return p[a](o,o.exports,n),o.exports}a=n(955),t=n(927),(0,a.r8)({_:{input:{tex:{upgreek:{UpgreekConfiguration:t}}}}})}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/input/tex/extensions/verb.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var t,a,e={768:function(t,a,e){Object.defineProperty(a,"__esModule",{value:!0}),a.VerbConfiguration=a.VerbMethods=void 0;var n=e(251),o=e(108),r=e(871),i=e(402);a.VerbMethods={},a.VerbMethods.Verb=function(t,a){var e=t.GetNext(),n=++t.i;if(""===e)throw new i.default("MissingArgFor","Missing argument for %1",a);for(;t.i=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var a,n,o=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(a=o.next()).done;)i.push(a.value)}catch(t){n={error:t}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return i};Object.defineProperty(e,"__esModule",{value:!0}),e.loadLatest=void 0;var n=new Map([["cdnjs.cloudflare.com",{api:"https://api.cdnjs.com/libraries/mathjax?fields=version",key:"version",base:"https://cdnjs.cloudflare.com/ajax/libs/mathjax/"}],["rawcdn.githack.com",{api:"https://api.github.com/repos/mathjax/mathjax/releases/latest",key:"tag_name",base:"https://rawcdn.githack.com/mathjax/MathJax/"}],["gitcdn.xyz",{api:"https://api.github.com/repos/mathjax/mathjax/releases/latest",key:"tag_name",base:"https://gitcdn.xyz/mathjax/MathJax/"}],["cdn.statically.io",{api:"https://api.github.com/repos/mathjax/mathjax/releases/latest",key:"tag_name",base:"https://cdn.statically.io/gh/mathjax/MathJax/"}],["unpkg.com",{api:"https://api.github.com/repos/mathjax/mathjax/releases/latest",key:"tag_name",base:"https://unpkg.com/mathjax@"}],["cdn.jsdelivr.net",{api:"https://api.github.com/repos/mathjax/mathjax/releases/latest",key:"tag_name",base:"https://cdn.jsdelivr.net/npm/mathjax@"}]]),o={api:"https://api.github.com/repos/mathjax/mathjax/releases",key:"tag_name"},i="mjx-latest-version",c=null;function s(t){console&&console.error&&console.error("MathJax(latest.js): "+t)}function l(t,e){void 0===e&&(e=null),t.parentNode.removeChild(t);var r=t.src,a=r.replace(/.*?\/latest\.js(\?|$)/,"");""===a&&(a="startup.js",r=r.replace(/\?$/,"")+"?"+a);var n=(r.match(/(\d+\.\d+\.\d+)(\/es\d+)?\/latest.js\?/)||["",""])[1],o=(r.match(/(\/es\d+)\/latest.js\?/)||["",""])[1]||"";return{tag:t,src:r,id:t.id,version:n,dir:o,file:a,cdn:e}}function u(t){var e,a;try{for(var o=r(n.keys()),i=o.next();!i.done;i=o.next()){var c=i.value,s=n.get(c),u=s.base,d=t.src;if(d&&d.substr(0,u.length)===u&&d.match(/\/latest\.js(\?|$)/))return l(t,s)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(a=o.return)&&a.call(o)}finally{if(e)throw e.error}}return null}function d(t,e){var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src=t,e&&(r.id=e);var a=document.head||document.getElementsByTagName("head")[0]||document.body;a?a.appendChild(r):s("Can't find the document element")}function h(){c?d(c.src.replace(/\/latest\.js\?/,"/"),c.id):s("Can't determine the URL for loading MathJax")}function f(t){c.version&&c.version!==t&&(c.file="latest.js?"+c.file),d(c.cdn.base+t+c.dir+"/"+c.file,c.id)}function p(t){return 3===parseInt(t.split(/\./)[0])&&!t.match(/-(beta|rc)/)&&(function(t){try{var e=t+" "+Date.now();localStorage.setItem(i,e)}catch(t){}}(t),f(t),!0)}function m(t,e,r){var a=function(){if(window.XMLHttpRequest)return new XMLHttpRequest;if(window.ActiveXObject){try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(t){}try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}return null}();a?(a.onreadystatechange=function(){4===a.readyState&&(200===a.status?!e(JSON.parse(a.responseText))&&r():(s("Problem acquiring MathJax version: status = "+a.status),r()))},a.open("GET",t.api,!0),a.send(null)):(s("Can't create XMLHttpRequest object"),r())}function y(){m(c.cdn,(function(t){return t instanceof Array&&(t=t[0]),p(t[c.cdn.key])||m(o,(function(t){var e,a;if(!(t instanceof Array))return!1;try{for(var n=r(t),i=n.next();!i.done;i=n.next())if(p(i.value[o.key]))return!0}catch(t){e={error:t}}finally{try{i&&!i.done&&(a=n.return)&&a.call(n)}finally{if(e)throw e.error}}return!1}),h),!0}),h)}e.loadLatest=function(){if((c=function(){var t,e;if(document.currentScript)return l(document.currentScript);var a=document.getElementById("MathJax-script");if(a&&"script"===a.nodeName.toLowerCase())return u(a);var n=document.getElementsByTagName("script");try{for(var o=r(Array.from(n)),i=o.next();!i.done;i=o.next()){var c=u(i.value);if(c)return c}}catch(e){t={error:e}}finally{try{i&&!i.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}return null}())&&c.cdn){var t=function(){try{var t=a(localStorage.getItem(i).split(/ /),2),e=t[0],r=t[1];if(r&&Date.now()-parseInt(r)<6048e5)return e}catch(t){}return null}();t?f(t):y()}else h()}}},e={};function r(a){var n=e[a];if(void 0!==n)return n.exports;var o=e[a]={exports:{}};return t[a].call(o.exports,o,o.exports,r),o.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var a in e)r.o(e,a)&&!r.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},(0,r(907).loadLatest)()}(); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax/sre/sre-node.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | var SRE = require("speech-rule-engine"); 4 | global.SRE = SRE; 5 | global.sre = Object.create(SRE); 6 | global.sre.Engine = { 7 | isReady: function () { 8 | return SRE.engineReady(); 9 | } 10 | }; 11 | //# sourceMappingURL=sre-node.js.map -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for MathJax. 4 | * 5 | * @author Hakim El Hattab 6 | */ 7 | export const MathJax2 = () => { 8 | 9 | // The reveal.js instance this plugin is attached to 10 | let deck; 11 | 12 | let defaultOptions = { 13 | messageStyle: 'none', 14 | tex2jax: { 15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ], 16 | skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] 17 | }, 18 | skipStartupTypeset: true 19 | }; 20 | 21 | function loadScript( url, callback ) { 22 | 23 | let head = document.querySelector( 'head' ); 24 | let script = document.createElement( 'script' ); 25 | script.type = 'text/javascript'; 26 | script.src = url; 27 | 28 | // Wrapper for callback to make sure it only fires once 29 | let finish = () => { 30 | if( typeof callback === 'function' ) { 31 | callback.call(); 32 | callback = null; 33 | } 34 | } 35 | 36 | script.onload = finish; 37 | 38 | // IE 39 | script.onreadystatechange = () => { 40 | if ( this.readyState === 'loaded' ) { 41 | finish(); 42 | } 43 | } 44 | 45 | // Normal browsers 46 | head.appendChild( script ); 47 | 48 | } 49 | 50 | return { 51 | id: 'mathjax2', 52 | 53 | init: function( reveal ) { 54 | 55 | deck = reveal; 56 | 57 | let revealOptions = deck.getConfig().mathjax2 || deck.getConfig().math || {}; 58 | 59 | let options = { ...defaultOptions, ...revealOptions }; 60 | let mathjax = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js'; 61 | let config = options.config || 'TeX-AMS_HTML-full'; 62 | let url = mathjax + '?config=' + config; 63 | 64 | options.tex2jax = { ...defaultOptions.tex2jax, ...revealOptions.tex2jax }; 65 | 66 | options.mathjax = options.config = null; 67 | 68 | loadScript( url, function() { 69 | 70 | MathJax.Hub.Config( options ); 71 | 72 | // Typeset followed by an immediate reveal.js layout since 73 | // the typesetting process could affect slide height 74 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, deck.getRevealElement() ] ); 75 | MathJax.Hub.Queue( deck.layout ); 76 | 77 | // Reprocess equations in slides when they turn visible 78 | deck.on( 'slidechanged', function( event ) { 79 | 80 | MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); 81 | 82 | } ); 83 | 84 | } ); 85 | 86 | } 87 | } 88 | 89 | }; 90 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/mathjax3.js: -------------------------------------------------------------------------------- 1 | /** 2 | * A plugin which enables rendering of math equations inside 3 | * of reveal.js slides. Essentially a thin wrapper for MathJax 3 4 | * 5 | * @author Hakim El Hattab 6 | * @author Gerhard Burger 7 | */ 8 | export const MathJax3 = () => { 9 | 10 | // The reveal.js instance this plugin is attached to 11 | let deck; 12 | 13 | let defaultOptions = { 14 | tex: { 15 | inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ] 16 | }, 17 | options: { 18 | skipHtmlTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] 19 | }, 20 | startup: { 21 | ready: () => { 22 | MathJax.startup.defaultReady(); 23 | MathJax.startup.promise.then(() => { 24 | Reveal.layout(); 25 | }); 26 | } 27 | } 28 | }; 29 | 30 | function loadScript( url, callback ) { 31 | 32 | let script = document.createElement( 'script' ); 33 | script.type = "text/javascript" 34 | script.id = "MathJax-script" 35 | script.src = url; 36 | script.async = true 37 | 38 | // Wrapper for callback to make sure it only fires once 39 | script.onload = () => { 40 | if (typeof callback === 'function') { 41 | callback.call(); 42 | callback = null; 43 | } 44 | }; 45 | 46 | document.head.appendChild( script ); 47 | 48 | } 49 | 50 | return { 51 | id: 'mathjax3', 52 | init: function(reveal) { 53 | 54 | deck = reveal; 55 | 56 | let revealOptions = deck.getConfig().mathjax3 || {}; 57 | let options = {...defaultOptions, ...revealOptions}; 58 | options.tex = {...defaultOptions.tex, ...revealOptions.tex} 59 | options.options = {...defaultOptions.options, ...revealOptions.options} 60 | options.startup = {...defaultOptions.startup, ...revealOptions.startup} 61 | 62 | let url = options.mathjax || 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'; 63 | options.mathjax = null; 64 | 65 | window.MathJax = options; 66 | 67 | loadScript( url, function() { 68 | // Reprocess equations in slides when they turn visible 69 | Reveal.addEventListener( 'slidechanged', function( event ) { 70 | MathJax.typeset(); 71 | } ); 72 | } ); 73 | 74 | } 75 | } 76 | 77 | }; 78 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/math/plugin.js: -------------------------------------------------------------------------------- 1 | import {KaTeX} from "./katex"; 2 | import {MathJax2} from "./mathjax2"; 3 | import {MathJax3} from "./mathjax3"; 4 | 5 | const defaultTypesetter = MathJax2; 6 | 7 | /*! 8 | * This plugin is a wrapper for the MathJax2, 9 | * MathJax3 and KaTeX typesetter plugins. 10 | */ 11 | export default Plugin = Object.assign( defaultTypesetter(), { 12 | KaTeX, 13 | MathJax2, 14 | MathJax3 15 | } ); -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/menu/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | ### Bug Reports 4 | When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested. 5 | 6 | ### Pull Requests 7 | - Should follow the coding style of the file you work in 8 | - Should be made towards the **dev branch** 9 | - Should be submitted from a feature/topic branch (not your master) 10 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/menu/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2020 Greg Denehy 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/menu/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal.js-menu", 3 | "version": "2.1.0", 4 | "homepage": "https://denehyg.github.io/reveal.js-menu", 5 | "authors": ["Greg Denehy"], 6 | "description": "A slideout menu for navigating reveal.js presentations", 7 | "keywords": ["reveal", "menu"], 8 | "license": "MIT, Copyright (C) 2020 Greg Denehy", 9 | "ignore": ["**/.*", "node_modules", "bower_components", "test", "tests"] 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/menu/gulpfile.js: -------------------------------------------------------------------------------- 1 | const pkg = require('./package.json'); 2 | 3 | const { rollup } = require('rollup'); 4 | const { terser } = require('rollup-plugin-terser'); 5 | const babel = require('@rollup/plugin-babel').default; 6 | const commonjs = require('@rollup/plugin-commonjs'); 7 | const resolve = require('@rollup/plugin-node-resolve').default; 8 | 9 | const gulp = require('gulp'); 10 | 11 | const banner = `/*! 12 | * reveal.js-menu ${pkg.version} 13 | * ${pkg.homepage} 14 | * MIT licensed 15 | * 16 | * Copyright (C) 2016 Greg Denehy 17 | */\n`; 18 | 19 | const babelConfig = { 20 | babelHelpers: 'bundled', 21 | ignore: ['node_modules'], 22 | compact: false, 23 | extensions: ['.js', '.html'], 24 | plugins: ['transform-html-import-to-string'], 25 | presets: [ 26 | [ 27 | '@babel/preset-env', 28 | { 29 | corejs: 3, 30 | useBuiltIns: 'usage', 31 | modules: false 32 | } 33 | ] 34 | ] 35 | }; 36 | 37 | // Our ES module bundle only targets newer browsers with 38 | // module support. Browsers are targeted explicitly instead 39 | // of using the "esmodule: true" target since that leads to 40 | // polyfilling older browsers and a larger bundle. 41 | const babelConfigESM = JSON.parse(JSON.stringify(babelConfig)); 42 | babelConfigESM.presets[0][1].targets = { 43 | browsers: [ 44 | 'last 2 Chrome versions', 45 | 'not Chrome < 60', 46 | 'last 2 Safari versions', 47 | 'not Safari < 10.1', 48 | 'last 2 iOS versions', 49 | 'not iOS < 10.3', 50 | 'last 2 Firefox versions', 51 | 'not Firefox < 60', 52 | 'last 2 Edge versions', 53 | 'not Edge < 16' 54 | ] 55 | }; 56 | 57 | let cache = {}; 58 | 59 | // Creates a UMD and ES module bundle for each plugin 60 | gulp.task('build', () => { 61 | return Promise.all( 62 | [ 63 | { 64 | name: 'RevealMenu', 65 | input: './plugin.js', 66 | output: './menu' 67 | } 68 | ].map(plugin => { 69 | return rollup({ 70 | cache: cache[plugin.input], 71 | input: plugin.input, 72 | plugins: [ 73 | resolve(), 74 | commonjs(), 75 | babel({ 76 | ...babelConfig, 77 | ignore: [/node_modules\/.*/] 78 | }), 79 | terser() 80 | ] 81 | }).then(bundle => { 82 | cache[plugin.input] = bundle.cache; 83 | bundle.write({ 84 | file: plugin.output + '.esm.js', 85 | name: plugin.name, 86 | format: 'es' 87 | }); 88 | 89 | bundle.write({ 90 | file: plugin.output + '.js', 91 | name: plugin.name, 92 | format: 'umd' 93 | }); 94 | }); 95 | }) 96 | ); 97 | }); 98 | 99 | gulp.task('default', gulp.series('build')); 100 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/menu/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reveal.js-menu", 3 | "version": "2.1.0", 4 | "description": "A slideout menu for navigating reveal.js presentations", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "build": "gulp" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/denehyg/reveal.js-menu.git" 12 | }, 13 | "keywords": [ 14 | "reveal", 15 | "menu" 16 | ], 17 | "author": "Greg Denehy", 18 | "license": "MIT, Copyright (C) 2020 Greg Denehy", 19 | "bugs": { 20 | "url": "https://github.com/denehyg/reveal.js-menu/issues" 21 | }, 22 | "homepage": "https://github.com/denehyg/reveal.js-menu#readme", 23 | "devDependencies": { 24 | "@babel/core": "^7.10.4", 25 | "@babel/preset-env": "^7.10.4", 26 | "@rollup/plugin-babel": "^5.0.4", 27 | "@rollup/plugin-commonjs": "^13.0.0", 28 | "@rollup/plugin-node-resolve": "^8.1.0", 29 | "babel-plugin-transform-html-import-to-string": "0.0.1", 30 | "core-js": "^3.6.5", 31 | "gulp": "^4.0.2", 32 | "rollup": "^2.21.0", 33 | "rollup-plugin-terser": "^6.1.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/mermaid/plugin.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * reveal.js Mermaid plugin 3 | */ 4 | 5 | import mermaid from "mermaid"; 6 | 7 | const Plugin = { 8 | id: "mermaid", 9 | 10 | init: function (reveal) { 11 | 12 | let { ...mermaidConfig } = reveal.getConfig().mermaid || {}; 13 | 14 | mermaid.mermaidAPI.initialize({ 15 | // The node size will be calculated incorrectly if set `startOnLoad: start`, 16 | // so we need to manually render. 17 | startOnLoad: false, 18 | ...mermaidConfig, 19 | }); 20 | 21 | const mermaidEls = reveal.getRevealElement().querySelectorAll(".mermaid"); 22 | 23 | Array.from(mermaidEls).forEach(function (el) { 24 | var insertSvg = function (svgCode, bindFunctions) { 25 | el.innerHTML = svgCode; 26 | }; 27 | 28 | var graphDefinition = el.textContent.trim(); 29 | 30 | try { 31 | mermaid.mermaidAPI.render( 32 | `mermaid-${Math.random().toString(36).substring(2)}`, 33 | graphDefinition, 34 | insertSvg 35 | ); 36 | } catch (error) { 37 | let errorStr = ""; 38 | if (error?.str) { 39 | // From mermaid 9.1.4, error.message does not exists anymore 40 | errorStr = error.str; 41 | } 42 | if (error?.message) { 43 | errorStr = error.message; 44 | } 45 | console.error(errorStr, { error, graphDefinition, el }); 46 | el.innerHTML = errorStr; 47 | } 48 | }); 49 | }, 50 | }; 51 | 52 | export default () => Plugin; 53 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.css: -------------------------------------------------------------------------------- 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;} -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/reveal-pointer/pointer.js: -------------------------------------------------------------------------------- 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}}}}(); 2 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/zoom/zoom.esm.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * reveal.js Zoom plugin 3 | */ 4 | 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();owindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-o)/i)*(14/e)),nwindow.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} 5 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/plugin/zoom/zoom.js: -------------------------------------------------------------------------------- 1 | !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"; 2 | /*! 3 | * reveal.js Zoom plugin 4 | */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();nwindow.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),owindow.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}})); 5 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/styles.css: -------------------------------------------------------------------------------- 1 | /* Styles */ 2 | 3 | .view-content.reveal-preview-view { 4 | padding: 0; 5 | overflow: hidden; 6 | } 7 | 8 | .view-content.reveal-preview-view>iframe, div.reveal-preview-view>iframe { 9 | border-style: none; 10 | width: 100%; 11 | height: 100%; 12 | } 13 | 14 | div.reveal-preview-view { 15 | aspect-ratio: 16/9; 16 | padding: 0; 17 | overflow: hidden; 18 | } 19 | 20 | .releaseNotes .modal-content{ 21 | padding-right: 5px; 22 | margin-right: -5px; 23 | user-select: text; 24 | } 25 | 26 | .releaseNotes .modal { 27 | max-height: 90%; 28 | width: auto; 29 | max-width: 70ch; 30 | } 31 | 32 | .releaseNotes p>a>img { 33 | width: 100% 34 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-slides/template/embed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{{title}}} 8 | 9 | 10 | 11 | 12 | 13 | {{#cssPaths}} 14 | 15 | {{/cssPaths}} 16 | 17 | 18 | 19 | 59 | 60 | 61 |
62 |
{{{slides}}}
63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 147 | 148 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-excalidraw-plugin/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "folder": "_🎨 Excalidraw", 3 | "embedUseExcalidrawFolder": true, 4 | "templateFilePath": "Excalidraw/Template.excalidraw", 5 | "scriptFolderPath": "Excalidraw/Scripts", 6 | "compress": false, 7 | "autosave": true, 8 | "autosaveInterval": 15000, 9 | "autosaveIntervalDesktop": 15000, 10 | "autosaveIntervalMobile": 10000, 11 | "drawingFilenamePrefix": "", 12 | "drawingEmbedPrefixWithFilename": true, 13 | "drawingFilnameEmbedPostfix": " ", 14 | "drawingFilenameDateTime": "YYYY-MM-DD", 15 | "useExcalidrawExtension": true, 16 | "displaySVGInPreview": true, 17 | "displayExportedImageIfAvailable": false, 18 | "previewMatchObsidianTheme": false, 19 | "width": "400", 20 | "isLeftHanded": false, 21 | "matchTheme": false, 22 | "matchThemeAlways": false, 23 | "matchThemeTrigger": false, 24 | "defaultMode": "normal", 25 | "defaultPenMode": "never", 26 | "zoomToFitOnOpen": true, 27 | "zoomToFitOnResize": true, 28 | "zoomToFitMaxLevel": 2, 29 | "linkPrefix": "📍", 30 | "urlPrefix": "🌐", 31 | "parseTODO": false, 32 | "todo": "☐", 33 | "done": "🗹", 34 | "hoverPreviewWithoutCTRL": false, 35 | "linkOpacity": 1, 36 | "openInAdjacentPane": false, 37 | "openInMainWorkspace": true, 38 | "showLinkBrackets": true, 39 | "allowCtrlClick": true, 40 | "forceWrap": false, 41 | "pageTransclusionCharLimit": 200, 42 | "wordWrappingDefault": 0, 43 | "removeTransclusionQuoteSigns": true, 44 | "iframelyAllowed": true, 45 | "pngExportScale": 1, 46 | "exportWithTheme": true, 47 | "exportWithBackground": true, 48 | "exportPaddingSVG": 10, 49 | "keepInSync": true, 50 | "autoexportSVG": true, 51 | "autoexportPNG": false, 52 | "autoExportLightAndDark": false, 53 | "autoexportExcalidraw": false, 54 | "embedType": "excalidraw", 55 | "embedWikiLink": true, 56 | "syncExcalidraw": false, 57 | "experimentalFileType": false, 58 | "experimentalFileTag": "✏️", 59 | "experimentalLivePreview": true, 60 | "experimentalEnableFourthFont": false, 61 | "experimantalFourthFont": "Virgil", 62 | "fieldSuggester": true, 63 | "compatibilityMode": false, 64 | "drawingOpenCount": 0, 65 | "library": "deprecated", 66 | "library2": { 67 | "type": "excalidrawlib", 68 | "version": 2, 69 | "source": "https://excalidraw.com", 70 | "libraryItems": [] 71 | }, 72 | "imageElementNotice": true, 73 | "mdSVGwidth": 500, 74 | "mdSVGmaxHeight": 800, 75 | "mdFont": "Virgil", 76 | "mdFontColor": "Black", 77 | "mdBorderColor": "Black", 78 | "mdCSS": "", 79 | "scriptEngineSettings": {}, 80 | "defaultTrayMode": false, 81 | "previousRelease": "1.8.1", 82 | "showReleaseNotes": true, 83 | "showNewVersionNotification": true, 84 | "mathjaxSourceURL": "https://cdn.jsdelivr.net/npm/mathjax@3.2.1/es5/tex-svg.js", 85 | "taskboneEnabled": false, 86 | "taskboneAPIkey": "" 87 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-excalidraw-plugin", 3 | "name": "Excalidraw", 4 | "version": "1.8.1", 5 | "minAppVersion": "0.16.0", 6 | "description": "An Obsidian plugin to edit and view Excalidraw drawings", 7 | "author": "Zsolt Viczian", 8 | "authorUrl": "https://zsolt.blog", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-image-toolkit/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-image-toolkit", 3 | "name": "Image Toolkit", 4 | "version": "1.3.1", 5 | "minAppVersion": "0.2.0", 6 | "description": "This plugin provides some image viewing toolkit.", 7 | "author": "sissilab", 8 | "authorUrl": "https://github.com/sissilab", 9 | "isDesktopOnly": true 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-reminder-plugin/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "scanned": true, 3 | "reminders": {}, 4 | "debug": false, 5 | "settings": { 6 | "reminderTime": "09:00", 7 | "laters": "In 30 minutes\nIn 1 hour\nIn 3 hours\nTomorrow\nNext week", 8 | "useSystemNotification": true, 9 | "autoCompleteTrigger": "🔔", 10 | "primaryReminderFormat": "ReminderPluginReminderFormat", 11 | "enableReminderPluginReminderFormat": true, 12 | "dateFormat": "YYYY-MM-DD", 13 | "dateTimeFormat": "YYYY-MM-DD HH:mm", 14 | "strictDateFormat": false, 15 | "linkDatesToDailyNotes": false, 16 | "enableTasksPluginReminderFormat": false, 17 | "useCustomEmojiForTasksPlugin": false, 18 | "removeTagsForTasksPlugin": false, 19 | "enableKanbanPluginReminderFormat": false, 20 | "editDetectionSec": 10, 21 | "reminderCheckIntervalSec": 5 22 | } 23 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-reminder-plugin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-reminder-plugin", 3 | "name": "Reminder", 4 | "version": "1.1.15", 5 | "minAppVersion": "1.0.3", 6 | "description": "Reminder plugin for Obsidian. This plugin adds feature to manage TODOs with reminder.", 7 | "author": "uphy", 8 | "authorUrl": "https://obsidian.md/about", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-reminder-plugin/styles.css: -------------------------------------------------------------------------------- 1 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/Calendar.esbuild-svelte-fake-css */ 2 | .reminder-calendar.svelte-18sic8s.svelte-18sic8s { 3 | padding: 0.5rem; 4 | } 5 | .reminder-calendar.svelte-18sic8s .year-month.svelte-18sic8s { 6 | font-size: 1rem; 7 | font-weight: bold; 8 | text-align: center; 9 | } 10 | .reminder-calendar.svelte-18sic8s .month-nav.svelte-18sic8s { 11 | color: var(--text-muted); 12 | margin-left: 1rem; 13 | margin-right: 1rem; 14 | cursor: pointer; 15 | } 16 | .reminder-calendar.svelte-18sic8s .month.svelte-18sic8s { 17 | color: var(--text-muted); 18 | } 19 | .reminder-calendar.svelte-18sic8s .year.svelte-18sic8s { 20 | color: var(--text-accent); 21 | } 22 | .reminder-calendar.svelte-18sic8s th.svelte-18sic8s { 23 | font-size: 0.7rem; 24 | color: var(--text-muted); 25 | } 26 | .reminder-calendar.svelte-18sic8s .calendar-date.svelte-18sic8s { 27 | text-align: center; 28 | min-width: 2rem; 29 | max-width: 2rem; 30 | } 31 | .reminder-calendar.svelte-18sic8s .calendar-date.svelte-18sic8s:hover { 32 | background-color: var(--background-secondary-alt); 33 | } 34 | .reminder-calendar.svelte-18sic8s .is-selected.svelte-18sic8s { 35 | background-color: var(--text-accent) !important; 36 | color: var(--text-normal) !important; 37 | } 38 | .reminder-calendar.svelte-18sic8s .other-month.svelte-18sic8s, 39 | .reminder-calendar.svelte-18sic8s .is-past.svelte-18sic8s, 40 | .reminder-calendar.svelte-18sic8s .is-holiday.svelte-18sic8s { 41 | color: var(--text-faint); 42 | } 43 | 44 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/ReminderListByDate.esbuild-svelte-fake-css */ 45 | .reminder-group.svelte-gzdxib { 46 | margin-bottom: 1rem; 47 | font-size: 13px; 48 | color: var(--text-muted); 49 | } 50 | .reminder-list-item.svelte-gzdxib { 51 | list-style: none; 52 | line-height: 14px; 53 | padding: 3px; 54 | overflow: hidden; 55 | white-space: nowrap; 56 | text-overflow: ellipsis; 57 | word-break: break-all; 58 | width: 100%; 59 | } 60 | .reminder-list-item.svelte-gzdxib:hover { 61 | color: var(--text-normal); 62 | background-color: var(--background-secondary-alt); 63 | } 64 | .reminder-time.svelte-gzdxib { 65 | font-size: 14px; 66 | font-family: monospace, serif; 67 | } 68 | .reminder-file.svelte-gzdxib { 69 | color: var(--text-faint); 70 | } 71 | .no-reminders.svelte-gzdxib { 72 | font-style: italic; 73 | } 74 | 75 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/DateTimeChooser.esbuild-svelte-fake-css */ 76 | .dtchooser.svelte-fjfxbq { 77 | background-color: var(--background-primary-alt); 78 | z-index: 2147483647; 79 | } 80 | .dtchooser-divider.svelte-fjfxbq { 81 | margin: 0.5rem; 82 | } 83 | .reminder-list-container.svelte-fjfxbq { 84 | padding: 0.5rem; 85 | max-width: 16rem; 86 | } 87 | 88 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/Icon.esbuild-svelte-fake-css */ 89 | .icon.svelte-1gcidq0 { 90 | vertical-align: middle; 91 | } 92 | 93 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/Reminder.esbuild-svelte-fake-css */ 94 | main.svelte-yfmg28 { 95 | padding: 1em; 96 | margin: 0 auto; 97 | } 98 | .reminder-actions.svelte-yfmg28 { 99 | margin-top: 1rem; 100 | display: flex; 101 | gap: 0.5rem; 102 | } 103 | .reminder-file.svelte-yfmg28 { 104 | color: var(--text-muted); 105 | cursor: pointer; 106 | } 107 | .reminder-file.svelte-yfmg28:hover { 108 | color: var(--text-normal); 109 | text-decoration: underline; 110 | } 111 | .later-select.svelte-yfmg28 { 112 | font-size: 14px; 113 | } 114 | 115 | /* fakecss:/home/runner/work/obsidian-reminder/obsidian-reminder/src/ui/components/ReminderList.esbuild-svelte-fake-css */ 116 | .group-name.svelte-2zqui4 { 117 | font-size: 14px; 118 | color: var(--text-muted); 119 | border-bottom: 1px solid var(--text-muted); 120 | margin-bottom: 0.5rem; 121 | } 122 | .group-name-overdue.svelte-2zqui4 { 123 | color: var(--text-accent); 124 | } 125 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-underline/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-underline", 3 | "name": "Underline", 4 | "description": "Add underline(`xxx`) with shortcut, and `
xxx
`, `[[#xxx]]`, `[[#^xxx]]`", 5 | "isDesktopOnly": false, 6 | "js": "main.js", 7 | "version": "1.2.1" 8 | } -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "useCache": false, 3 | "hideExcluded": true, 4 | "ignoreDiacritics": true, 5 | "indexedFileTypes": [], 6 | "PDFIndexing": false, 7 | "imagesIndexing": false, 8 | "showShortName": false, 9 | "ribbonIcon": true, 10 | "showExcerpt": true, 11 | "renderLineReturnInExcerpts": true, 12 | "showCreateButton": false, 13 | "hightlight": true, 14 | "showPreviousQueryResults": true, 15 | "simpleSearch": false, 16 | "weightBasename": 2, 17 | "weightH1": 1.5, 18 | "weightH2": 1.3, 19 | "weightH3": 1.1, 20 | "welcomeMessage": "1.10.1" 21 | } -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "omnisearch", 3 | "name": "Omnisearch", 4 | "version": "1.11.0", 5 | "minAppVersion": "1.0.0", 6 | "description": "A search engine that just works", 7 | "author": "Simon Cambier", 8 | "authorUrl": "https://github.com/scambier/obsidian-omnisearch", 9 | "fundingUrl": { 10 | "Github": "https://github.com/sponsors/scambier", 11 | "Ko-fi": "https://ko-fi.com/scambier" 12 | }, 13 | "isDesktopOnly": false 14 | } 15 | -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/styles.css: -------------------------------------------------------------------------------- 1 | .omnisearch-modal { 2 | } 3 | 4 | .omnisearch-result { 5 | white-space: normal; 6 | display: flex; 7 | flex-direction: column; 8 | } 9 | 10 | .omnisearch-result__title { 11 | } 12 | 13 | .omnisearch-result__counter { 14 | font-size: 0.7rem; 15 | } 16 | 17 | .omnisearch-result__body { 18 | white-space: normal; 19 | font-size: small; 20 | word-wrap: normal; 21 | 22 | overflow: hidden; 23 | display: -webkit-box; 24 | -webkit-line-clamp: 3; 25 | -webkit-box-orient: vertical; 26 | 27 | color: var(--text-muted); 28 | } 29 | 30 | .omnisearch-highlight { 31 | } 32 | 33 | .omnisearch-default-highlight { 34 | color: var(--text-normal); 35 | background-color: var(--text-highlight-bg); 36 | } 37 | 38 | .omnisearch-input-container { 39 | display: flex; 40 | flex-direction: row; 41 | gap: 5px; 42 | } 43 | 44 | @media only screen and (max-width: 600px) { 45 | .omnisearch-input-container { 46 | flex-direction: column; 47 | } 48 | } 49 | 50 | .omnisearch-input-field { 51 | position: relative; 52 | flex-grow: 1; 53 | } 54 | -------------------------------------------------------------------------------- /.obsidian/plugins/table-editor-obsidian/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "formatType": "normal", 3 | "showRibbonIcon": true, 4 | "bindEnter": true, 5 | "bindTab": true 6 | } -------------------------------------------------------------------------------- /.obsidian/plugins/table-editor-obsidian/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "table-editor-obsidian", 3 | "name": "Advanced Tables", 4 | "author": "Tony Grosinger", 5 | "authorUrl": "https://grosinger.net", 6 | "description": "Improved table navigation, formatting, manipulation, and formulas", 7 | "isDesktopOnly": false, 8 | "minAppVersion": "0.13.8", 9 | "version": "0.17.3", 10 | "js": "main.js" 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/table-editor-obsidian/styles.css: -------------------------------------------------------------------------------- 1 | .HyperMD-table-row span.cm-inline-code { 2 | font-size: 100%; 3 | } 4 | 5 | .widget-icon { 6 | width: 20px; 7 | height: 20px; 8 | fill: var(--text-muted); 9 | } 10 | 11 | .widget-icon:hover { 12 | fill: var(--text-normal); 13 | } 14 | 15 | .advanced-tables-csv-export textarea { 16 | height: 200px; 17 | width: 100%; 18 | } 19 | 20 | .advanced-tables-donation { 21 | width: 70%; 22 | margin: 0 auto; 23 | text-align: center; 24 | } 25 | 26 | .advanced-tables-donate-button { 27 | margin: 10px; 28 | } 29 | -------------------------------------------------------------------------------- /.obsidian/plugins/templater-obsidian/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "command_timeout": 5, 3 | "templates_folder": "_♻️ Templates", 4 | "templates_pairs": [ 5 | [ 6 | "", 7 | "" 8 | ] 9 | ], 10 | "trigger_on_file_creation": true, 11 | "auto_jump_to_cursor": false, 12 | "enable_system_commands": false, 13 | "shell_path": "", 14 | "user_scripts_folder": "", 15 | "enable_folder_templates": true, 16 | "folder_templates": [ 17 | { 18 | "folder": "00. 📓 Log", 19 | "template": "_♻️ Templates/00. 📓 Daily.md" 20 | } 21 | ], 22 | "syntax_highlighting": true, 23 | "enabled_templates_hotkeys": [ 24 | "_♻️ Templates/00. 📓 Daily.md" 25 | ], 26 | "startup_templates": [ 27 | "" 28 | ], 29 | "enable_ribbon_icon": true 30 | } -------------------------------------------------------------------------------- /.obsidian/plugins/templater-obsidian/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "templater-obsidian", 3 | "name": "Templater", 4 | "version": "1.14.3", 5 | "description": "Create and use templates", 6 | "minAppVersion": "0.11.13", 7 | "author": "SilentVoid", 8 | "authorUrl": "https://github.com/SilentVoid13", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/url-into-selection/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "url-into-selection", 3 | "name": "Paste URL into selection", 4 | "description": "Paste URL \"into\" selected text.", 5 | "isDesktopOnly": false, 6 | "js": "main.js", 7 | "version": "1.7.0" 8 | } -------------------------------------------------------------------------------- /.obsidian/scripts/config.js: -------------------------------------------------------------------------------- 1 | 2 | class Config { 3 | async readConfig(dv, configTag) { 4 | // read config from json code block in file with configTag 5 | const jsonCodeBlockRegex = /```json\n([\s\S]*?)\n```/; 6 | 7 | const files = dv.pages(configTag); 8 | if (files.length == 0) { 9 | throw new Error(`No file found: ${configTag}`); 10 | } 11 | else if (files.length > 1) { 12 | throw new Error(`Multiple files found: ${configTag}`); 13 | } 14 | 15 | const file = files[0].file; 16 | const content = await dv.io.load(file.path) 17 | const match = content.match(jsonCodeBlockRegex); 18 | 19 | if (match) { 20 | const jsonData = JSON.parse(match[1]); 21 | return jsonData; 22 | } else { 23 | throw new Error(`No JSON code block found in file: ${configTag}`); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /.obsidian/scripts/dailyNotes.js: -------------------------------------------------------------------------------- 1 | class DailyNotes { 2 | 3 | constructor() { 4 | this.notes = null; 5 | this.dates = null; 6 | } 7 | 8 | checkDuplicates() { 9 | const dateSet = new Set(); 10 | this.dates.forEach(date => { 11 | if (dateSet.has(date)) { 12 | throw new Error(`Duplicate date found: ${date}`); 13 | } 14 | dateSet.add(date); 15 | }); 16 | } 17 | 18 | getDates() { 19 | // get dates in same order as dailyNotes 20 | const dateRegex = /^\d{4}-\d{2}-\d{2}/; 21 | const dates = this.notes.map(note => { 22 | const fileName = note.file.name; 23 | const match = fileName.match(dateRegex); 24 | if (!match) { 25 | return null; 26 | } 27 | return match[0]; 28 | }).filter(date => date !== null); 29 | if (dates.length !== this.notes.length) { 30 | throw new Error('Some notes do not have a valid date'); 31 | } 32 | return dates 33 | } 34 | 35 | getNotes(dv, tag = '#log', sort = 'desc') { 36 | this.notes = dv.pages(tag).sort(p => p.file.name, sort); 37 | this.dates = this.getDates(); 38 | this.checkDuplicates(); 39 | } 40 | 41 | filter(startDate, endDate = null, untilToday = true) { 42 | // filter out notes that are not in the date range 43 | // if untilToday, then endDate = min(currentDate, endDate) 44 | 45 | endDate = endDate ? endDate : "2199-12-31"; 46 | 47 | const _startDate = new Date(startDate); 48 | const currentDate = new Date(); 49 | currentDate.setHours(23, 59, 59, 999); 50 | 51 | const _endDate = untilToday ? currentDate : new Date(endDate); 52 | 53 | const filteredNotes = this.notes.filter((note, index) => { 54 | const noteDate = new Date(this.dates[index]); 55 | return noteDate >= _startDate && noteDate <= _endDate; 56 | }); 57 | return filteredNotes; 58 | } 59 | 60 | filter(startDate, endDate = null, untilToday = true) { 61 | // filter out notes that are not in the date range 62 | // if untilToday, then endDate = min(currentDate, endDate) 63 | 64 | const _startDate = new Date(startDate); 65 | const currentDate = new Date(); 66 | currentDate.setHours(23, 59, 59, 999); 67 | 68 | let _endDate; 69 | if (endDate) { 70 | const parsedEndDate = new Date(endDate); 71 | _endDate = untilToday ? new Date(Math.min(currentDate, parsedEndDate)) : parsedEndDate; 72 | } else { 73 | _endDate = untilToday ? currentDate : new Date("2199-12-31"); 74 | } 75 | 76 | const filteredNotes = this.notes.filter((note, index) => { 77 | const noteDate = new Date(this.dates[index]); 78 | return noteDate >= _startDate && noteDate <= _endDate; 79 | }); 80 | return filteredNotes; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /.obsidian/scripts/structure.py: -------------------------------------------------------------------------------- 1 | import os 2 | from typing import Tuple 3 | from datetime import datetime, timedelta 4 | 5 | BASE_FOLDER = "00. 📓 Log" 6 | DAILY_FOLDER = "🗒 Daily" 7 | YEAR_FOLDER_EMOJI = "🗓" 8 | 9 | MONTH_NAME = { 10 | 1: "January", 11 | 2: "February", 12 | 3: "March", 13 | 4: "April", 14 | 5: "May", 15 | 6: "June", 16 | 7: "July", 17 | 8: "August", 18 | 9: "September", 19 | 10: "October", 20 | 11: "November", 21 | 12: "December", 22 | } 23 | 24 | 25 | def is_daily_note(fname: str): 26 | return fname.startswith("20") 27 | 28 | 29 | def split_date(date: str) -> Tuple[int, int, int]: 30 | year, month, day = date.split("-") 31 | return int(year), int(month), int(day) 32 | 33 | 34 | def get_note_date(note_name: str) -> str: 35 | date = note_name.split(",")[0] 36 | return date 37 | 38 | 39 | def get_new_daily_note_folder( 40 | base_folder: str, 41 | year_folder_emoji: str, 42 | year: int, 43 | month: int, 44 | ) -> str: 45 | base_year = os.path.join(base_folder, f"{year_folder_emoji} {year}") 46 | new_folder = os.path.join(base_year, MONTH_NAME[month]) 47 | return new_folder 48 | 49 | 50 | def move_daily_note(note_name: str, folder_from: str, folder_to: str) -> bool: 51 | os.makedirs(folder_to, exist_ok=True) 52 | print(folder_from, folder_to) 53 | file_path = os.path.join(folder_from, note_name) 54 | new_file_path = os.path.join(folder_to, note_name) 55 | if os.path.exists(new_file_path): 56 | print(f"WARNING: {new_file_path} already exists, skipping...") 57 | return False 58 | os.rename(file_path, new_file_path) 59 | return True 60 | 61 | 62 | def get_difference_in_dates(date1: str, date2: str) -> int: 63 | d1_date = datetime.strptime(date1, "%Y-%m-%d") 64 | d2_date = datetime.strptime(date2, "%Y-%m-%d") 65 | return (d1_date - d2_date).days 66 | 67 | 68 | def before_today(date: str) -> bool: 69 | date_today = datetime.today().strftime("%Y-%m-%d") 70 | return get_difference_in_dates(date_today, date) > 0 71 | 72 | 73 | def structure_daily_notes( 74 | base_folder: str, 75 | daily_folder: str, 76 | year_folder_emoji: str, 77 | ) -> None: 78 | 79 | notes, moved = 0, 0 80 | daily_notes_folder = os.path.join(base_folder, daily_folder) 81 | for daily_note in os.listdir(daily_notes_folder): 82 | if not is_daily_note(daily_note): 83 | continue 84 | notes += 1 85 | 86 | date = get_note_date(daily_note) 87 | if not before_today(date): 88 | continue 89 | 90 | year, month, _ = split_date(date) 91 | new_daily_notes_folder = get_new_daily_note_folder( 92 | base_folder, year_folder_emoji, year, month 93 | ) 94 | moved += move_daily_note(daily_note, daily_notes_folder, new_daily_notes_folder) 95 | 96 | print(f"Found {notes} daily notes, " + f"moved {moved}") 97 | 98 | 99 | if __name__ == "__main__": 100 | structure_daily_notes( 101 | base_folder=BASE_FOLDER, 102 | daily_folder=DAILY_FOLDER, 103 | year_folder_emoji=YEAR_FOLDER_EMOJI, 104 | ) 105 | -------------------------------------------------------------------------------- /.obsidian/templates.json: -------------------------------------------------------------------------------- 1 | { 2 | "folder": "_♻️ Templates" 3 | } -------------------------------------------------------------------------------- /.obsidian/themes/Things/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Things", 3 | "version": "2.1.6", 4 | "minAppVersion": "1.0.0", 5 | "author": "@colineckert", 6 | "authorUrl": "https://twitter.com/colineckert" 7 | } 8 | -------------------------------------------------------------------------------- /00. 📓 Log/🌈 Lessons.md: -------------------------------------------------------------------------------- 1 | # 🌈 Lessons 2 | 3 | --- 4 | 5 | Tags: #collection 6 | 7 | --- 8 | 9 | ```dataview 10 | task 11 | where contains(string(text), "🌈") 12 | group by split(split(string(section), ">")[1], "]")[0] 13 | sort file.path 14 | ``` 15 | -------------------------------------------------------------------------------- /00. 📓 Log/🏃 Meeting actions.md: -------------------------------------------------------------------------------- 1 | # 🏃 Meeting actions 2 | 3 | --- 4 | 5 | Tags: #meeting #collection 6 | 7 | --- 8 | 9 | ```dataview 10 | task 11 | from #meeting 12 | where !completed 13 | and contains(string(section), "Actions") 14 | group by join(split(split(path, "\.")[1], "/"), " / ") 15 | ``` 16 | 17 | 18 | -------------------------------------------------------------------------------- /00. 📓 Log/📈 Habits.config.md: -------------------------------------------------------------------------------- 1 | #config/habits 2 | 3 | Configures your habit tracker, which you can find in your daily notes, or in [[📈 Habits]]. 4 | 5 | You can select more columns to be shown in the table, e.g.: 6 | `"daysMissed", "daysToGoal", "totalComplete"`. 7 | 8 | See `/.obsidian/scripts` to see how it was implemented, and which other columns are available. 9 | 10 | ```json 11 | { 12 | "tableConfig": { 13 | "sortCol": "completionStreak", 14 | "content": { 15 | "Habit": "header", 16 | "Streak": "streak", 17 | "Best": "bestStreak", 18 | "Goal": "streakGoal", 19 | "Allow": "allowMissing", 20 | "% Streak": "completionStreak", 21 | "% Best": "completionBest", 22 | "Tag": "tag" 23 | } 24 | }, 25 | "habitsConfig": { 26 | "🙏 Work-life": { 27 | "description": "When work cuts into personal time", 28 | "keywords": ["overwerk", "overwork", "work-life"], 29 | "streakGoal": 7, 30 | "allowMissing": 0, 31 | "isAntiHabit": true, 32 | "start": "2023-07-27", 33 | "show": true 34 | }, 35 | "📚 Reading": { 36 | "keywords": ["read", "lezen"], 37 | "streakGoal": 7, 38 | "allowMissing": 1, 39 | "isAntiHabit": false, 40 | "start": "2023-07-24", 41 | "show": true 42 | }, 43 | "👫 Quality time": { 44 | "keywords": ["quality", "vriend"], 45 | "streakGoal": 7, 46 | "allowMissing": 6, 47 | "isAntiHabit": false, 48 | "start": "2023-07-24", 49 | "show": true 50 | }, 51 | "👨‍🍳 Good food": { 52 | "description": "Not lazy like ordered food or frozen pizza", 53 | "keywords": ["lazy food", "order", "bestel", "pizza"], 54 | "streakGoal": 7, 55 | "allowMissing": 0, 56 | "isAntiHabit": true, 57 | "start": "2023-07-24", 58 | "show": true 59 | }, 60 | "🏋️‍♂️ Exercise": { 61 | "keywords": ["exercis", "sport", "oefening"], 62 | "streakGoal": 7, 63 | "allowMissing": 2, 64 | "isAntiHabit": false, 65 | "start": "2023-07-24", 66 | "show": true 67 | }, 68 | "🌳 Walking": { 69 | "keywords": ["walk", "wandel"], 70 | "streakGoal": 7, 71 | "allowMissing": 1, 72 | "isAntiHabit": false, 73 | "start": "2023-07-24", 74 | "show": true 75 | }, 76 | "💻 Hacking": { 77 | "keywords": ["hack"], 78 | "streakGoal": 7, 79 | "allowMissing": 2, 80 | "isAntiHabit": false, 81 | "start": "2023-07-24", 82 | "show": true 83 | }, 84 | "🏠 Cleaning": { 85 | "keywords": ["clean", "opruim", "opgeruim", "schoon"], 86 | "streakGoal": 7, 87 | "allowMissing": 3, 88 | "isAntiHabit": false, 89 | "start": "2023-07-24", 90 | "show": true 91 | }, 92 | "📝 Writing": { 93 | "keywords": ["writ", "schrij"], 94 | "streakGoal": 7, 95 | "allowMissing": 1, 96 | "isAntiHabit": false, 97 | "start": "2023-07-24", 98 | "show": true 99 | }, 100 | "🎸 Music": { 101 | "keywords": ["music", "muziek", "gitaar", "piano", "guitar"], 102 | "streakGoal": 7, 103 | "allowMissing": 2, 104 | "isAntiHabit": false, 105 | "start": "2023-07-24", 106 | "show": true 107 | }, 108 | "😴 Good sleep": { 109 | "description": "Note down when you had too little sleep", 110 | "keywords": ["slaap", "sleep", "geslapen", "slept"], 111 | "streakGoal": 7, 112 | "allowMissing": 0, 113 | "isAntiHabit": true, 114 | "start": "2023-07-26", 115 | "show": true 116 | }, 117 | "📺 No shows": { 118 | "keywords": ["show", "serie", "dumpert"], 119 | "streakGoal": 7, 120 | "allowMissing": 0, 121 | "isAntiHabit": true, 122 | "start": "2023-07-24", 123 | "show": true 124 | }, 125 | "💬 Language": { 126 | "keywords": ["taal", "language", "german", "duits", "duolingo"], 127 | "streakGoal": 7, 128 | "allowMissing": 1, 129 | "isAntiHabit": false, 130 | "start": "2023-07-27", 131 | "show": true 132 | } 133 | } 134 | } 135 | ``` 136 | -------------------------------------------------------------------------------- /00. 📓 Log/📈 Habits.md: -------------------------------------------------------------------------------- 1 | # 📈 Habits 2 | 3 | --- 4 | 5 | Tags: #collection #development 6 | Links: [[📈 Habits.config]] 7 | 8 | --- 9 | 10 | ```dataviewjs 11 | const { Config } = customJS 12 | const { DailyNotes } = customJS 13 | const { HabitTracker } = customJS 14 | 15 | const config = await Config.readConfig(dv, "#config/habits") 16 | 17 | DailyNotes.getNotes(dv, '#log') 18 | 19 | HabitTracker.init(config.habitsConfig) 20 | HabitTracker.getStats(DailyNotes) 21 | HabitTracker.createTable(dv, config.tableConfig) 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /00. 📓 Log/📖 Backlog.md: -------------------------------------------------------------------------------- 1 | # 📖 Backlog 2 | 3 | --- 4 | 5 | Tags: #collection 6 | URI: `obsidian://open?vault=Obsidian&file=00.%20📓%20Log%2F📖%20Backlog` 7 | 8 | --- 9 | 10 | ## 👥 Open actions from meetings 11 | 12 | ```dataview 13 | task 14 | from #meeting 15 | where !completed 16 | and contains(string(section), "Actions") 17 | group by join(split(split(path, "\.")[1], "/"), " / ") 18 | ``` 19 | --- 20 | 21 | ## ⏱ Short term todos 22 | 23 | ```dataview 24 | task 25 | from #todo/ongoing 26 | where !completed 27 | and contains(path, "Short term") 28 | group by split(split(string(section), ">")[1], "]")[0] 29 | ``` 30 | --- 31 | 32 | ## ✨ Ongoing todos 33 | 34 | ```dataview 35 | list 36 | from #todo/ongoing 37 | ``` 38 | --- 39 | 40 | ## 🧩 Projects 41 | 42 | ### 📚 Todo 43 | ```dataview 44 | list 45 | from #todo/todo 46 | ``` 47 | ### ✍ Doing 48 | ```dataview 49 | list 50 | from #todo/doing 51 | ``` 52 | 53 | --- 54 | 55 | ## 🚀 Goals 56 | 57 | ```dataviewjs 58 | 59 | for (let path_ of dv.pagePaths("#goal").sort()) { 60 | let result = await dv.tryQuery("" + 61 | "task " + 62 | 'where (path = "' + path_ + '") ' + 63 | "and ( " + 64 | '(!completed and !contains(text, "🚩2") and !contains(text, "🎯2")) ' + 65 | 'or (completed and (contains(text, "🚩<") or contains(text, "🎯<"))) ' + 66 | ") " + 67 | "sort section ASC " + 68 | "limit 1 " 69 | ) 70 | dv.taskList(result.values) 71 | } 72 | ``` 73 | 74 | 75 | -------------------------------------------------------------------------------- /00. 📓 Log/🗒 Daily/2023-07-29, Sat 29 Jul.md: -------------------------------------------------------------------------------- 1 | # Saturday, 29 July 2 | 3 | --- 4 | 5 | Links: [[📖 Backlog]], [[_⏱ Short term|⏱ Short term]], [[_📆 Long term|📆 Long term]], [[🌈 Lessons]], [[🚩 Milestones]], [[📈 Habits]] 6 | Tags: #log 7 | Date: 2023-07-29 8 | Week: 30 9 | 10 | Prev: [[2023-07-28, Fri 28 Jul|Yesterday]] 11 | Today: Saturday 12 | Next: [[2023-07-30, Sun 30 Jul|Tomorrow]] 13 | 14 | Next workday: [[2023-07-31, Mon 31 Jul|Monday]] 15 | 16 | This week: [[2023-07-24, Mon 24 Jul|Monday]], [[2023-07-25, Tue 25 Jul|Tuesday]], [[2023-07-26, Wed 26 Jul|Wednesday]], [[2023-07-27, Thu 27 Jul|Thursday]], [[2023-07-28, Fri 28 Jul|Friday]] _ [[2023-07-29, Sat 29 Jul|Saturday]], [[2023-07-30, Sun 30 Jul|Sunday]] 17 | 18 | --- 19 | ## 🏡 Personal 20 | 21 | - [ ] Get a haircut %% This is a task %% 22 | 23 | - [ ] Read a book 📈 %% Here we journal a good habit* %% 24 | - [ ] Order pizza 📉 %% Here we journal an anti habit %% 25 | 26 | %% * According to our own definition in 📈 Habits.config %% 27 | 28 | - [ ] Reading a book while eating pizza can be quite relaxing 🌈 %% A lesson %% 29 | 30 | - Today was a good day %% Just a random note %% 31 | 32 | --- 33 | ## 🗒 Open 34 | 35 | ```dataview 36 | task 37 | from #log 38 | where !completed 39 | and (file.day < date(today)) 40 | and !contains(string(text), "🌈") 41 | and !contains(string(text), "🚩") 42 | and !contains(string(text), "📈") 43 | and !contains(string(text), "📉") 44 | group by split(split(string(section), ">")[1], "]")[0] 45 | ``` 46 | --- 47 | ## ⏱ Due 48 | 49 | ```dataview 50 | task 51 | from !#goal 52 | where (due = date(2023-07-30)) 53 | or (due = date(2023-07-29)) 54 | or (scheduled and !due and (scheduled <= date(2023-07-29))) 55 | or (scheduled and due and (scheduled <= date(2023-07-29)) and (due >= date(2023-07-29))) 56 | and !completed 57 | ``` 58 | 59 | ## ⏰ Late 60 | 61 | ```dataview 62 | task 63 | where due and (due < date(2023-07-29)) 64 | and ((!contains(text, "🚩") and !completed) 65 | or (contains(text, "🚩") and !contains(text, "🚩2"))) 66 | ``` 67 | 68 | --- 69 | ## 🎉 Birthdays 70 | 71 | ```dataview 72 | task 73 | from #person 74 | where contains(text, "🎉") 75 | and contains(text, "07-29") 76 | ``` 77 | 78 | ## 🌍 Events 79 | 80 | ```run-python 81 | news_headlines("2023-07-29", 5) 82 | ``` 83 | 84 | ```run-python 85 | weather_report("2023-07-29") 86 | ``` 87 | 88 | ## 🌈 Lesson 89 | 90 | ```dataviewjs 91 | function mulberry32(a) { 92 | return function() { 93 | var t = a += 0x6D2B79F5; 94 | t = Math.imul(t ^ t >>> 15, t | 1); 95 | t ^= t + Math.imul(t ^ t >>> 7, t | 61); 96 | return ((t ^ t >>> 14) >>> 0) / 4294967296; 97 | } 98 | } 99 | 100 | let year = 2023 101 | let month = 7 102 | let day = 29 103 | let rnd = mulberry32(year*10000 + month*100 + day) 104 | 105 | let result = await dv.tryQuery("" + 106 | "task " + 107 | "from #log " + 108 | 'where contains(string(text), "🌈") ' 109 | ) 110 | let selected = Math.floor(rnd() * result.values.length) 111 | let lesson = Array.from([result.values[selected]]) 112 | dv.taskList(lesson, false) 113 | ``` 114 | 115 | ## 📈 Habits 116 | ```dataviewjs 117 | const { Config } = customJS 118 | const { DailyNotes } = customJS 119 | const { HabitTracker } = customJS 120 | 121 | const config = await Config.readConfig(dv, "#config/habits") 122 | 123 | DailyNotes.getNotes(dv, '#log') 124 | 125 | HabitTracker.init(config.habitsConfig) 126 | HabitTracker.getStats(DailyNotes, "2023-07-29") 127 | HabitTracker.createTable(dv, config.tableConfig) 128 | ``` 129 | -------------------------------------------------------------------------------- /00. 📓 Log/🗒 Daily/2023-07-31, Mon 31 Jul.md: -------------------------------------------------------------------------------- 1 | # Monday, 31 July 2 | 3 | --- 4 | 5 | Links: [[📖 Backlog]], [[_⏱ Short term|⏱ Short term]], [[_📆 Long term|📆 Long term]], [[🌈 Lessons]], [[🚩 Milestones]], [[🏋️ Fysio schema|🏋️ Sport]], [[📈 Habits]] 6 | Tags: #log 7 | Date: 2023-07-31 8 | Week: 31 9 | 10 | Prev: [[2023-07-30, Sun 30 Jul|Yesterday]] 11 | Today: Monday 12 | Next: [[2023-08-01, Tue 1 Aug|Tomorrow]] 13 | 14 | Prev workday: [[2023-07-28, Fri 28 Jul|Friday]] 15 | 16 | This week: [[2023-07-31, Mon 31 Jul|Monday]], [[2023-08-01, Tue 1 Aug|Tuesday]], [[2023-08-02, Wed 2 Aug|Wednesday]], [[2023-08-03, Thu 3 Aug|Thursday]], [[2023-08-04, Fri 4 Aug|Friday]] _ [[2023-08-05, Sat 5 Aug|Saturday]], [[2023-08-06, Sun 6 Aug|Sunday]] 17 | 18 | --- 19 | ## 👥 Meetings 20 | 21 | ```dataview 22 | list 23 | from #meeting | #training/given | #workshop/given 24 | where split(file.name, " ")[0] = "2023-07-31" 25 | ``` 26 | 27 | --- 28 | ## 🏤 Work2 29 | 30 | 31 | 32 | ## 🧑‍💻 Work1 33 | 34 | 35 | 36 | ## 🏡 Personal 37 | 38 | 39 | 40 | --- 41 | ## 🗒 Open 42 | 43 | ```dataview 44 | task 45 | from #log 46 | where !completed 47 | and (file.day < date(today)) 48 | and !contains(string(text), "🌈") 49 | and !contains(string(text), "🚩") 50 | and !contains(string(text), "📈") 51 | and !contains(string(text), "📉") 52 | group by split(split(string(section), ">")[1], "]")[0] 53 | ``` 54 | --- 55 | ## ⏱ Due 56 | 57 | ```dataview 58 | task 59 | from !#goal 60 | where (due = date(2023-08-01)) 61 | or (due = date(2023-07-31)) 62 | or (scheduled and !due and (scheduled <= date(2023-07-31))) 63 | or (scheduled and due and (scheduled <= date(2023-07-31)) and (due >= date(2023-07-31))) 64 | and !completed 65 | ``` 66 | 67 | ## ⏰ Late 68 | 69 | ```dataview 70 | task 71 | where due and (due < date(2023-07-31)) 72 | and ((!contains(text, "🚩") and !completed) 73 | or (contains(text, "🚩") and !contains(text, "🚩2"))) 74 | ``` 75 | 76 | --- 77 | ## 🎉 Birthdays 78 | 79 | ```dataview 80 | task 81 | from #person 82 | where contains(text, "🎉") 83 | and contains(text, "07-31") 84 | ``` 85 | 86 | ## 🌍 Events 87 | 88 | ```run-python 89 | news_headlines("2023-07-31", 5) 90 | ``` 91 | 92 | ```run-python 93 | weather_report("2023-07-31") 94 | ``` 95 | 96 | ## 🌈 Lesson 97 | 98 | ```dataviewjs 99 | function mulberry32(a) { 100 | return function() { 101 | var t = a += 0x6D2B79F5; 102 | t = Math.imul(t ^ t >>> 15, t | 1); 103 | t ^= t + Math.imul(t ^ t >>> 7, t | 61); 104 | return ((t ^ t >>> 14) >>> 0) / 4294967296; 105 | } 106 | } 107 | 108 | let year = 2023 109 | let month = 7 110 | let day = 31 111 | let rnd = mulberry32(year*10000 + month*100 + day) 112 | 113 | let result = await dv.tryQuery("" + 114 | "task " + 115 | "from #log " + 116 | 'where contains(string(text), "🌈") ' 117 | ) 118 | let selected = Math.floor(rnd() * result.values.length) 119 | let lesson = Array.from([result.values[selected]]) 120 | dv.taskList(lesson, false) 121 | ``` 122 | 123 | ## 📈 Habits 124 | ```dataviewjs 125 | const { Config } = customJS 126 | const { DailyNotes } = customJS 127 | const { HabitTracker } = customJS 128 | 129 | const config = await Config.readConfig(dv, "#config/habits") 130 | 131 | DailyNotes.getNotes(dv, '#log') 132 | 133 | HabitTracker.init(config.habitsConfig) 134 | HabitTracker.getStats(DailyNotes, "2023-07-31") 135 | HabitTracker.createTable(dv, config.tableConfig) 136 | ``` 137 | -------------------------------------------------------------------------------- /00. 📓 Log/🚩 Milestones.md: -------------------------------------------------------------------------------- 1 | # 🚩 Milestones 2 | 3 | --- 4 | 5 | Tags: #collection 6 | 7 | --- 8 | 9 | ```dataview 10 | task 11 | from #log 12 | where contains(string(text), "🚩") 13 | sort file.name DESC 14 | group by split(split(string(section), ">")[1], "]")[0] 15 | ``` 16 | 17 | ## 🚀 Goals 18 | 19 | ```dataview 20 | task 21 | from #goal 22 | where contains(string(text), "🚩2") 23 | group by file.name 24 | ``` 25 | 26 | 27 | -------------------------------------------------------------------------------- /01. ⏱ Todo/_⏱ Short term.md: -------------------------------------------------------------------------------- 1 | # ⏱ Short term 2 | 3 | --- 4 | 5 | Links: [[📖 Backlog]], [[_📆 Long term|📆 Long term]] 6 | Status: #todo/ongoing 7 | 8 | --- 9 | 10 | ## 🏤 Work2 11 | 12 | - [ ] Do this after that one date, but definitely before 2024 ⏳2023-07-29 🗓️2024-01-01 13 | 14 | ## 🧑‍💻 Work1 15 | 16 | - [ ] Sign up for that event 🗓2023-08-15 17 | 18 | ## 🏡 Personal 19 | 20 | - [ ] Do something nice -------------------------------------------------------------------------------- /01. ⏱ Todo/_📆 Long term.md: -------------------------------------------------------------------------------- 1 | # 📆 Long term 2 | 3 | --- 4 | 5 | Links: [[📖 Backlog]], [[_⏱ Short term|⏱ Short term]] 6 | Status: #todo/ongoing 7 | 8 | --- 9 | 10 | ## 🏤 Work2 11 | 12 | 13 | 14 | ## 🧑‍💻 Work1 15 | 16 | - [ ] Structure my email folders 17 | 18 | ## 🏡 Personal 19 | 20 | - [ ] Understand Obsidian 21 | -------------------------------------------------------------------------------- /01. ⏱ Todo/🎵 Music.md: -------------------------------------------------------------------------------- 1 | # 🎵 Music 2 | 3 | --- 4 | 5 | Status: #todo/ongoing 6 | 7 | --- 8 | 9 | - [ ] Listen to that classical piece 10 | - [ ] Practice Jazz chords on piano -------------------------------------------------------------------------------- /01. ⏱ Todo/📚 Books.md: -------------------------------------------------------------------------------- 1 | # 📚 Books 2 | 3 | --- 4 | 5 | Status: #todo/ongoing 6 | 7 | --- 8 | 9 | - [ ] Donald Duck pocket book 10 | 11 | -------------------------------------------------------------------------------- /01. ⏱ Todo/📱 Apps.md: -------------------------------------------------------------------------------- 1 | # 📱 Apps 2 | 3 | --- 4 | 5 | Status: #todo/ongoing 6 | 7 | --- 8 | 9 | - [ ] Install app 10 | - [ ] Create app 11 | 12 | 13 | -------------------------------------------------------------------------------- /01. ⏱ Todo/🔍 Look up.md: -------------------------------------------------------------------------------- 1 | # 🔍 Look up 2 | 3 | --- 4 | 5 | Status: #todo/ongoing 6 | 7 | --- 8 | 9 | - [ ] What's the meaning of life? -------------------------------------------------------------------------------- /01. ⏱ Todo/🧠 Development.md: -------------------------------------------------------------------------------- 1 | # 🧠 Development 2 | 3 | --- 4 | 5 | Status: #todo/ongoing 6 | 7 | --- 8 | 9 | - [ ] Take improvisation course -------------------------------------------------------------------------------- /01. ⏱ Todo/🧩 Project/Make obsidian template repo.md: -------------------------------------------------------------------------------- 1 | # Make obsidian template repo 2 | 3 | --- 4 | 5 | Links: 6 | Tags: #project 7 | Status: #todo/done 8 | Date: 2022-11-20 9 | 10 | --- 11 | 12 | ## 🎯 Goals 13 | 14 | - Allow others to potentially benefit from my Obsidian templates 15 | 16 | ## ❌ Problem 17 | 18 | - They are badly documented 19 | - There are a lot of irrelevant files that I don't want to share 20 | - No files are currently shared on a public platform 21 | 22 | ## 👷 Proposed work 23 | 24 | - [ ] Document relevant templates and other relevant files 25 | - [ ] Remove irrelevant files 26 | - [ ] Upload vault with templates to Github 27 | - [ ] Spread the word 28 | 29 | ## ✅ Succes criteria 30 | 31 | - Templates available for anyone to download and use 32 | - Made a person happy with it 33 | 34 | ## 📈 Results 35 | 36 | ... 37 | 38 | ## 📓 Log 39 | 40 | - [x] Copy my own vault and adjust for repo 41 | - [x] Remove irrevant files and content 42 | - [x] Document templates 43 | - [x] Add emoticons 44 | - [x] ... 45 | - [x] ... -------------------------------------------------------------------------------- /01. ⏱ Todo/🧩 Project/Some project that I am doing.md: -------------------------------------------------------------------------------- 1 | # Some project that I am doing 2 | 3 | --- 4 | 5 | Links: 6 | Tags: #project 7 | Status: #todo/doing 8 | Date: 2022-11-20 9 | 10 | --- 11 | 12 | ## 🎯 Goals 13 | 14 | 15 | 16 | ## ❌ Problem 17 | 18 | 19 | 20 | ## 👷 Proposed work 21 | 22 | 23 | 24 | ## ✅ Succes criteria 25 | 26 | 27 | 28 | ## 📈 Results 29 | 30 | 31 | 32 | ## 📓 Log 33 | 34 | -------------------------------------------------------------------------------- /01. ⏱ Todo/🧩 Project/Some project that I still want to do.md: -------------------------------------------------------------------------------- 1 | # Some project that I still want to do 2 | 3 | --- 4 | 5 | Links: 6 | Tags: #project 7 | Status: #todo/todo 8 | Date: 2022-11-20 9 | 10 | --- 11 | 12 | ## 🎯 Goals 13 | 14 | 15 | 16 | ## ❌ Problem 17 | 18 | 19 | 20 | ## 👷 Proposed work 21 | 22 | 23 | 24 | ## ✅ Succes criteria 25 | 26 | 27 | 28 | ## 📈 Results 29 | 30 | 31 | 32 | ## 📓 Log 33 | 34 | -------------------------------------------------------------------------------- /10. 🧑‍💻 Work1/👥 Meeting/2023-07-31 Some meeting.md: -------------------------------------------------------------------------------- 1 | # Some meeting 2 | 3 | --- 4 | 5 | Attendees: Me 6 | Links: [[🏃 Meeting actions]] 7 | Tags: #meeting 8 | Date: 2023-07-31 9 | 10 | --- 11 | 12 | ## 🎯 Goals 13 | 14 | - Show example meeting note 15 | 16 | ## 🏃 Actions 17 | 18 | - [ ] Do that thing we decided in the meeting 19 | 20 | ## 💡 Takeaways 21 | 22 | 23 | 24 | ## 📝 Notes 25 | 26 | 27 | 28 | ## 🧐 Preparation 29 | 30 | - [ ] Prepare meeting: Some meeting 🗓2023-07-31 -------------------------------------------------------------------------------- /11. ⚡️ Work2.nosync/👥 Meeting/2023-08-01 Important meeting.md: -------------------------------------------------------------------------------- 1 | # Important meeting 2 | 3 | --- 4 | 5 | Attendees: Important people 6 | Links: [[🏃 Meeting actions]] 7 | Tags: #meeting/work2 8 | Date: 2023-08-01 9 | 10 | --- 11 | 12 | ## 🎯 Goals 13 | 14 | - Get through the meeting 15 | 16 | ## 🏃 Actions 17 | 18 | 19 | 20 | ## 💡 Takeaways 21 | 22 | 23 | 24 | ## 📝 Notes 25 | 26 | 27 | 28 | ## 🧐 Preparation 29 | 30 | - [ ] Prepare meeting: Important meeting 🗓2023-08-01 -------------------------------------------------------------------------------- /30. 🏡 Personal/🚀 Goals/Make goals more concrete.md: -------------------------------------------------------------------------------- 1 | # Make goals more concrete 2 | 3 | --- 4 | 5 | Links: 6 | Tags: #goal 7 | Date: 2023-01-14 8 | 9 | --- 10 | 11 | ## 📈 Progress 12 | 13 | ```dataviewjs 14 | let s1 = "🎯" 15 | let s2 = "🚩" 16 | let s3 = "🎉" 17 | let s4 = "timelines" 18 | 19 | let not_completed = dv.current().file.tasks.where( 20 | t => !t.completed && !t.text.contains(s1) && !t.text.contains(s2) && !t.text.contains(s3) && !t.text.contains(s4) 21 | ).length 22 | let completed = dv.current().file.tasks.where( 23 | t => t.completed && !t.text.contains(s1) && !t.text.contains(s2) && !t.text.contains(s3) && !t.text.contains(s4) 24 | ).length 25 | 26 | dv.header(1, Math.round(completed / (completed + not_completed) * 100) + " %"); 27 | ``` 28 | 29 | 30 | ## 👉 Next action 31 | 32 | ```dataview 33 | task 34 | from #goal 35 | where file.name = "Make goals more concrete" 36 | and ( 37 | (!completed and !contains(text, "🚩2") and !contains(text, "🎯2")) 38 | or (completed and (contains(text, "🚩<") or contains(text, "🎯<"))) 39 | ) 40 | sort section ASC 41 | limit 1 42 | ``` 43 | 44 | 45 | ## 🎬 Starting point 46 | 47 | - Vague goals in mind 48 | - Not sure where to start 49 | 50 | 51 | ## 🎯 Target 52 | 53 | *Clear, concise, measurable target to reach in order to complete this goal* 54 | - [ ] Standardized framework created, customized to own liking, in which to document measurable goals that can be achieved by finishing tasks and reaching milestones along the way 🎯2023-01-14 55 | 56 | 57 | 58 | ## 🔁 Feedback 59 | 60 | *Feedback from colleagues, friends, familiy or feedback from data* 61 | 62 | 63 | 64 | 65 | ## ✅ Tasks and milestones 66 | 67 | - [x] Define timelines ⏳2023-01-10 🗓2023-01-12 68 | - [x] Create Obsidian note for a goal ⏳2023-01-10 🗓2023-01-12 69 | - [x] Include relevant components and requirements in the note ⏳2023-01-10 🗓2023-01-12 70 | - [ ] Goal note created 🚩2023-01-11 71 | 72 | - [x] Refine timelines ⏳2023-01-12 🗓2023-01-14 73 | - [x] Create template out of goal note ⏳2023-01-12 🗓2023-01-14 74 | - [ ] Goal template created 🚩2023-01-14 75 | 76 | 77 | 78 | ## 🗓 Planner 79 | 80 | *Scheduled tasks from goals for upcoming month* 81 | ```dataview 82 | task 83 | from #goal 84 | where due >= date(today) and due < date(today) + dur(1 month) 85 | and !completed 86 | group by file.name 87 | ``` 88 | 89 | 90 | ## ⬇️ Symbols 91 | 92 | ```Due 93 | 🗓 94 | ``` 95 | ```Scheduled 96 | ⏳ 97 | ``` 98 | ```Milestone 99 | 🚩< *TODO: insert date* > 100 | ``` 101 | ```Target 102 | 🎯< *TODO: insert date* > 103 | ``` 104 | 105 | 106 | ## 🥳 Done 107 | 108 | - [ ] You've reached your goal! 🎉 109 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: structure 2 | structure: 3 | python .obsidian/scripts/structure.py 4 | -------------------------------------------------------------------------------- /_♻️ Templates/11. 👥 Meeting.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a meeting. For extensive documentation refer to the "📓 Daily" template, which 3 | // shares some components with this template. 4 | -%> 5 | <%* 6 | // meeting_folder = "..." 7 | // tp.file.move(meeting_folder + tp.file.title) 8 | -%> 9 | <%* 10 | goals = tp.system.prompt("Meeting goals:", "", throw_on_cancel=true, multiline=true) 11 | attendees = tp.system.prompt("Attendees:", "", throw_on_cancel=true) 12 | tag = tp.system.prompt("Meeting tag:", "#meeting/work1", throw_on_cancel=true) 13 | -%> 14 | <%* 15 | var today = new Date(tp.date.now("YYYY-MM-DD")); 16 | var file_date = new Date(tp.file.title.slice(0, 10)); 17 | var offset_time = file_date.getTime() - today.getTime(); 18 | var offset_days = offset_time / (1000 * 3600 * 24); 19 | -%> 20 | # <% tp.file.title.slice(11) %> 21 | 22 | --- 23 | 24 | Attendees: <% attendees %> 25 | Links: [[<%''%>🏃 Meeting actions]] 26 | Tags: <% tag %><%* if (1 == 0) { -%> #template <%* } %> 27 | Date: <% tp.file.title.slice(0, 11) %> 28 | 29 | --- 30 | 31 | ## 🎯 Goals 32 | 33 | <% goals %> 34 | 35 | ## 🏃 Actions 36 | 37 | <%* 38 | // In order to query these actions from another note, actions should be 39 | // noted down as todos "`- [ ] Do something`" 40 | %> 41 | 42 | ## 💡 Takeaways 43 | 44 | 45 | 46 | ## 📝 Notes 47 | 48 | 49 | 50 | ## 🧐 Preparation 51 | 52 | - [ ] Prepare meeting: <% tp.file.title.slice(11) %> 🗓<% tp.file.title.slice(0, 11) %> -------------------------------------------------------------------------------- /_♻️ Templates/12. 🧍‍♀️ Standup.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a standup. For extensive documentation refer to the "📓 Daily" template, 3 | // or the "👥 Meeting" template, which share some components with this template. 4 | -%> 5 | <%* 6 | attendees = tp.system.prompt("Attendees:", "", throw_on_cancel=true) 7 | tag = tp.system.prompt("Meeting tag:", "#meeting/work2/standup", throw_on_cancel=true) 8 | -%> 9 | <%* 10 | // meeting_folder = "... /👥 Meeting/Standup/" 11 | // tp.file.move(meeting_folder + tp.file.title) 12 | -%> 13 | # <% tp.file.title.slice(11) %> 14 | 15 | --- 16 | 17 | Attendees: <% attendees %> 18 | Links: [[<%''%>🏃 Actions]] 19 | Tags: <% tag %><%* if (1 == 0) { -%> #template <%* } %> 20 | Date: <% tp.file.title.slice(0, 11) %> 21 | 22 | --- 23 | 24 | ## 🏃 Actions 25 | 26 | 27 | 28 | ## 📝 Notes 29 | 30 | Me: 31 | - Yesterday 32 | - 33 | - Today 34 | - 35 | - Stuck 36 | - 37 | - Help 38 | - 39 | 40 | ## 🧐 Preparation 41 | 42 | - [ ] Prepare meeting: <% tp.file.title.slice(11) %> 🗓<% tp.file.title.slice(0, 11) %> 43 | 44 | Go from top right to bottom left. Highest priority first. What should we do to finish the epic? 45 | 46 | Assist: 47 | - Can you use any help, and from who? 48 | - Where are you stuck? 49 | - What do you need to finish this task? 50 | - What is the outcome you're looking for? 51 | - What needs feedback? 52 | - Are you working on anything that wasn't planned? 53 | - ⚠️ Mention the issue, but do not dive into details 54 | 55 | Wrap up: 56 | - Who has a win they want to share? 57 | - What would make you feel accomplished today? -------------------------------------------------------------------------------- /_♻️ Templates/13. 📈 1on1.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a 1on1 meeting. For extensive documentation refer to the "📓 Daily" template, 3 | // or the "👥 Meeting" template, which share some components with this template. 4 | -%> 5 | <%* 6 | attendees = tp.system.prompt("Attendees:", "", throw_on_cancel=true) 7 | -%> 8 | <%* 9 | meeting_folder = "10. 🧑‍💻 Work1/👥 Meeting/📈 1on1/" 10 | tp.file.move(meeting_folder + tp.file.title) 11 | -%> 12 | # <% tp.file.title.slice(11) %> 13 | 14 | --- 15 | 16 | Attendees: <% attendees %> 17 | Links: [[<%''%>🏃 Meeting actions]], [[<%''%>1on1s]] 18 | Tags: #<%''%>meeting/1on1<%* if (1 == 0) { -%> #template <%* } %> 19 | Date: <% tp.file.title.slice(0, 11) %> 20 | 21 | --- 22 | 23 | ## 🏃 Actions 24 | 25 | 26 | 27 | ## 📝 Notes 28 | 29 | 30 | 31 | ## 🧐 Preparation 32 | 33 | - [ ] Prepare meeting: <% tp.file.title.slice(11) %> 🗓<% tp.file.title.slice(0, 11) %> 34 | 35 | 36 | ## ❗️ Open actions 37 | 38 | <%* 39 | // Here we query open actions from previous 1on1s 40 | -%> 41 | ```dataview 42 | task 43 | from #meeting/1on1 44 | where !completed 45 | and contains(string(section), "Actions") 46 | ``` 47 | -------------------------------------------------------------------------------- /_♻️ Templates/22. 📝 Note.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a general note. For extensive documentation refer to the "📓 Daily" template. 3 | -%> 4 | <%* 5 | intro = tp.system.prompt("What is this note about?", "", throw_on_cancel=true, multiline=true) 6 | tags = tp.system.prompt("Note tags:", "", throw_on_cancel=true) 7 | -%> 8 | # <% tp.file.title %> 9 | 10 | --- 11 | 12 | Links: 13 | Tags: <% tags %><%* if (1 == 0) { -%> #template <%* } %> 14 | Date: <% tp.date.now("YYYY-MM-DD") %> 15 | 16 | --- 17 | 18 | ## 👋 Introduction 19 | 20 | <% intro %> -------------------------------------------------------------------------------- /_♻️ Templates/33. ⏱ Todo.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a note for todos related to one topic. E.g. "Books to read" or "Things to look up". 3 | // For extensive documentation refer to the "📓 Daily" template. 4 | -%> 5 | <%* 6 | todo_folder = "01. ⏱ Todo/" 7 | tp.file.move(todo_folder + tp.file.title) 8 | -%> 9 | # <% tp.file.title %> 10 | 11 | --- 12 | 13 | Status: #<%''%>todo/ongoing <%* if (1 == 0) { -%> #template <%* } %> 14 | 15 | --- 16 | 17 | <%* 18 | // List your todos here. 19 | -%> -------------------------------------------------------------------------------- /_♻️ Templates/34. 🧩 Project.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a project. Tagged with `todo/todo`, `todo/doing`, or `todo/done`. 3 | // These tags are used to query open projects in the Backlog note. 4 | // For extensive documentation refer to the "📓 Daily" template. 5 | -%> 6 | <%* 7 | project_folder = "01. ⏱ Todo/🧩 Project/" 8 | tp.file.move(project_folder + tp.file.title) 9 | -%> 10 | # <% tp.file.title %> 11 | 12 | --- 13 | 14 | Links: 15 | Tags: #<%''%>project <%* if (1 == 0) { -%> #template <%* } %> 16 | Status: #<%''%>todo/todo 17 | Date: <% tp.date.now("YYYY-MM-DD") %> 18 | 19 | --- 20 | 21 | ## 🎯 Goals 22 | 23 | 24 | 25 | ## ❌ Problem 26 | 27 | 28 | 29 | ## 👷 Proposed work 30 | 31 | 32 | 33 | ## ✅ Succes criteria 34 | 35 | 36 | 37 | ## 📈 Results 38 | 39 | 40 | 41 | ## 📓 Log 42 | 43 | -------------------------------------------------------------------------------- /_♻️ Templates/35. 🚀 Goal.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a personal long-term goal. For extensive documentation refer to the "📓 Daily" 3 | // template, which shares some components with this template. 4 | -%> 5 | <%* 6 | goals_folder = "30. 🏡 Personal/🚀 Goals/" 7 | tp.file.move(goals_folder + tp.file.title) 8 | -%> 9 | # <% tp.file.title %> 10 | 11 | --- 12 | 13 | Links: 14 | Tags: #<%''%>goal<%* if (1 == 0) { -%> #template <%* } %> 15 | Date: <% tp.date.now("YYYY-MM-DD") %> 16 | 17 | --- 18 | 19 | ## 📈 Progress 20 | 21 | <%* 22 | // The percentage of tasks done that are not related to timelines, milestones or the target 23 | -%> 24 | ```dataviewjs 25 | let s1 = "🎯" 26 | let s2 = "🚩" 27 | let s3 = "🎉" 28 | let s4 = "timelines" 29 | 30 | let not_completed = dv.current().file.tasks.where( 31 | t => !t.completed && !t.text.contains(s1) && !t.text.contains(s2) && !t.text.contains(s3) && !t.text.contains(s4) 32 | ).length 33 | let completed = dv.current().file.tasks.where( 34 | t => t.completed && !t.text.contains(s1) && !t.text.contains(s2) && !t.text.contains(s3) && !t.text.contains(s4) 35 | ).length 36 | 37 | dv.header(1, Math.round(completed / (completed + not_completed) * 100) + " %"); 38 | ``` 39 | 40 | 41 | ## 👉 Next action 42 | 43 | ```dataview 44 | task 45 | from #goal 46 | where file.name = this.file.name 47 | and ( 48 | (!completed and !contains(text, "🚩2") and !contains(text, "🎯2")) 49 | or (completed and (contains(text, "🚩<") or contains(text, "🎯<"))) 50 | ) 51 | sort section ASC 52 | limit 1 53 | ``` 54 | 55 | 56 | ## 🎬 Starting point 57 | 58 | <%* 59 | // Where do you need to come from? What is your starting experience? 60 | %> 61 | 62 | 63 | ## 🎯 Target 64 | 65 | *Clear, concise, measurable target to reach in order to complete this goal* 66 | <%* 67 | // Keep < *TODO: insert date* > in here, because it is part of the tasks to insert 68 | // the date upon completing the milestone or target: 🎯YYYY-MM-DD 69 | -%> 70 | - [ ] Target 🎯< *TODO: insert date* > 71 | 72 | 73 | 74 | ## 🔁 Feedback 75 | 76 | *Feedback from colleagues, friends, familiy or feedback from data* 77 | 78 | 79 | 80 | 81 | ## ✅ Tasks and milestones 82 | 83 | <%* 84 | // Milestone tasks (🚩) are only done when a date is added: 🚩YYYY-MM-DD 85 | -%> 86 | - [ ] Define timelines ⏳< scheduled > 🗓< due > 87 | - [ ] Task 88 | - [ ] Milestone 1 🚩< *TODO: insert date* > 89 | 90 | - [ ] Refine timelines ⏳< scheduled > 🗓< due > 91 | - [ ] Task 92 | - [ ] Milestone 2 🚩< *TODO: insert date* > 93 | 94 | 95 | 96 | ## 🗓 Planner 97 | 98 | <%* 99 | // An overview to help you schedule your tasks better using *scheduled* ⏳ and *due* 🗓 dates 100 | -%> 101 | *Scheduled tasks from goals for upcoming month* 102 | ```dataview 103 | task 104 | from #goal 105 | where due >= date(today) and due < date(today) + dur(1 month) 106 | and !completed 107 | group by file.name 108 | ``` 109 | 110 | 111 | ## ⬇️ Symbols 112 | 113 | ```Due 114 | 🗓 115 | ``` 116 | ```Scheduled 117 | ⏳ 118 | ``` 119 | ```Milestone 120 | 🚩< *TODO: insert date* > 121 | ``` 122 | ```Target 123 | 🎯< *TODO: insert date* > 124 | ``` 125 | 126 | 127 | ## 🥳 Done 128 | 129 | - [ ] You've reached your goal! 🎉 130 | -------------------------------------------------------------------------------- /_♻️ Templates/55. 👨‍🏫 Training.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a training. 3 | // Note: format title as "< YYYY-MM-DD > < company >, < training >" 4 | -%> 5 | <%* 6 | // training_folder = "... /👨‍🏫 Training/✓ Given/" 7 | // tp.file.move(training_folder + tp.file.title) 8 | -%> 9 | # <% tp.file.title.slice(11) %> 10 | 11 | --- 12 | 13 | Links: [[<%''%>🏃 Follow up]] 14 | Tags: #<%''%>training/given<%* if (1 == 0) { -%> #template <%* } %> 15 | Company: <% tp.file.title.slice(11).split(",")[0] %> 16 | Location: 17 | Date: <% tp.file.title.slice(0, 11) %> 18 | 19 | --- 20 | 21 | ## ✅ Todo 22 | 23 | - [ ] Invite participants to repo 24 | - [ ] Send setup instructions 25 | ... 26 | 27 | ## 🏃 Follow up 28 | 29 | 30 | 31 | ## 😄 Went well 32 | 33 | 34 | 35 | ## ❌ Could be improved 36 | 37 | 38 | 39 | ## 🌈 Lessons 40 | 41 | 42 | 43 | ## 🧐 Preparation 44 | 45 | 46 | -------------------------------------------------------------------------------- /_♻️ Templates/66. 🍽 Recipe.md: -------------------------------------------------------------------------------- 1 | %% TODO %% -------------------------------------------------------------------------------- /_♻️ Templates/67. 🗺 Trip.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a trip to be made. 3 | -%> 4 | <%* 5 | goals_folder = "33. 🗺️ Exploring/📸 Trips/" 6 | tp.file.move(goals_folder + tp.file.title) 7 | -%> 8 | # <% tp.file.title %> 9 | 10 | --- 11 | 12 | Links: 13 | Tags: #<%''%>trip <%* if (1 == 0) { -%> #template <%* } %> 14 | Date: <% tp.date.now("YYYY-MM-DD") %> 15 | 16 | --- 17 | 18 | ## ✅ Todos 19 | 20 | - [ ] Select travel dates 21 | - [ ] Get travel tickets 22 | - [ ] High-level planning 23 | - [ ] Detailed planning 24 | - [ ] Book accommodation 25 | - [ ] Get visa / travel authorization 26 | - [ ] Get travel insurance 27 | - [ ] Split booking cost 28 | - [ ] Check-in transportation 29 | - [ ] Check-in accommodation 30 | - [ ] Print documents for travel 31 | - [ ] Create packing list 32 | - [ ] Pack bag 33 | 34 | --- 35 | 36 | ## 🗓 Planning 37 | 38 | 39 | 40 | ## 📝 Detailed planning 41 | 42 | 43 | 44 | ## 📍 Locations 45 | 46 | 47 | 48 | ## 🏠 Accommodation 49 | 50 | 51 | 52 | ## 🚅 Transportation 53 | 54 | 55 | 56 | ## 🧾 Travel authorization 57 | 58 | 59 | 60 | ## 💵 Travel insurance 61 | 62 | 63 | 64 | ## 💼 Packing 65 | 66 | Clothes: 67 | - [ ] Enough socks 68 | 69 | Small items: 70 | - [ ] Money 71 | 72 | Etc. -------------------------------------------------------------------------------- /_♻️ Templates/77. 🙎‍♀️ Person.md: -------------------------------------------------------------------------------- 1 | <%* 2 | // Template for a person note. 3 | -%> 4 | <%* 5 | role_func = tp.system.prompt("Role or function:", "", throw_on_cancel=true, multiline=true) 6 | birthday = tp.system.prompt("Brirthday:", "?", throw_on_cancel=true, multiline=true) 7 | personal = tp.system.prompt("Personal facts:", "", throw_on_cancel=true, multiline=true) 8 | relation = tp.system.prompt("How do you know this person?", "", throw_on_cancel=true, multiline=true) 9 | person_type = tp.system.suggester(["Family", "Friend", "Personal", "Work1", "Work2"], ["family", "friend", "personal", "work1", "work2"], throw_on_cancel=true, placeholder="Person category") 10 | -%> 11 | <%* 12 | base_folder = "36. 🕺 People" 13 | tp.file.move(base_folder + "/" + tp.file.title) 14 | -%> 15 | # <% tp.file.title %> 16 | 17 | --- 18 | 19 | <%* 20 | // Include relation in tag e.g. /person/family 21 | // Link related people. 22 | -%> 23 | Links: 24 | Tags: #<%''%>person/<% person_type -%><%* if (1 == 0) { -%> #template <%* } %> 25 | Date: <% tp.date.now("YYYY-MM-DD") %> 26 | 27 | --- 28 | 29 | - [ ] <% tp.file.title %> birthday 🎉<% birthday %> 30 | 31 | ## 🤝 Relation 32 | 33 | <%* 34 | // More specific relation with the person 35 | -%> 36 | <% relation %> 37 | 38 | ## 💁 Personal 39 | 40 | <%* 41 | // Where do they come from 42 | // Which education, which hobbies, ... 43 | -%> 44 | <% personal %> 45 | 46 | ## 🧑‍🔧 Role or function 47 | 48 | <% role_func %> -------------------------------------------------------------------------------- /_📎 Attachments/Pasted image 20230729185113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/_📎 Attachments/Pasted image 20230729185113.png -------------------------------------------------------------------------------- /_📎 Attachments/Pasted image 20230729185208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ykerus/obsidian-templates/28a92ab6dc30526727cfb68dd2de2425302f59e9/_📎 Attachments/Pasted image 20230729185208.png -------------------------------------------------------------------------------- /❓ Help.md: -------------------------------------------------------------------------------- 1 | # ❓ Help 2 | 3 | --- 4 | 5 | Links: [Obsidian docs](https://help.obsidian.md/Obsidian/Index) 6 | Tags: #obsidian 7 | Date: 2022-12-17 8 | 9 | --- 10 | 11 | ## 👋 Introduction 12 | 13 | Obsidian is a great note-taking app. However, it does require some knowledge on how to use it. This guide will take you some of the basic concepts and syntax to get started. 14 | 15 | --- 16 | 17 | ## 🗃 Structure 18 | 19 | Use tags and links to easily search or navigate through notes. 20 | 21 | ### `#️⃣` Tags 22 | 23 | General tags: `#tag` 24 | Nested tags: `#tag/nested` 25 | 26 | ### 🔗 Links 27 | 28 | Link to "note X": `[[note X]]` 29 | Link to "heading Y" in "note X": `[[note X#heading Y]]` 30 | Link to a text block within "note X": `[[note X^]]` 31 | Link to a text block within any file: `[[^^]]` 32 | 33 | --- 34 | 35 | ## Formatting 36 | 37 | ### Todo list 38 | 39 | - [x] Item 40 | - [?] Item 41 | - [ ] Item 42 | 43 | ### Table 44 | 45 | | First header | Second header | 46 | |--------------|---------------| 47 | | Col 1 | Col 2 | 48 | 49 | ### Text style 50 | 51 | | Raw | Preview | 52 | | ------------------------ | ------------------- | 53 | | `**bold**` or `__bold__` | **bold** | 54 | | `*italic*` or `_italic_` | *italic* | 55 | | `~~striked-through~~` | ~~striked-through~~ | 56 | 57 | ### Block quote 58 | 59 | > "This is a block quote" - Yke 60 | 61 | ### Info block 62 | 63 | > [!INFO] > Here's an info block. 64 | 65 | ### Python code 66 | 67 | ```python 68 | import this 69 | ``` 70 | 71 | ### Math 72 | 73 | $$\begin{vmatrix}a & b\\ c & d \end{vmatrix}=ad-bc$$ 74 | 75 | ### Images 76 | 77 | `![[img.jpg|200x100]]` 78 | 79 | ### Link display 80 | 81 | [[❓ Help|Help]] - links to "❓ Help", but displays "Help" 82 | 83 | ### Colored text 84 | 85 | ?? select a cool theme, or edit the CSS yourself 86 | 87 | ### Footnote 88 | 89 | Add a footnote like this [^1]. 90 | 91 | [^1]: Footnote 92 | 93 | ### Query 94 | 95 | Using [Dataview](https://blacksmithgu.github.io/obsidian-dataview/) 96 | ```dataview 97 | list 98 | from #template 99 | ``` 100 | 101 | ### Graphs and diagrams 102 | 103 | Made with [Mermaid](https://mermaid-js.github.io/mermaid/#/) 104 | 105 | ```mermaid 106 | graph TD; 107 | A-->B; 108 | A-->C; 109 | B-->D; 110 | C-->D; 111 | ``` 112 | 113 | --- 114 | 115 | ## Short cuts 116 | 117 | Some of these are vault-specific. 118 | 119 | - `^ + SHIFT + ENTER` - Embed new Excalidraw drawing 120 | - `Cmd + N` - New file 121 | - `Cmd + K` - Turn selected words into link 122 | - `Cmd + E` - Toggle preview/edit mode 123 | - `Cmd + U` - Underline 124 | - `Cmd + T` - New tab 125 | - `Cmd + Q` - Close all other tabs 126 | - `Cmd + 1` - Toggle checkbox 127 | - `Cmd + Shift + F` - Search all files 128 | - `Cmd + (Shift) + P` - Open command pallet 129 | - `Cmd + ] / [` - Change indentation left or right 130 | - `Cmd + D` - Today's daily note 131 | - `Cmd + Shift + D` - Next daily note 132 | - `Cmd + Shift + A` - Previous daily note 133 | - `Cmd + Shift + I` - Insert template 134 | - `Cmd + Shift + S` - Insert daily template 135 | - `Option + A` - Previous file 136 | - `Cmd + Esc` - Delete current file 137 | 138 | --- 139 | 140 | ## Tricks 141 | 142 | - Hold `Cmd` and click several notes to open them side-by-side 143 | - Drag a note and pin it to the side bar for quick access 144 | - Create presentation by using `---` to separate slides, and start from command palette 145 | - Add images simply by dragging them into your note 146 | - Hold `Cmd` while hovering over link to see preview 147 | - Hold `Cmd` and click on link to open in split pane 148 | - Pin a pane to make sure it never gets replaced 149 | - Link to obsidian note from other app using "Copy Obsisian URL" 150 | - Synchronize your notes by putting your fault in an iCloud folder 151 | - Use `.nosync` extension to prevent folder from being synced to iCloud 152 | --------------------------------------------------------------------------------