Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-07-01 17:46:55 +0300
committerJulius Härtl <jus@bitgrid.net>2019-07-02 09:21:50 +0300
commit2ffdbe9cfb13419bb189497392dd8255e6a6a1fc (patch)
treee05e4bb83428dfc3472aef3da28c44f1aae28cf3 /src/EditorFactory.js
parentd85640fa6ffc6ffe277830580ab693e069ea088b (diff)
Make syntax loading dynamic
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'src/EditorFactory.js')
-rw-r--r--src/EditorFactory.js23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/EditorFactory.js b/src/EditorFactory.js
index 2026a56c8..adbafbaa1 100644
--- a/src/EditorFactory.js
+++ b/src/EditorFactory.js
@@ -39,10 +39,21 @@ import { Image, PlainTextDocument } from './nodes'
import MarkdownIt from 'markdown-it'
import { MarkdownSerializer, defaultMarkdownSerializer } from 'prosemirror-markdown'
-import cpp from 'highlight.js/lib/languages/cpp'
-import javascript from 'highlight.js/lib/languages/javascript'
-import css from 'highlight.js/lib/languages/css'
-const createEditor = ({ content, onUpdate, extensions, enableRichEditing }) => {
+
+const loadSyntaxHighlight = async (languages) => {
+ let modules = {}
+ for (let i = 0; i < languages.length; i++) {
+ const lang = await import('highlight.js/lib/languages/' + languages[i])
+ modules[languages[i]] = lang.default
+ }
+ if (Object.keys(modules).length === 0 && modules.constructor === Object) {
+ return undefined
+ }
+ return { languages: modules }
+}
+
+const createEditor = async ({ content, onUpdate, extensions, enableRichEditing, languages }) => {
+ const highlight = await loadSyntaxHighlight(languages)
let richEditingExtensions = []
if (enableRichEditing) {
richEditingExtensions = [
@@ -66,9 +77,7 @@ const createEditor = ({ content, onUpdate, extensions, enableRichEditing }) => {
new PlainTextDocument(),
new Text(),
new CodeBlockHighlight({
- languages: {
- cpp, css, javascript
- }
+ ...highlight
})
]
}