diff --git a/bin/copy-dist.ts b/bin/copy-dist.ts index fc30d3eed..6387bee14 100644 --- a/bin/copy-dist.ts +++ b/bin/copy-dist.ts @@ -83,7 +83,12 @@ const copy = async () => { "node_modules/knockout/build/output/", "node_modules/normalize.css/", "node_modules/jquery.fancytree/dist/", - "node_modules/bootstrap/dist/" + "node_modules/bootstrap/dist/", + "node_modules/autocomplete.js/dist/", + "node_modules/codemirror/lib/", + "node_modules/codemirror/addon/", + "node_modules/codemirror/mode/", + "node_modules/codemirror/keymap/", ]; for (const folder of nodeModulesFolder) { diff --git a/package-lock.json b/package-lock.json index 21db952c3..b2b6983d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "boxicons": "2.1.4", "chokidar": "3.6.0", "cls-hooked": "4.2.2", + "codemirror": "^5.65.17", "compression": "1.7.4", "cookie-parser": "1.4.6", "csurf": "1.11.0", @@ -5876,6 +5877,12 @@ "semver": "bin/semver" } }, + "node_modules/codemirror": { + "version": "5.65.17", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.17.tgz", + "integrity": "sha512-1zOsUx3lzAOu/gnMAZkQ9kpIHcPYOc9y1Fbm2UVk5UBPkdq380nhkelG0qUwm1f7wPvTbndu9ZYlug35EwAZRQ==", + "license": "MIT" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -17238,8 +17245,6 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "optional": true, "engines": { "node": ">=0.10.0" } diff --git a/package.json b/package.json index 3c7e410d3..b88f50161 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "boxicons": "2.1.4", "chokidar": "3.6.0", "cls-hooked": "4.2.2", + "codemirror": "^5.65.17", "compression": "1.7.4", "cookie-parser": "1.4.6", "csurf": "1.11.0", diff --git a/src/public/app/services/library_loader.js b/src/public/app/services/library_loader.js index d1935fe0a..5e47f837c 100644 --- a/src/public/app/services/library_loader.js +++ b/src/public/app/services/library_loader.js @@ -2,23 +2,23 @@ const CKEDITOR = {"js": ["libraries/ckeditor/ckeditor.js"]}; const CODE_MIRROR = { js: [ - "libraries/codemirror/codemirror.js", - "libraries/codemirror/addon/display/placeholder.js", - "libraries/codemirror/addon/edit/matchbrackets.js", - "libraries/codemirror/addon/edit/matchtags.js", - "libraries/codemirror/addon/fold/xml-fold.js", - "libraries/codemirror/addon/lint/lint.js", - "libraries/codemirror/addon/mode/loadmode.js", - "libraries/codemirror/addon/mode/multiplex.js", - "libraries/codemirror/addon/mode/overlay.js", - "libraries/codemirror/addon/mode/simple.js", - "libraries/codemirror/addon/search/match-highlighter.js", - "libraries/codemirror/mode/meta.js", - "libraries/codemirror/keymap/vim.js" + "node_modules/codemirror/lib/codemirror.js", + "node_modules/codemirror/addon/display/placeholder.js", + "node_modules/codemirror/addon/edit/matchbrackets.js", + "node_modules/codemirror/addon/edit/matchtags.js", + "node_modules/codemirror/addon/fold/xml-fold.js", + "node_modules/codemirror/addon/lint/lint.js", + "node_modules/codemirror/addon/mode/loadmode.js", + "node_modules/codemirror/addon/mode/multiplex.js", + "node_modules/codemirror/addon/mode/overlay.js", + "node_modules/codemirror/addon/mode/simple.js", + "node_modules/codemirror/addon/search/match-highlighter.js", + "node_modules/codemirror/mode/meta.js", + "node_modules/codemirror/keymap/vim.js" ], css: [ - "libraries/codemirror/codemirror.css", - "libraries/codemirror/addon/lint/lint.css" + "node_modules/codemirror/lib/codemirror.css", + "node_modules/codemirror/addon/lint/lint.css" ] }; diff --git a/src/public/app/widgets/note_detail.js b/src/public/app/widgets/note_detail.js index 0f1e041fa..ea081cd1e 100644 --- a/src/public/app/widgets/note_detail.js +++ b/src/public/app/widgets/note_detail.js @@ -271,7 +271,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { `, importCSS: false, loadCSS: [ - `${assetPath}/libraries/codemirror/codemirror.css`, + `${assetPath}/node_modules/codemirror/lib/codemirror.css`, `${assetPath}/libraries/ckeditor/ckeditor-content.css`, `${assetPath}/node_modules/bootstrap/dist/css/bootstrap.min.css`, `${assetPath}/node_modules/katex/dist/katex.min.css`, diff --git a/src/public/app/widgets/type_widgets/editable_code.js b/src/public/app/widgets/type_widgets/editable_code.js index 3046b9e0c..1f59ba654 100644 --- a/src/public/app/widgets/type_widgets/editable_code.js +++ b/src/public/app/widgets/type_widgets/editable_code.js @@ -45,7 +45,7 @@ export default class EditableCodeTypeWidget extends TypeWidget { delete CodeMirror.keyMap.default["Alt-Left"]; delete CodeMirror.keyMap.default["Alt-Right"]; - CodeMirror.modeURL = `${window.glob.assetPath}/libraries/codemirror/mode/%N/%N.js`; + CodeMirror.modeURL = `${window.glob.assetPath}/node_modules/codemirror/mode/%N/%N.js`; this.codeEditor = CodeMirror(this.$editor[0], { value: "", diff --git a/src/routes/assets.ts b/src/routes/assets.ts index c6f1e7c48..076f2bb21 100644 --- a/src/routes/assets.ts +++ b/src/routes/assets.ts @@ -84,8 +84,8 @@ function register(app: express.Application) { app.use(`/${assetPath}/node_modules/mark.js/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/mark.js/dist/'))); - // Error and deprecated, https://www.npmjs.com/package/autocomplete.js?activeTab=readme - // app.use(`/${assetPath}/node_modules/autocomplete.js/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/autocomplete.js/dist/'))); + // Deprecated, https://www.npmjs.com/package/autocomplete.js?activeTab=readme + app.use(`/${assetPath}/node_modules/autocomplete.js/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/autocomplete.js/dist/'))); app.use(`/${assetPath}/node_modules/knockout/build/output/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/knockout/build/output/'))); @@ -94,6 +94,12 @@ function register(app: express.Application) { app.use(`/${assetPath}/node_modules/jquery.fancytree/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/jquery.fancytree/dist/'))); app.use(`/${assetPath}/node_modules/bootstrap/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/bootstrap/dist/'))); + + // CodeMirror + app.use(`/${assetPath}/node_modules/codemirror/lib/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/lib/'))); + app.use(`/${assetPath}/node_modules/codemirror/addon/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/addon/'))); + app.use(`/${assetPath}/node_modules/codemirror/mode/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/mode/'))); + app.use(`/${assetPath}/node_modules/codemirror/keymap/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/keymap/'))); } export default { diff --git a/src/views/desktop.ejs b/src/views/desktop.ejs index ba4a40cac..64135659a 100644 --- a/src/views/desktop.ejs +++ b/src/views/desktop.ejs @@ -60,7 +60,7 @@ - +