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 @@
-
+