From 5ee00dfe506ca41505c554c77f9c84ea873475ef Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Thu, 30 Jan 2020 19:54:17 -0300 Subject: [PATCH] [FIX] Highlight freezing the UI (#16378) --- app/markdown/lib/hljs.js | 371 +++++++++++++++++++++++ app/markdown/lib/parser/marked/marked.js | 2 +- app/markdown/lib/parser/original/code.js | 3 +- app/markdown/tests/client.tests.js | 8 +- client/startup/startup.js | 2 +- package-lock.json | 6 +- package.json | 2 +- 7 files changed, 383 insertions(+), 11 deletions(-) create mode 100644 app/markdown/lib/hljs.js diff --git a/app/markdown/lib/hljs.js b/app/markdown/lib/hljs.js new file mode 100644 index 00000000000..1873a07ed98 --- /dev/null +++ b/app/markdown/lib/hljs.js @@ -0,0 +1,371 @@ +import hljs from 'highlight.js/lib/highlight'; +import onec from 'highlight.js/lib/languages/1c'; +import abnf from 'highlight.js/lib/languages/abnf'; +import accesslog from 'highlight.js/lib/languages/accesslog'; +import actionscript from 'highlight.js/lib/languages/actionscript'; +import ada from 'highlight.js/lib/languages/ada'; +import angelscript from 'highlight.js/lib/languages/angelscript'; +import apache from 'highlight.js/lib/languages/apache'; +import applescript from 'highlight.js/lib/languages/applescript'; +import arcade from 'highlight.js/lib/languages/arcade'; +import cpp from 'highlight.js/lib/languages/cpp'; +import arduino from 'highlight.js/lib/languages/arduino'; +import armasm from 'highlight.js/lib/languages/armasm'; +import xml from 'highlight.js/lib/languages/xml'; +import asciidoc from 'highlight.js/lib/languages/asciidoc'; +import aspectj from 'highlight.js/lib/languages/aspectj'; +import autohotkey from 'highlight.js/lib/languages/autohotkey'; +import autoit from 'highlight.js/lib/languages/autoit'; +import avrasm from 'highlight.js/lib/languages/avrasm'; +import awk from 'highlight.js/lib/languages/awk'; +import axapta from 'highlight.js/lib/languages/axapta'; +import bash from 'highlight.js/lib/languages/bash'; +import basic from 'highlight.js/lib/languages/basic'; +import bnf from 'highlight.js/lib/languages/bnf'; +import brainfuck from 'highlight.js/lib/languages/brainfuck'; +import cal from 'highlight.js/lib/languages/cal'; +import capnproto from 'highlight.js/lib/languages/capnproto'; +import ceylon from 'highlight.js/lib/languages/ceylon'; +import clean from 'highlight.js/lib/languages/clean'; +import clojure from 'highlight.js/lib/languages/clojure'; +import clojureRepl from 'highlight.js/lib/languages/clojure-repl'; +import cmake from 'highlight.js/lib/languages/cmake'; +import coq from 'highlight.js/lib/languages/coq'; +import cos from 'highlight.js/lib/languages/cos'; +import crmsh from 'highlight.js/lib/languages/crmsh'; +import crystal from 'highlight.js/lib/languages/crystal'; +import cs from 'highlight.js/lib/languages/cs'; +import csp from 'highlight.js/lib/languages/csp'; +import css from 'highlight.js/lib/languages/css'; +import d from 'highlight.js/lib/languages/d'; +import markdown from 'highlight.js/lib/languages/markdown'; +import dart from 'highlight.js/lib/languages/dart'; +import delphi from 'highlight.js/lib/languages/delphi'; +import diff from 'highlight.js/lib/languages/diff'; +import django from 'highlight.js/lib/languages/django'; +import dns from 'highlight.js/lib/languages/dns'; +import dockerfile from 'highlight.js/lib/languages/dockerfile'; +import dos from 'highlight.js/lib/languages/dos'; +import dsconfig from 'highlight.js/lib/languages/dsconfig'; +import dts from 'highlight.js/lib/languages/dts'; +import dust from 'highlight.js/lib/languages/dust'; +import ebnf from 'highlight.js/lib/languages/ebnf'; +import elixir from 'highlight.js/lib/languages/elixir'; +import elm from 'highlight.js/lib/languages/elm'; +import ruby from 'highlight.js/lib/languages/ruby'; +import erb from 'highlight.js/lib/languages/erb'; +import erlangRepl from 'highlight.js/lib/languages/erlang-repl'; +import erlang from 'highlight.js/lib/languages/erlang'; +import excel from 'highlight.js/lib/languages/excel'; +import fix from 'highlight.js/lib/languages/fix'; +import flix from 'highlight.js/lib/languages/flix'; +import fortran from 'highlight.js/lib/languages/fortran'; +import fsharp from 'highlight.js/lib/languages/fsharp'; +import gams from 'highlight.js/lib/languages/gams'; +import gauss from 'highlight.js/lib/languages/gauss'; +import gcode from 'highlight.js/lib/languages/gcode'; +import gherkin from 'highlight.js/lib/languages/gherkin'; +import glsl from 'highlight.js/lib/languages/glsl'; +import gml from 'highlight.js/lib/languages/gml'; +import go from 'highlight.js/lib/languages/go'; +import golo from 'highlight.js/lib/languages/golo'; +import gradle from 'highlight.js/lib/languages/gradle'; +import groovy from 'highlight.js/lib/languages/groovy'; +import haml from 'highlight.js/lib/languages/haml'; +import handlebars from 'highlight.js/lib/languages/handlebars'; +import haskell from 'highlight.js/lib/languages/haskell'; +import haxe from 'highlight.js/lib/languages/haxe'; +import hsp from 'highlight.js/lib/languages/hsp'; +import htmlbars from 'highlight.js/lib/languages/htmlbars'; +import http from 'highlight.js/lib/languages/http'; +import hy from 'highlight.js/lib/languages/hy'; +import inform7 from 'highlight.js/lib/languages/inform7'; +import ini from 'highlight.js/lib/languages/ini'; +import irpf90 from 'highlight.js/lib/languages/irpf90'; +import isbl from 'highlight.js/lib/languages/isbl'; +import java from 'highlight.js/lib/languages/java'; +import javascript from 'highlight.js/lib/languages/javascript'; +import jbossCli from 'highlight.js/lib/languages/jboss-cli'; +import json from 'highlight.js/lib/languages/json'; +import julia from 'highlight.js/lib/languages/julia'; +import juliaRepl from 'highlight.js/lib/languages/julia-repl'; +import kotlin from 'highlight.js/lib/languages/kotlin'; +import lasso from 'highlight.js/lib/languages/lasso'; +import ldif from 'highlight.js/lib/languages/ldif'; +import leaf from 'highlight.js/lib/languages/leaf'; +import less from 'highlight.js/lib/languages/less'; +import lisp from 'highlight.js/lib/languages/lisp'; +import livecodeserver from 'highlight.js/lib/languages/livecodeserver'; +import llvm from 'highlight.js/lib/languages/llvm'; +import lsl from 'highlight.js/lib/languages/lsl'; +import lua from 'highlight.js/lib/languages/lua'; +import makefile from 'highlight.js/lib/languages/makefile'; +import mathematica from 'highlight.js/lib/languages/mathematica'; +import matlab from 'highlight.js/lib/languages/matlab'; +import maxima from 'highlight.js/lib/languages/maxima'; +import mel from 'highlight.js/lib/languages/mel'; +import mercury from 'highlight.js/lib/languages/mercury'; +import mipsasm from 'highlight.js/lib/languages/mipsasm'; +import mizar from 'highlight.js/lib/languages/mizar'; +import perl from 'highlight.js/lib/languages/perl'; +import mojolicious from 'highlight.js/lib/languages/mojolicious'; +import monkey from 'highlight.js/lib/languages/monkey'; +import moonscript from 'highlight.js/lib/languages/moonscript'; +import n1ql from 'highlight.js/lib/languages/n1ql'; +import nginx from 'highlight.js/lib/languages/nginx'; +import nimrod from 'highlight.js/lib/languages/nimrod'; +import nix from 'highlight.js/lib/languages/nix'; +import nsis from 'highlight.js/lib/languages/nsis'; +import objectivec from 'highlight.js/lib/languages/objectivec'; +import ocaml from 'highlight.js/lib/languages/ocaml'; +import openscad from 'highlight.js/lib/languages/openscad'; +import oxygene from 'highlight.js/lib/languages/oxygene'; +import parser3 from 'highlight.js/lib/languages/parser3'; +import pf from 'highlight.js/lib/languages/pf'; +import pgsql from 'highlight.js/lib/languages/pgsql'; +import php from 'highlight.js/lib/languages/php'; +import plaintext from 'highlight.js/lib/languages/plaintext'; +import pony from 'highlight.js/lib/languages/pony'; +import powershell from 'highlight.js/lib/languages/powershell'; +import processing from 'highlight.js/lib/languages/processing'; +import profile from 'highlight.js/lib/languages/profile'; +import prolog from 'highlight.js/lib/languages/prolog'; +import properties from 'highlight.js/lib/languages/properties'; +import protobuf from 'highlight.js/lib/languages/protobuf'; +import puppet from 'highlight.js/lib/languages/puppet'; +import purebasic from 'highlight.js/lib/languages/purebasic'; +import python from 'highlight.js/lib/languages/python'; +import q from 'highlight.js/lib/languages/q'; +import qml from 'highlight.js/lib/languages/qml'; +import r from 'highlight.js/lib/languages/r'; +import reasonml from 'highlight.js/lib/languages/reasonml'; +import rib from 'highlight.js/lib/languages/rib'; +import roboconf from 'highlight.js/lib/languages/roboconf'; +import routeros from 'highlight.js/lib/languages/routeros'; +import rsl from 'highlight.js/lib/languages/rsl'; +import ruleslanguage from 'highlight.js/lib/languages/ruleslanguage'; +import rust from 'highlight.js/lib/languages/rust'; +import sas from 'highlight.js/lib/languages/sas'; +import scala from 'highlight.js/lib/languages/scala'; +import scheme from 'highlight.js/lib/languages/scheme'; +import scilab from 'highlight.js/lib/languages/scilab'; +import scss from 'highlight.js/lib/languages/scss'; +import shell from 'highlight.js/lib/languages/shell'; +import smali from 'highlight.js/lib/languages/smali'; +import smalltalk from 'highlight.js/lib/languages/smalltalk'; +import sml from 'highlight.js/lib/languages/sml'; +import sqf from 'highlight.js/lib/languages/sqf'; +import sql from 'highlight.js/lib/languages/sql'; +import stan from 'highlight.js/lib/languages/stan'; +import stata from 'highlight.js/lib/languages/stata'; +import step21 from 'highlight.js/lib/languages/step21'; +import stylus from 'highlight.js/lib/languages/stylus'; +import subunit from 'highlight.js/lib/languages/subunit'; +import swift from 'highlight.js/lib/languages/swift'; +import taggerscript from 'highlight.js/lib/languages/taggerscript'; +import yaml from 'highlight.js/lib/languages/yaml'; +import tap from 'highlight.js/lib/languages/tap'; +import tcl from 'highlight.js/lib/languages/tcl'; +import tex from 'highlight.js/lib/languages/tex'; +import thrift from 'highlight.js/lib/languages/thrift'; +import tp from 'highlight.js/lib/languages/tp'; +import twig from 'highlight.js/lib/languages/twig'; +import typescript from 'highlight.js/lib/languages/typescript'; +import vala from 'highlight.js/lib/languages/vala'; +import vbnet from 'highlight.js/lib/languages/vbnet'; +import vbscript from 'highlight.js/lib/languages/vbscript'; +import vbscriptHtml from 'highlight.js/lib/languages/vbscript-html'; +import verilog from 'highlight.js/lib/languages/verilog'; +import vhdl from 'highlight.js/lib/languages/vhdl'; +import vim from 'highlight.js/lib/languages/vim'; +import x86asm from 'highlight.js/lib/languages/x86asm'; +import xl from 'highlight.js/lib/languages/xl'; +import xquery from 'highlight.js/lib/languages/xquery'; +import zephir from 'highlight.js/lib/languages/zephir'; + +hljs.registerLanguage('1c', onec); +hljs.registerLanguage('abnf', abnf); +hljs.registerLanguage('accesslog', accesslog); +hljs.registerLanguage('actionscript', actionscript); +hljs.registerLanguage('ada', ada); +hljs.registerLanguage('angelscript', angelscript); +hljs.registerLanguage('apache', apache); +hljs.registerLanguage('applescript', applescript); +hljs.registerLanguage('arcade', arcade); +hljs.registerLanguage('cpp', cpp); +hljs.registerLanguage('arduino', arduino); +hljs.registerLanguage('armasm', armasm); +hljs.registerLanguage('xml', xml); +hljs.registerLanguage('asciidoc', asciidoc); +hljs.registerLanguage('aspectj', aspectj); +hljs.registerLanguage('autohotkey', autohotkey); +hljs.registerLanguage('autoit', autoit); +hljs.registerLanguage('avrasm', avrasm); +hljs.registerLanguage('awk', awk); +hljs.registerLanguage('axapta', axapta); +hljs.registerLanguage('bash', bash); +hljs.registerLanguage('basic', basic); +hljs.registerLanguage('bnf', bnf); +hljs.registerLanguage('brainfuck', brainfuck); +hljs.registerLanguage('cal', cal); +hljs.registerLanguage('capnproto', capnproto); +hljs.registerLanguage('ceylon', ceylon); +hljs.registerLanguage('clean', clean); +hljs.registerLanguage('clojure', clojure); +hljs.registerLanguage('clojure-repl', clojureRepl); +hljs.registerLanguage('cmake', cmake); +hljs.registerLanguage('coq', coq); +hljs.registerLanguage('cos', cos); +hljs.registerLanguage('crmsh', crmsh); +hljs.registerLanguage('crystal', crystal); +hljs.registerLanguage('cs', cs); +hljs.registerLanguage('csp', csp); +hljs.registerLanguage('css', css); +hljs.registerLanguage('d', d); +hljs.registerLanguage('markdown', markdown); +hljs.registerLanguage('dart', dart); +hljs.registerLanguage('delphi', delphi); +hljs.registerLanguage('diff', diff); +hljs.registerLanguage('django', django); +hljs.registerLanguage('dns', dns); +hljs.registerLanguage('dockerfile', dockerfile); +hljs.registerLanguage('dos', dos); +hljs.registerLanguage('dsconfig', dsconfig); +hljs.registerLanguage('dts', dts); +hljs.registerLanguage('dust', dust); +hljs.registerLanguage('ebnf', ebnf); +hljs.registerLanguage('elixir', elixir); +hljs.registerLanguage('elm', elm); +hljs.registerLanguage('ruby', ruby); +hljs.registerLanguage('erb', erb); +hljs.registerLanguage('erlang-repl', erlangRepl); +hljs.registerLanguage('erlang', erlang); +hljs.registerLanguage('excel', excel); +hljs.registerLanguage('fix', fix); +hljs.registerLanguage('flix', flix); +hljs.registerLanguage('fortran', fortran); +hljs.registerLanguage('fsharp', fsharp); +hljs.registerLanguage('gams', gams); +hljs.registerLanguage('gauss', gauss); +hljs.registerLanguage('gcode', gcode); +hljs.registerLanguage('gherkin', gherkin); +hljs.registerLanguage('glsl', glsl); +hljs.registerLanguage('gml', gml); +hljs.registerLanguage('go', go); +hljs.registerLanguage('golo', golo); +hljs.registerLanguage('gradle', gradle); +hljs.registerLanguage('groovy', groovy); +hljs.registerLanguage('haml', haml); +hljs.registerLanguage('handlebars', handlebars); +hljs.registerLanguage('haskell', haskell); +hljs.registerLanguage('haxe', haxe); +hljs.registerLanguage('hsp', hsp); +hljs.registerLanguage('htmlbars', htmlbars); +hljs.registerLanguage('http', http); +hljs.registerLanguage('hy', hy); +hljs.registerLanguage('inform7', inform7); +hljs.registerLanguage('ini', ini); +hljs.registerLanguage('irpf90', irpf90); +hljs.registerLanguage('isbl', isbl); +hljs.registerLanguage('java', java); +hljs.registerLanguage('javascript', javascript); +hljs.registerLanguage('jboss-cli', jbossCli); +hljs.registerLanguage('json', json); +hljs.registerLanguage('julia', julia); +hljs.registerLanguage('julia-repl', juliaRepl); +hljs.registerLanguage('kotlin', kotlin); +hljs.registerLanguage('lasso', lasso); +hljs.registerLanguage('ldif', ldif); +hljs.registerLanguage('leaf', leaf); +hljs.registerLanguage('less', less); +hljs.registerLanguage('lisp', lisp); +hljs.registerLanguage('livecodeserver', livecodeserver); +hljs.registerLanguage('llvm', llvm); +hljs.registerLanguage('lsl', lsl); +hljs.registerLanguage('lua', lua); +hljs.registerLanguage('makefile', makefile); +hljs.registerLanguage('mathematica', mathematica); +hljs.registerLanguage('matlab', matlab); +hljs.registerLanguage('maxima', maxima); +hljs.registerLanguage('mel', mel); +hljs.registerLanguage('mercury', mercury); +hljs.registerLanguage('mipsasm', mipsasm); +hljs.registerLanguage('mizar', mizar); +hljs.registerLanguage('perl', perl); +hljs.registerLanguage('mojolicious', mojolicious); +hljs.registerLanguage('monkey', monkey); +hljs.registerLanguage('moonscript', moonscript); +hljs.registerLanguage('n1ql', n1ql); +hljs.registerLanguage('nginx', nginx); +hljs.registerLanguage('nimrod', nimrod); +hljs.registerLanguage('nix', nix); +hljs.registerLanguage('nsis', nsis); +hljs.registerLanguage('objectivec', objectivec); +hljs.registerLanguage('ocaml', ocaml); +hljs.registerLanguage('openscad', openscad); +hljs.registerLanguage('oxygene', oxygene); +hljs.registerLanguage('parser3', parser3); +hljs.registerLanguage('pf', pf); +hljs.registerLanguage('pgsql', pgsql); +hljs.registerLanguage('php', php); +hljs.registerLanguage('plaintext', plaintext); +hljs.registerLanguage('pony', pony); +hljs.registerLanguage('powershell', powershell); +hljs.registerLanguage('processing', processing); +hljs.registerLanguage('profile', profile); +hljs.registerLanguage('prolog', prolog); +hljs.registerLanguage('properties', properties); +hljs.registerLanguage('protobuf', protobuf); +hljs.registerLanguage('puppet', puppet); +hljs.registerLanguage('purebasic', purebasic); +hljs.registerLanguage('python', python); +hljs.registerLanguage('q', q); +hljs.registerLanguage('qml', qml); +hljs.registerLanguage('r', r); + +hljs.registerLanguage('reasonml', reasonml); +hljs.registerLanguage('rib', rib); +hljs.registerLanguage('roboconf', roboconf); +hljs.registerLanguage('routeros', routeros); +hljs.registerLanguage('rsl', rsl); +hljs.registerLanguage('ruleslanguage', ruleslanguage); +hljs.registerLanguage('rust', rust); +hljs.registerLanguage('sas', sas); +hljs.registerLanguage('scala', scala); +hljs.registerLanguage('scheme', scheme); +hljs.registerLanguage('scilab', scilab); +hljs.registerLanguage('scss', scss); +hljs.registerLanguage('shell', shell); +hljs.registerLanguage('smali', smali); +hljs.registerLanguage('smalltalk', smalltalk); +hljs.registerLanguage('sml', sml); +hljs.registerLanguage('sqf', sqf); +hljs.registerLanguage('sql', sql); +hljs.registerLanguage('stan', stan); +hljs.registerLanguage('stata', stata); +hljs.registerLanguage('step21', step21); +hljs.registerLanguage('stylus', stylus); +hljs.registerLanguage('subunit', subunit); +hljs.registerLanguage('swift', swift); +hljs.registerLanguage('taggerscript', taggerscript); +hljs.registerLanguage('yaml', yaml); +hljs.registerLanguage('tap', tap); +hljs.registerLanguage('tcl', tcl); +hljs.registerLanguage('tex', tex); +hljs.registerLanguage('thrift', thrift); +hljs.registerLanguage('tp', tp); +hljs.registerLanguage('twig', twig); +hljs.registerLanguage('typescript', typescript); +hljs.registerLanguage('vala', vala); +hljs.registerLanguage('vbnet', vbnet); +hljs.registerLanguage('vbscript', vbscript); +hljs.registerLanguage('vbscript-html', vbscriptHtml); +hljs.registerLanguage('verilog', verilog); +hljs.registerLanguage('vhdl', vhdl); +hljs.registerLanguage('vim', vim); +hljs.registerLanguage('x86asm', x86asm); +hljs.registerLanguage('xl', xl); +hljs.registerLanguage('xquery', xquery); +hljs.registerLanguage('zephir', zephir); + +export default hljs; diff --git a/app/markdown/lib/parser/marked/marked.js b/app/markdown/lib/parser/marked/marked.js index c9d10189c6f..0404d20a1c3 100644 --- a/app/markdown/lib/parser/marked/marked.js +++ b/app/markdown/lib/parser/marked/marked.js @@ -1,9 +1,9 @@ import { Random } from 'meteor/random'; import _ from 'underscore'; import s from 'underscore.string'; -import hljs from 'highlight.js'; import _marked from 'marked'; +import hljs from '../../hljs'; import { settings } from '../../../../settings'; const renderer = new _marked.Renderer(); diff --git a/app/markdown/lib/parser/original/code.js b/app/markdown/lib/parser/original/code.js index 7a061858055..1805dc8f419 100644 --- a/app/markdown/lib/parser/original/code.js +++ b/app/markdown/lib/parser/original/code.js @@ -4,7 +4,8 @@ */ import { Random } from 'meteor/random'; import s from 'underscore.string'; -import hljs from 'highlight.js'; + +import hljs from '../../hljs'; const inlinecode = (message) => { // Support `text` diff --git a/app/markdown/tests/client.tests.js b/app/markdown/tests/client.tests.js index 9ca2a0e6a7a..808eaddf918 100644 --- a/app/markdown/tests/client.tests.js +++ b/app/markdown/tests/client.tests.js @@ -214,10 +214,10 @@ const inlinecode = { const code = { '```code```': codeWrapper('code', 'clean'), - '```code': codeWrapper('code\n', 'stylus'), - '```code\n': codeWrapper('code\n', 'stylus'), - '```\ncode\n```': codeWrapper('code\n', 'stylus'), - '```code\n```': codeWrapper('code\n', 'stylus'), + '```code': codeWrapper('code\n', 'clean'), + '```code\n': codeWrapper('code\n', 'clean'), + '```\ncode\n```': codeWrapper('code\n', 'clean'), + '```code\n```': codeWrapper('code\n', 'clean'), '```\ncode```': codeWrapper('code', 'clean'), '```javascript\nvar a = \'log\';\nconsole.log(a);```': codeWrapper('var a = \'log\';\nconsole.log(a);', 'javascript'), '```*code*```': codeWrapper('*code*', 'armasm'), diff --git a/client/startup/startup.js b/client/startup/startup.js index 033251dbb75..9a33fde9083 100644 --- a/client/startup/startup.js +++ b/client/startup/startup.js @@ -4,8 +4,8 @@ import { Session } from 'meteor/session'; import { TimeSync } from 'meteor/mizzao:timesync'; import { UserPresence } from 'meteor/konecty:user-presence'; import toastr from 'toastr'; -import hljs from 'highlight.js'; +import hljs from '../../app/markdown/lib/hljs'; import { fireGlobalEvent } from '../../app/ui-utils'; import { getUserPreference } from '../../app/utils'; import 'highlight.js/styles/github.css'; diff --git a/package-lock.json b/package-lock.json index 0812d1cec6a..981a915d487 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19918,9 +19918,9 @@ } }, "highlight.js": { - "version": "9.13.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", - "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==" + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.0.tgz", + "integrity": "sha512-A97kI1KAUzKoAiEoaGcf2O9YPS8nbDTCRFokaaeBhnqjQTvbAuAJrQMm21zw8s8xzaMtCQBtgbyGXLGxdxQyqQ==" }, "history": { "version": "4.10.1", diff --git a/package.json b/package.json index b722b11da0b..af8d7ca758f 100644 --- a/package.json +++ b/package.json @@ -162,7 +162,7 @@ "grapheme-splitter": "^1.0.4", "gridfs-stream": "^1.1.1", "he": "^1.2.0", - "highlight.js": "^9.13.1", + "highlight.js": "^9.18.0", "iconv-lite": "^0.4.24", "image-size": "^0.6.3", "imap": "^0.8.19",