mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-21 18:55:19 -04:00
Lazy-load highlight.js
This commit moves the import of highlight.js into a `require.ensure` block, that is only executed when a code-block is actually present in a note. Webpack automatically splits the library into a separate chunk and loads that on demand. The call to `hljs.listLanguages()` in `index.js` is also replaced by a static list. This is important, as `index.js` would otherwise need to import highlight.js, which would cause the quite big library to be included into nearly every entrypoint, needlessly increasing the transferred code size. Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
5b8b76135b
commit
7ff685933e
3 changed files with 201 additions and 39 deletions
|
@ -18,7 +18,6 @@ import { ot } from '../vendor/ot/ot.min.js'
|
|||
import { saveAs } from 'file-saver'
|
||||
import randomColor from 'randomcolor'
|
||||
import store from 'store'
|
||||
import hljs from 'highlight.js'
|
||||
import url from 'wurl'
|
||||
import { Spinner } from 'spin.js'
|
||||
|
||||
|
@ -106,36 +105,198 @@ const cursorActivityDebounce = 50
|
|||
const cursorAnimatePeriod = 100
|
||||
const supportContainers = ['success', 'info', 'warning', 'danger']
|
||||
const supportCodeModes = [
|
||||
'javascript',
|
||||
'typescript',
|
||||
'jsx',
|
||||
'htmlmixed',
|
||||
'htmlembedded',
|
||||
'css',
|
||||
'xml',
|
||||
'clike',
|
||||
'1c',
|
||||
'abnf',
|
||||
'accesslog',
|
||||
'actionscript',
|
||||
'ada',
|
||||
'angelscript',
|
||||
'apache',
|
||||
'applescript',
|
||||
'arcade',
|
||||
'arduino',
|
||||
'armasm',
|
||||
'asciidoc',
|
||||
'aspectj',
|
||||
'autohotkey',
|
||||
'autoit',
|
||||
'avrasm',
|
||||
'awk',
|
||||
'axapta',
|
||||
'bash',
|
||||
'basic',
|
||||
'bnf',
|
||||
'brainfuck',
|
||||
'cal',
|
||||
'capnproto',
|
||||
'ceylon',
|
||||
'c',
|
||||
'clean',
|
||||
'c-like',
|
||||
'clojure',
|
||||
'ruby',
|
||||
'python',
|
||||
'shell',
|
||||
'php',
|
||||
'sql',
|
||||
'haskell',
|
||||
'coffeescript',
|
||||
'yaml',
|
||||
'pug',
|
||||
'lua',
|
||||
'clojure-repl',
|
||||
'cmake',
|
||||
'nginx',
|
||||
'perl',
|
||||
'sass',
|
||||
'r',
|
||||
'coffeescript',
|
||||
'coq',
|
||||
'cos',
|
||||
'cpp',
|
||||
'crmsh',
|
||||
'crystal',
|
||||
'csharp',
|
||||
'csp',
|
||||
'css',
|
||||
'dart',
|
||||
'delphi',
|
||||
'diff',
|
||||
'django',
|
||||
'd',
|
||||
'dns',
|
||||
'dockerfile',
|
||||
'tiddlywiki',
|
||||
'mediawiki',
|
||||
'dos',
|
||||
'dsconfig',
|
||||
'dts',
|
||||
'dust',
|
||||
'ebnf',
|
||||
'elixir',
|
||||
'elm',
|
||||
'erb',
|
||||
'erlang',
|
||||
'erlang-repl',
|
||||
'excel',
|
||||
'fix',
|
||||
'flix',
|
||||
'fortran',
|
||||
'fsharp',
|
||||
'gams',
|
||||
'gauss',
|
||||
'gcode',
|
||||
'gherkin',
|
||||
'glsl',
|
||||
'gml',
|
||||
'go',
|
||||
'gherkin'
|
||||
].concat(hljs.listLanguages())
|
||||
'golo',
|
||||
'gradle',
|
||||
'groovy',
|
||||
'haml',
|
||||
'handlebars',
|
||||
'haskell',
|
||||
'haxe',
|
||||
'hsp',
|
||||
'htmlbars',
|
||||
'http',
|
||||
'hy',
|
||||
'inform7',
|
||||
'ini',
|
||||
'irpf90',
|
||||
'isbl',
|
||||
'java',
|
||||
'javascript',
|
||||
'jboss-cli',
|
||||
'json',
|
||||
'julia',
|
||||
'julia-repl',
|
||||
'kotlin',
|
||||
'lasso',
|
||||
'latex',
|
||||
'ldif',
|
||||
'leaf',
|
||||
'less',
|
||||
'lisp',
|
||||
'livecodeserver',
|
||||
'livescript',
|
||||
'llvm',
|
||||
'lsl',
|
||||
'lua',
|
||||
'makefile',
|
||||
'markdown',
|
||||
'mathematica',
|
||||
'matlab',
|
||||
'maxima',
|
||||
'mel',
|
||||
'mercury',
|
||||
'mipsasm',
|
||||
'mizar',
|
||||
'mojolicious',
|
||||
'monkey',
|
||||
'moonscript',
|
||||
'n1ql',
|
||||
'nginx',
|
||||
'nim',
|
||||
'nix',
|
||||
'node-repl',
|
||||
'nsis',
|
||||
'objectivec',
|
||||
'ocaml',
|
||||
'openscad',
|
||||
'oxygene',
|
||||
'parser3',
|
||||
'perl',
|
||||
'pf',
|
||||
'pgsql',
|
||||
'php',
|
||||
'php-template',
|
||||
'plaintext',
|
||||
'pony',
|
||||
'powershell',
|
||||
'processing',
|
||||
'profile',
|
||||
'prolog',
|
||||
'properties',
|
||||
'protobuf',
|
||||
'puppet',
|
||||
'purebasic',
|
||||
'python',
|
||||
'python-repl',
|
||||
'q',
|
||||
'qml',
|
||||
'reasonml',
|
||||
'rib',
|
||||
'r',
|
||||
'roboconf',
|
||||
'routeros',
|
||||
'rsl',
|
||||
'ruby',
|
||||
'ruleslanguage',
|
||||
'rust',
|
||||
'sas',
|
||||
'scala',
|
||||
'scheme',
|
||||
'scilab',
|
||||
'scss',
|
||||
'shell',
|
||||
'smali',
|
||||
'smalltalk',
|
||||
'sml',
|
||||
'sqf',
|
||||
'sql',
|
||||
'sql_more',
|
||||
'stan',
|
||||
'stata',
|
||||
'step21',
|
||||
'stylus',
|
||||
'subunit',
|
||||
'swift',
|
||||
'taggerscript',
|
||||
'tap',
|
||||
'tcl',
|
||||
'thrift',
|
||||
'tp',
|
||||
'twig',
|
||||
'typescript',
|
||||
'vala',
|
||||
'vbnet',
|
||||
'vbscript-html',
|
||||
'vbscript',
|
||||
'verilog',
|
||||
'vhdl',
|
||||
'vim',
|
||||
'x86asm',
|
||||
'xl',
|
||||
'xml',
|
||||
'xquery',
|
||||
'yaml',
|
||||
'zephir'
|
||||
]
|
||||
const supportCharts = ['sequence', 'flow', 'graphviz', 'mermaid', 'abc']
|
||||
const supportHeaders = [
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue