├── .gitignore ├── LICENSE ├── README.md ├── main.ts ├── manifest.json ├── package-lock.json ├── package.json ├── rollup.config.js └── versions.json /.gitignore: -------------------------------------------------------------------------------- 1 | # Intellij 2 | *.iml 3 | .idea 4 | 5 | # npm 6 | node_modules 7 | package-lock.json 8 | 9 | # build 10 | main.js 11 | *.js.map 12 | 13 | # obsidian 14 | data.json 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 OwnJoke 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## THIS PLUGIN IS CURRENTLY BROKEN AND NOT RECEIVING UPDATES 2 | 3 | # Budget WYSIWYG 4 | 5 | Budget WYSIWYG is a plugin that automatically switches between preview mode and source mode based on if you are typing or not. 6 | 7 | 8 | ## How to use 9 | 10 | Enable the plugin and start typing. 11 | 12 | ## Disclaimer 13 | 14 | This is my first Obsidian plugin and I am still relatively new to js so there is probably a lot I can improve and it is probably not very efficient. I am aware of this and I will improve the plugin over time. 15 | -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- 1 | import { App, MarkdownView, Plugin, PluginSettingTab, Setting, debounce } from 'obsidian'; 2 | 3 | interface BudgetPluginSettings { 4 | mySetting: string; 5 | } 6 | 7 | const DEFAULT_SETTINGS: BudgetPluginSettings = { 8 | mySetting: 'default' 9 | } 10 | 11 | export default class BudgetPlugin extends Plugin { 12 | settings: BudgetPluginSettings; 13 | 14 | async onload() { 15 | await this.loadSettings(); 16 | const self = this; 17 | 18 | function doneTyping() { 19 | const activeView = self.app.workspace.getActiveViewOfType(MarkdownView); 20 | if (!activeView) { 21 | return; 22 | } 23 | let selection = activeView.editor.getSelection() 24 | if (selection) { 25 | return; 26 | } 27 | cursorpos = activeView.editor.getCursor() 28 | let viewstate = activeView.leaf.getViewState() 29 | viewstate.state.mode = 'preview' 30 | activeView.leaf.setViewState(viewstate) 31 | } 32 | 33 | this.registerDomEvent(document, 'keydown', (evt: KeyboardEvent) => { 34 | if(evt.key === 'Control' || evt.key === 'Alt' || evt.key === 'Shift' || evt.key === 'Meta') { 35 | return; 36 | } 37 | const activeView = this.app.workspace.getActiveViewOfType(MarkdownView); 38 | if (!activeView) { 39 | return; 40 | } 41 | let classname = document.activeElement.className 42 | let placeholder = document.activeElement.getAttribute('placeholder') 43 | if(placeholder) { 44 | return 45 | } 46 | //if(classname === 'view-header-title') { 47 | // return 48 | //} 49 | if(classname.includes('markdown-preview-view')){ 50 | if(activeView.getMode() === 'preview'){ 51 | let viewstate = activeView.leaf.getViewState() 52 | viewstate.state.mode = 'source' 53 | activeView.leaf.setViewState(viewstate) 54 | activeView.editor.focus(); 55 | if(cursorpos) { 56 | activeView.editor.setCursor({ line: cursorpos.line, ch: cursorpos.ch }); 57 | } else { 58 | activeView.editor.setCursor(activeView.editor.lastLine()); 59 | } 60 | }} 61 | }); 62 | let cursorpos: any 63 | let debouncef = debounce(doneTyping, 2000, true) 64 | 65 | this.registerDomEvent(document, 'keyup', (evt: KeyboardEvent) => { 66 | if(evt.key === 'Control' || evt.key === 'Alt' || evt.key === 'Shift' || evt.key === 'Meta') { 67 | return; 68 | } 69 | debouncef() 70 | }); 71 | 72 | this.registerDomEvent(document, 'mouseup', (evt: MouseEvent) => { 73 | debouncef() 74 | }); 75 | } 76 | 77 | async loadSettings() { 78 | this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); 79 | } 80 | 81 | async saveSettings() { 82 | await this.saveData(this.settings); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-budget-wysiwyg", 3 | "name": "Budget WYSIWYG", 4 | "version": "1.0.5", 5 | "minAppVersion": "0.9.12", 6 | "description": "This is a plugin that automatically switches between preview mode and source mode based on if you are typing or not.", 7 | "author": "OwnJoke", 8 | "authorUrl": "https://obsidian.md/about", 9 | "isDesktopOnly": true 10 | } 11 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obsidian-sample-plugin", 3 | "version": "0.12.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@rollup/plugin-commonjs": { 8 | "version": "18.1.0", 9 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-18.1.0.tgz", 10 | "integrity": "sha512-h3e6T9rUxVMAQswpDIobfUHn/doMzM9sgkMrsMWCFLmB84PSoC8mV8tOloAJjSRwdqhXBqstlX2BwBpHJvbhxg==", 11 | "dev": true, 12 | "requires": { 13 | "@rollup/pluginutils": "^3.1.0", 14 | "commondir": "^1.0.1", 15 | "estree-walker": "^2.0.1", 16 | "glob": "^7.1.6", 17 | "is-reference": "^1.2.1", 18 | "magic-string": "^0.25.7", 19 | "resolve": "^1.17.0" 20 | } 21 | }, 22 | "@rollup/plugin-node-resolve": { 23 | "version": "11.2.1", 24 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", 25 | "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", 26 | "dev": true, 27 | "requires": { 28 | "@rollup/pluginutils": "^3.1.0", 29 | "@types/resolve": "1.17.1", 30 | "builtin-modules": "^3.1.0", 31 | "deepmerge": "^4.2.2", 32 | "is-module": "^1.0.0", 33 | "resolve": "^1.19.0" 34 | } 35 | }, 36 | "@rollup/plugin-typescript": { 37 | "version": "8.2.3", 38 | "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.2.3.tgz", 39 | "integrity": "sha512-bSkd+DD3wP9OLU6lPet59B6jJF29/RlxHkbwvOVOcf1nk8eQYWw24HpldEdrPo/WG0QAPD7TqI7+2y5jtdqjww==", 40 | "dev": true, 41 | "requires": { 42 | "@rollup/pluginutils": "^3.1.0", 43 | "resolve": "^1.17.0" 44 | } 45 | }, 46 | "@rollup/pluginutils": { 47 | "version": "3.1.0", 48 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 49 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 50 | "dev": true, 51 | "requires": { 52 | "@types/estree": "0.0.39", 53 | "estree-walker": "^1.0.1", 54 | "picomatch": "^2.2.2" 55 | }, 56 | "dependencies": { 57 | "estree-walker": { 58 | "version": "1.0.1", 59 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 60 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 61 | "dev": true 62 | } 63 | } 64 | }, 65 | "@types/codemirror": { 66 | "version": "0.0.108", 67 | "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.108.tgz", 68 | "integrity": "sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==", 69 | "dev": true, 70 | "requires": { 71 | "@types/tern": "*" 72 | } 73 | }, 74 | "@types/estree": { 75 | "version": "0.0.39", 76 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 77 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 78 | "dev": true 79 | }, 80 | "@types/node": { 81 | "version": "14.17.6", 82 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.6.tgz", 83 | "integrity": "sha512-iBxsxU7eswQDGhlr3AiamBxOssaYxbM+NKXVil8jg9yFXvrfEFbDumLD/2dMTB+zYyg7w+Xjt8yuxfdbUHAtcQ==", 84 | "dev": true 85 | }, 86 | "@types/resolve": { 87 | "version": "1.17.1", 88 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 89 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 90 | "dev": true, 91 | "requires": { 92 | "@types/node": "*" 93 | } 94 | }, 95 | "@types/tern": { 96 | "version": "0.23.4", 97 | "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.4.tgz", 98 | "integrity": "sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg==", 99 | "dev": true, 100 | "requires": { 101 | "@types/estree": "*" 102 | } 103 | }, 104 | "balanced-match": { 105 | "version": "1.0.2", 106 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 107 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 108 | "dev": true 109 | }, 110 | "brace-expansion": { 111 | "version": "1.1.11", 112 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 113 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 114 | "dev": true, 115 | "requires": { 116 | "balanced-match": "^1.0.0", 117 | "concat-map": "0.0.1" 118 | } 119 | }, 120 | "builtin-modules": { 121 | "version": "3.2.0", 122 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", 123 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", 124 | "dev": true 125 | }, 126 | "commondir": { 127 | "version": "1.0.1", 128 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 129 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 130 | "dev": true 131 | }, 132 | "concat-map": { 133 | "version": "0.0.1", 134 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 135 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 136 | "dev": true 137 | }, 138 | "deepmerge": { 139 | "version": "4.2.2", 140 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 141 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 142 | "dev": true 143 | }, 144 | "estree-walker": { 145 | "version": "2.0.2", 146 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 147 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 148 | "dev": true 149 | }, 150 | "fs.realpath": { 151 | "version": "1.0.0", 152 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 153 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 154 | "dev": true 155 | }, 156 | "fsevents": { 157 | "version": "2.3.2", 158 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 159 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 160 | "dev": true, 161 | "optional": true 162 | }, 163 | "function-bind": { 164 | "version": "1.1.1", 165 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 166 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 167 | "dev": true 168 | }, 169 | "glob": { 170 | "version": "7.1.7", 171 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", 172 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", 173 | "dev": true, 174 | "requires": { 175 | "fs.realpath": "^1.0.0", 176 | "inflight": "^1.0.4", 177 | "inherits": "2", 178 | "minimatch": "^3.0.4", 179 | "once": "^1.3.0", 180 | "path-is-absolute": "^1.0.0" 181 | } 182 | }, 183 | "has": { 184 | "version": "1.0.3", 185 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 186 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 187 | "dev": true, 188 | "requires": { 189 | "function-bind": "^1.1.1" 190 | } 191 | }, 192 | "inflight": { 193 | "version": "1.0.6", 194 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 195 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 196 | "dev": true, 197 | "requires": { 198 | "once": "^1.3.0", 199 | "wrappy": "1" 200 | } 201 | }, 202 | "inherits": { 203 | "version": "2.0.4", 204 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 205 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 206 | "dev": true 207 | }, 208 | "is-core-module": { 209 | "version": "2.5.0", 210 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", 211 | "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", 212 | "dev": true, 213 | "requires": { 214 | "has": "^1.0.3" 215 | } 216 | }, 217 | "is-module": { 218 | "version": "1.0.0", 219 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 220 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 221 | "dev": true 222 | }, 223 | "is-reference": { 224 | "version": "1.2.1", 225 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 226 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 227 | "dev": true, 228 | "requires": { 229 | "@types/estree": "*" 230 | } 231 | }, 232 | "magic-string": { 233 | "version": "0.25.7", 234 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 235 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 236 | "dev": true, 237 | "requires": { 238 | "sourcemap-codec": "^1.4.4" 239 | } 240 | }, 241 | "minimatch": { 242 | "version": "3.0.4", 243 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 244 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 245 | "dev": true, 246 | "requires": { 247 | "brace-expansion": "^1.1.7" 248 | } 249 | }, 250 | "moment": { 251 | "version": "2.29.1", 252 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", 253 | "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", 254 | "dev": true 255 | }, 256 | "obsidian": { 257 | "version": "0.12.11", 258 | "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-0.12.11.tgz", 259 | "integrity": "sha512-Kv4m1n4nfd17FzpqHZfqFS2YZAyY+cxAUM7/5jqh1bmbPlmKoNd1XJZC7o9KvkXfTCxALiXfGRdrjHB+GUFAEA==", 260 | "dev": true, 261 | "requires": { 262 | "@types/codemirror": "0.0.108", 263 | "moment": "2.29.1" 264 | } 265 | }, 266 | "once": { 267 | "version": "1.4.0", 268 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 269 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 270 | "dev": true, 271 | "requires": { 272 | "wrappy": "1" 273 | } 274 | }, 275 | "path-is-absolute": { 276 | "version": "1.0.1", 277 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 278 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 279 | "dev": true 280 | }, 281 | "path-parse": { 282 | "version": "1.0.7", 283 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 284 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 285 | "dev": true 286 | }, 287 | "picomatch": { 288 | "version": "2.3.0", 289 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", 290 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", 291 | "dev": true 292 | }, 293 | "resolve": { 294 | "version": "1.20.0", 295 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 296 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 297 | "dev": true, 298 | "requires": { 299 | "is-core-module": "^2.2.0", 300 | "path-parse": "^1.0.6" 301 | } 302 | }, 303 | "rollup": { 304 | "version": "2.55.0", 305 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.55.0.tgz", 306 | "integrity": "sha512-Atc3QqelKzrKwRkqnSdq0d2Mi8e0iGuL+kZebKMZ4ysyWHD5hw9VfVCAuODIW5837RENV8LXcbAEHurYf+ArvA==", 307 | "dev": true, 308 | "requires": { 309 | "fsevents": "~2.3.2" 310 | } 311 | }, 312 | "sourcemap-codec": { 313 | "version": "1.4.8", 314 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 315 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 316 | "dev": true 317 | }, 318 | "tslib": { 319 | "version": "2.3.0", 320 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", 321 | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", 322 | "dev": true 323 | }, 324 | "typescript": { 325 | "version": "4.3.5", 326 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", 327 | "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", 328 | "dev": true 329 | }, 330 | "wrappy": { 331 | "version": "1.0.2", 332 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 333 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 334 | "dev": true 335 | } 336 | } 337 | } 338 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "obsidian-sample-plugin", 3 | "version": "0.12.0", 4 | "description": "This is a sample plugin for Obsidian (https://obsidian.md)", 5 | "main": "main.js", 6 | "scripts": { 7 | "dev": "rollup --config rollup.config.js -w", 8 | "build": "rollup --config rollup.config.js --environment BUILD:production" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "MIT", 13 | "devDependencies": { 14 | "@rollup/plugin-commonjs": "^18.0.0", 15 | "@rollup/plugin-node-resolve": "^11.2.1", 16 | "@rollup/plugin-typescript": "^8.2.1", 17 | "@types/node": "^14.14.37", 18 | "obsidian": "^0.12.0", 19 | "rollup": "^2.32.1", 20 | "tslib": "^2.2.0", 21 | "typescript": "^4.2.4" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import typescript from '@rollup/plugin-typescript'; 2 | import {nodeResolve} from '@rollup/plugin-node-resolve'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | 5 | const isProd = (process.env.BUILD === 'production'); 6 | 7 | const banner = 8 | `/* 9 | THIS IS A GENERATED/BUNDLED FILE BY ROLLUP 10 | if you want to view the source visit the plugins github repository 11 | */ 12 | `; 13 | 14 | export default { 15 | input: 'main.ts', 16 | output: { 17 | dir: '.', 18 | sourcemap: 'inline', 19 | sourcemapExcludeSources: isProd, 20 | format: 'cjs', 21 | exports: 'default', 22 | banner, 23 | }, 24 | external: ['obsidian'], 25 | plugins: [ 26 | typescript(), 27 | nodeResolve({browser: true}), 28 | commonjs(), 29 | ] 30 | }; -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "1.0.5": "0.9.12", 3 | "1.0.4": "0.9.12", 4 | "1.0.3": "0.9.12", 5 | "1.0.2": "0.9.12", 6 | "1.0.1": "0.9.12", 7 | "1.0.0": "0.9.12" 8 | } 9 | --------------------------------------------------------------------------------