Merge pull request #1370 from hedgedoc/feature/lazy_load
This commit is contained in:
		
						commit
						66bdbc1f43
					
				@ -40,7 +40,6 @@
 | 
				
			|||||||
    "file-type": "^16.1.0",
 | 
					    "file-type": "^16.1.0",
 | 
				
			||||||
    "formidable": "^1.0.17",
 | 
					    "formidable": "^1.0.17",
 | 
				
			||||||
    "graceful-fs": "^4.1.11",
 | 
					    "graceful-fs": "^4.1.11",
 | 
				
			||||||
    "handlebars": "^4.5.2",
 | 
					 | 
				
			||||||
    "helmet": "^4.5.0",
 | 
					    "helmet": "^4.5.0",
 | 
				
			||||||
    "i18n": "^0.13.0",
 | 
					    "i18n": "^0.13.0",
 | 
				
			||||||
    "is-svg": "^4.3.1",
 | 
					    "is-svg": "^4.3.1",
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,6 @@
 | 
				
			|||||||
/* global moment, serverurl */
 | 
					/* global moment, serverurl */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Prism from 'prismjs'
 | 
					import Prism from 'prismjs'
 | 
				
			||||||
import hljs from 'highlight.js'
 | 
					 | 
				
			||||||
import PDFObject from 'pdfobject'
 | 
					import PDFObject from 'pdfobject'
 | 
				
			||||||
import S from 'string'
 | 
					import S from 'string'
 | 
				
			||||||
import { saveAs } from 'file-saver'
 | 
					import { saveAs } from 'file-saver'
 | 
				
			||||||
@ -17,10 +16,7 @@ import markdownitContainer from 'markdown-it-container'
 | 
				
			|||||||
/* Defined regex markdown it plugins */
 | 
					/* Defined regex markdown it plugins */
 | 
				
			||||||
import Plugin from 'markdown-it-regexp'
 | 
					import Plugin from 'markdown-it-regexp'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mermaid from 'mermaid'
 | 
					 | 
				
			||||||
import handlebars from 'handlebars'
 | 
					 | 
				
			||||||
import 'gist-embed'
 | 
					import 'gist-embed'
 | 
				
			||||||
import abcjs from 'abcjs'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
require('prismjs/themes/prism.css')
 | 
					require('prismjs/themes/prism.css')
 | 
				
			||||||
require('prismjs/components/prism-wiki')
 | 
					require('prismjs/components/prism-wiki')
 | 
				
			||||||
@ -34,7 +30,6 @@ require('prismjs/components/prism-gherkin')
 | 
				
			|||||||
require('./lib/common/login')
 | 
					require('./lib/common/login')
 | 
				
			||||||
require('./locale')
 | 
					require('./locale')
 | 
				
			||||||
require('../vendor/md-toc')
 | 
					require('../vendor/md-toc')
 | 
				
			||||||
const Viz = require('viz.js')
 | 
					 | 
				
			||||||
const ui = getUIElements()
 | 
					const ui = getUIElements()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// auto update last change
 | 
					// auto update last change
 | 
				
			||||||
@ -253,8 +248,6 @@ function replaceExtraTags (html) {
 | 
				
			|||||||
  return html
 | 
					  return html
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mermaid.startOnLoad = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// dynamic event or object binding here
 | 
					// dynamic event or object binding here
 | 
				
			||||||
export function finishView (view) {
 | 
					export function finishView (view) {
 | 
				
			||||||
  // todo list
 | 
					  // todo list
 | 
				
			||||||
@ -372,13 +365,15 @@ export function finishView (view) {
 | 
				
			|||||||
    try {
 | 
					    try {
 | 
				
			||||||
      $value = $(value)
 | 
					      $value = $(value)
 | 
				
			||||||
      const $ele = $(value).parent().parent()
 | 
					      const $ele = $(value).parent().parent()
 | 
				
			||||||
 | 
					      require.ensure([], function (require) {
 | 
				
			||||||
 | 
					        const Viz = require('viz.js')
 | 
				
			||||||
 | 
					        const graphviz = Viz($value.text())
 | 
				
			||||||
 | 
					        if (!graphviz) throw Error('viz.js output empty graph')
 | 
				
			||||||
 | 
					        $value.html(graphviz)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const graphviz = Viz($value.text())
 | 
					        $ele.addClass('graphviz')
 | 
				
			||||||
      if (!graphviz) throw Error('viz.js output empty graph')
 | 
					        $value.children().unwrap().unwrap()
 | 
				
			||||||
      $value.html(graphviz)
 | 
					      })
 | 
				
			||||||
 | 
					 | 
				
			||||||
      $ele.addClass('graphviz')
 | 
					 | 
				
			||||||
      $value.children().unwrap().unwrap()
 | 
					 | 
				
			||||||
    } catch (err) {
 | 
					    } catch (err) {
 | 
				
			||||||
      $value.unwrap()
 | 
					      $value.unwrap()
 | 
				
			||||||
      $value.parent().append(`<div class="alert alert-warning">${escapeHTML(err)}</div>`)
 | 
					      $value.parent().append(`<div class="alert alert-warning">${escapeHTML(err)}</div>`)
 | 
				
			||||||
@ -388,25 +383,26 @@ export function finishView (view) {
 | 
				
			|||||||
  // mermaid
 | 
					  // mermaid
 | 
				
			||||||
  const mermaids = view.find('div.mermaid.raw').removeClass('raw')
 | 
					  const mermaids = view.find('div.mermaid.raw').removeClass('raw')
 | 
				
			||||||
  mermaids.each((key, value) => {
 | 
					  mermaids.each((key, value) => {
 | 
				
			||||||
    let $value
 | 
					    const $value = $(value)
 | 
				
			||||||
    try {
 | 
					    const $ele = $(value).closest('pre')
 | 
				
			||||||
      $value = $(value)
 | 
					    require.ensure([], function (require) {
 | 
				
			||||||
      const $ele = $(value).closest('pre')
 | 
					      try {
 | 
				
			||||||
 | 
					        const mermaid = require('mermaid')
 | 
				
			||||||
      mermaid.mermaidAPI.parse($value.text())
 | 
					        mermaid.startOnLoad = false
 | 
				
			||||||
      $ele.addClass('mermaid')
 | 
					        mermaid.mermaidAPI.parse($value.text())
 | 
				
			||||||
      $ele.text($value.text())
 | 
					        $ele.addClass('mermaid')
 | 
				
			||||||
      mermaid.init(undefined, $ele)
 | 
					        $ele.text($value.text())
 | 
				
			||||||
    } catch (err) {
 | 
					        mermaid.init(undefined, $ele)
 | 
				
			||||||
      let errormessage = err
 | 
					      } catch (err) {
 | 
				
			||||||
      if (err.str) {
 | 
					        let errormessage = err
 | 
				
			||||||
        errormessage = err.str
 | 
					        if (err.str) {
 | 
				
			||||||
 | 
					          errormessage = err.str
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        $value.unwrap()
 | 
				
			||||||
 | 
					        $value.parent().append(`<div class="alert alert-warning">${escapeHTML(errormessage)}</div>`)
 | 
				
			||||||
 | 
					        console.warn(errormessage)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
      $value.unwrap()
 | 
					 | 
				
			||||||
      $value.parent().append(`<div class="alert alert-warning">${escapeHTML(errormessage)}</div>`)
 | 
					 | 
				
			||||||
      console.warn(errormessage)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
  // abc.js
 | 
					  // abc.js
 | 
				
			||||||
  const abcs = view.find('div.abc.raw').removeClass('raw')
 | 
					  const abcs = view.find('div.abc.raw').removeClass('raw')
 | 
				
			||||||
@ -415,14 +411,15 @@ export function finishView (view) {
 | 
				
			|||||||
    try {
 | 
					    try {
 | 
				
			||||||
      $value = $(value)
 | 
					      $value = $(value)
 | 
				
			||||||
      const $ele = $(value).parent().parent()
 | 
					      const $ele = $(value).parent().parent()
 | 
				
			||||||
 | 
					      require.ensure([], function (require) {
 | 
				
			||||||
      abcjs.renderAbc(value, $value.text())
 | 
					        const abcjs = require('abcjs')
 | 
				
			||||||
 | 
					        abcjs.renderAbc(value, $value.text())
 | 
				
			||||||
      $ele.addClass('abc')
 | 
					        $ele.addClass('abc')
 | 
				
			||||||
      $value.children().unwrap().unwrap()
 | 
					        $value.children().unwrap().unwrap()
 | 
				
			||||||
      const svg = $ele.find('> svg')
 | 
					        const svg = $ele.find('> svg')
 | 
				
			||||||
      svg[0].setAttribute('viewBox', `0 0 ${svg.attr('width')} ${svg.attr('height')}`)
 | 
					        svg[0].setAttribute('viewBox', `0 0 ${svg.attr('width')} ${svg.attr('height')}`)
 | 
				
			||||||
      svg[0].setAttribute('preserveAspectRatio', 'xMidYMid meet')
 | 
					        svg[0].setAttribute('preserveAspectRatio', 'xMidYMid meet')
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
    } catch (err) {
 | 
					    } catch (err) {
 | 
				
			||||||
      $value.unwrap()
 | 
					      $value.unwrap()
 | 
				
			||||||
      $value.parent().append(`<div class="alert alert-warning">${escapeHTML(err)}</div>`)
 | 
					      $value.parent().append(`<div class="alert alert-warning">${escapeHTML(err)}</div>`)
 | 
				
			||||||
@ -499,6 +496,9 @@ export function finishView (view) {
 | 
				
			|||||||
      const langDiv = $(value)
 | 
					      const langDiv = $(value)
 | 
				
			||||||
      if (langDiv.length > 0) {
 | 
					      if (langDiv.length > 0) {
 | 
				
			||||||
        const reallang = langDiv[0].className.replace(/hljs|wrap/g, '').trim()
 | 
					        const reallang = langDiv[0].className.replace(/hljs|wrap/g, '').trim()
 | 
				
			||||||
 | 
					        if (reallang === 'mermaid' || reallang === 'abc' || reallang === 'graphviz') {
 | 
				
			||||||
 | 
					          return
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        const codeDiv = langDiv.find('.code')
 | 
					        const codeDiv = langDiv.find('.code')
 | 
				
			||||||
        let code = ''
 | 
					        let code = ''
 | 
				
			||||||
        if (codeDiv.length > 0) code = codeDiv.html()
 | 
					        if (codeDiv.length > 0) code = codeDiv.html()
 | 
				
			||||||
@ -524,13 +524,19 @@ export function finishView (view) {
 | 
				
			|||||||
            value: Prism.highlight(code, Prism.languages.makefile)
 | 
					            value: Prism.highlight(code, Prism.languages.makefile)
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          code = S(code).unescapeHTML().s
 | 
					          require.ensure([], function (require) {
 | 
				
			||||||
          const languages = hljs.listLanguages()
 | 
					            const hljs = require('highlight.js')
 | 
				
			||||||
          if (!languages.includes(reallang)) {
 | 
					            code = S(code).unescapeHTML().s
 | 
				
			||||||
            result = hljs.highlightAuto(code)
 | 
					            const languages = hljs.listLanguages()
 | 
				
			||||||
          } else {
 | 
					            if (!languages.includes(reallang)) {
 | 
				
			||||||
            result = hljs.highlight(reallang, code)
 | 
					              result = hljs.highlightAuto(code)
 | 
				
			||||||
          }
 | 
					            } else {
 | 
				
			||||||
 | 
					              result = hljs.highlight(reallang, code)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (codeDiv.length > 0) codeDiv.html(result.value)
 | 
				
			||||||
 | 
					            else langDiv.html(result.value)
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (codeDiv.length > 0) codeDiv.html(result.value)
 | 
					        if (codeDiv.length > 0) codeDiv.html(result.value)
 | 
				
			||||||
        else langDiv.html(result.value)
 | 
					        else langDiv.html(result.value)
 | 
				
			||||||
@ -668,19 +674,15 @@ export function exportToHTML (view) {
 | 
				
			|||||||
  tocAffix.find('*').removeClass('active').find("a[href^='#'][smoothhashscroll]").removeAttr('smoothhashscroll')
 | 
					  tocAffix.find('*').removeClass('active').find("a[href^='#'][smoothhashscroll]").removeAttr('smoothhashscroll')
 | 
				
			||||||
  // generate html via template
 | 
					  // generate html via template
 | 
				
			||||||
  $.get(`${serverurl}/build/html.min.css`, css => {
 | 
					  $.get(`${serverurl}/build/html.min.css`, css => {
 | 
				
			||||||
    $.get(`${serverurl}/views/html.hbs`, data => {
 | 
					    $.get(`${serverurl}/views/html.hbs`, template => {
 | 
				
			||||||
      const template = handlebars.compile(data)
 | 
					      let html = template.replace('{{{url}}}', serverurl)
 | 
				
			||||||
      const context = {
 | 
					      html = html.replace('{{title}}', title)
 | 
				
			||||||
        url: serverurl,
 | 
					      html = html.replace('{{{css}}}', css)
 | 
				
			||||||
        title,
 | 
					      html = html.replace('{{{html}}}', src[0].outerHTML)
 | 
				
			||||||
        css,
 | 
					      html = html.replace('{{{ui-toc}}}', toc.html())
 | 
				
			||||||
        html: src[0].outerHTML,
 | 
					      html = html.replace('{{{ui-toc-affix}}}', tocAffix.html())
 | 
				
			||||||
        'ui-toc': toc.html(),
 | 
					      html = html.replace('{{{lang}}}', (md && md.meta && md.meta.lang) ? `lang="${md.meta.lang}"` : '')
 | 
				
			||||||
        'ui-toc-affix': tocAffix.html(),
 | 
					      html = html.replace('{{{dir}}}', (md && md.meta && md.meta.dir) ? `dir="${md.meta.dir}"` : '')
 | 
				
			||||||
        lang: (md && md.meta && md.meta.lang) ? `lang="${md.meta.lang}"` : null,
 | 
					 | 
				
			||||||
        dir: (md && md.meta && md.meta.dir) ? `dir="${md.meta.dir}"` : null
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      const html = template(context)
 | 
					 | 
				
			||||||
      const blob = new Blob([html], {
 | 
					      const blob = new Blob([html], {
 | 
				
			||||||
        type: 'text/html;charset=utf-8'
 | 
					        type: 'text/html;charset=utf-8'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
 | 
				
			|||||||
@ -18,7 +18,6 @@ import { ot } from '../vendor/ot/ot.min.js'
 | 
				
			|||||||
import { saveAs } from 'file-saver'
 | 
					import { saveAs } from 'file-saver'
 | 
				
			||||||
import randomColor from 'randomcolor'
 | 
					import randomColor from 'randomcolor'
 | 
				
			||||||
import store from 'store'
 | 
					import store from 'store'
 | 
				
			||||||
import hljs from 'highlight.js'
 | 
					 | 
				
			||||||
import url from 'wurl'
 | 
					import url from 'wurl'
 | 
				
			||||||
import { Spinner } from 'spin.js'
 | 
					import { Spinner } from 'spin.js'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,36 +105,198 @@ const cursorActivityDebounce = 50
 | 
				
			|||||||
const cursorAnimatePeriod = 100
 | 
					const cursorAnimatePeriod = 100
 | 
				
			||||||
const supportContainers = ['success', 'info', 'warning', 'danger']
 | 
					const supportContainers = ['success', 'info', 'warning', 'danger']
 | 
				
			||||||
const supportCodeModes = [
 | 
					const supportCodeModes = [
 | 
				
			||||||
  'javascript',
 | 
					  '1c',
 | 
				
			||||||
  'typescript',
 | 
					  'abnf',
 | 
				
			||||||
  'jsx',
 | 
					  'accesslog',
 | 
				
			||||||
  'htmlmixed',
 | 
					  'actionscript',
 | 
				
			||||||
  'htmlembedded',
 | 
					  'ada',
 | 
				
			||||||
  'css',
 | 
					  'angelscript',
 | 
				
			||||||
  'xml',
 | 
					  'apache',
 | 
				
			||||||
  'clike',
 | 
					  'applescript',
 | 
				
			||||||
 | 
					  'arcade',
 | 
				
			||||||
 | 
					  'arduino',
 | 
				
			||||||
 | 
					  'armasm',
 | 
				
			||||||
 | 
					  'asciidoc',
 | 
				
			||||||
 | 
					  'aspectj',
 | 
				
			||||||
 | 
					  'autohotkey',
 | 
				
			||||||
 | 
					  'autoit',
 | 
				
			||||||
 | 
					  'avrasm',
 | 
				
			||||||
 | 
					  'awk',
 | 
				
			||||||
 | 
					  'axapta',
 | 
				
			||||||
 | 
					  'bash',
 | 
				
			||||||
 | 
					  'basic',
 | 
				
			||||||
 | 
					  'bnf',
 | 
				
			||||||
 | 
					  'brainfuck',
 | 
				
			||||||
 | 
					  'cal',
 | 
				
			||||||
 | 
					  'capnproto',
 | 
				
			||||||
 | 
					  'ceylon',
 | 
				
			||||||
 | 
					  'c',
 | 
				
			||||||
 | 
					  'clean',
 | 
				
			||||||
 | 
					  'c-like',
 | 
				
			||||||
  'clojure',
 | 
					  'clojure',
 | 
				
			||||||
  'ruby',
 | 
					  'clojure-repl',
 | 
				
			||||||
  'python',
 | 
					 | 
				
			||||||
  'shell',
 | 
					 | 
				
			||||||
  'php',
 | 
					 | 
				
			||||||
  'sql',
 | 
					 | 
				
			||||||
  'haskell',
 | 
					 | 
				
			||||||
  'coffeescript',
 | 
					 | 
				
			||||||
  'yaml',
 | 
					 | 
				
			||||||
  'pug',
 | 
					 | 
				
			||||||
  'lua',
 | 
					 | 
				
			||||||
  'cmake',
 | 
					  'cmake',
 | 
				
			||||||
  'nginx',
 | 
					  'coffeescript',
 | 
				
			||||||
  'perl',
 | 
					  'coq',
 | 
				
			||||||
  'sass',
 | 
					  'cos',
 | 
				
			||||||
  'r',
 | 
					  'cpp',
 | 
				
			||||||
 | 
					  'crmsh',
 | 
				
			||||||
 | 
					  'crystal',
 | 
				
			||||||
 | 
					  'csharp',
 | 
				
			||||||
 | 
					  'csp',
 | 
				
			||||||
 | 
					  'css',
 | 
				
			||||||
 | 
					  'dart',
 | 
				
			||||||
 | 
					  'delphi',
 | 
				
			||||||
 | 
					  'diff',
 | 
				
			||||||
 | 
					  'django',
 | 
				
			||||||
 | 
					  'd',
 | 
				
			||||||
 | 
					  'dns',
 | 
				
			||||||
  'dockerfile',
 | 
					  'dockerfile',
 | 
				
			||||||
  'tiddlywiki',
 | 
					  'dos',
 | 
				
			||||||
  'mediawiki',
 | 
					  'dsconfig',
 | 
				
			||||||
 | 
					  'dts',
 | 
				
			||||||
 | 
					  'dust',
 | 
				
			||||||
 | 
					  'ebnf',
 | 
				
			||||||
 | 
					  'elixir',
 | 
				
			||||||
 | 
					  'elm',
 | 
				
			||||||
 | 
					  'erb',
 | 
				
			||||||
 | 
					  'erlang',
 | 
				
			||||||
 | 
					  'erlang-repl',
 | 
				
			||||||
 | 
					  'excel',
 | 
				
			||||||
 | 
					  'fix',
 | 
				
			||||||
 | 
					  'flix',
 | 
				
			||||||
 | 
					  'fortran',
 | 
				
			||||||
 | 
					  'fsharp',
 | 
				
			||||||
 | 
					  'gams',
 | 
				
			||||||
 | 
					  'gauss',
 | 
				
			||||||
 | 
					  'gcode',
 | 
				
			||||||
 | 
					  'gherkin',
 | 
				
			||||||
 | 
					  'glsl',
 | 
				
			||||||
 | 
					  'gml',
 | 
				
			||||||
  'go',
 | 
					  'go',
 | 
				
			||||||
  'gherkin'
 | 
					  'golo',
 | 
				
			||||||
].concat(hljs.listLanguages())
 | 
					  '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 supportCharts = ['sequence', 'flow', 'graphviz', 'mermaid', 'abc']
 | 
				
			||||||
const supportHeaders = [
 | 
					const supportHeaders = [
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,6 @@
 | 
				
			|||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js" integrity="sha256-Cv5v4i4SuYvwRYzIONifZjoc99CkwfncROMSWat1cVA=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js" integrity="sha256-Cv5v4i4SuYvwRYzIONifZjoc99CkwfncROMSWat1cVA=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.1/socket.io.js" integrity="sha256-0FUwWDJ65tQsnnxtK/o5aTM880+kQzktw2mfTBF36Zs=" crossorigin="anonymous"></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.1/socket.io.js" integrity="sha256-0FUwWDJ65tQsnnxtK/o5aTM880+kQzktw2mfTBF36Zs=" crossorigin="anonymous"></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js" integrity="sha256-1O3BtOwnPyyRzOszK6P+gqaRoXHV6JXj8HkjZmPYhCI=" crossorigin="anonymous" defer></script>
 | 
					 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha256-eOgo0OtLL4cdq7RdwRUiGKLX9XsIJ7nGhWEKbohmVAQ=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha256-eOgo0OtLL4cdq7RdwRUiGKLX9XsIJ7nGhWEKbohmVAQ=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
 | 
				
			|||||||
@ -92,7 +92,6 @@
 | 
				
			|||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js" integrity="sha256-vvT7Ok9u6GbfnBPXnbM6FVDEO8E1kTdgHOFZOAXrktA=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js" integrity="sha256-vvT7Ok9u6GbfnBPXnbM6FVDEO8E1kTdgHOFZOAXrktA=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.2/mermaid.min.js" integrity="sha256-KqisLh8jVMBRjpNkOhH5W9VWs+F6x6vQksLqxs7+x9A=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.2/mermaid.min.js" integrity="sha256-KqisLh8jVMBRjpNkOhH5W9VWs+F6x6vQksLqxs7+x9A=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js" integrity="sha256-1O3BtOwnPyyRzOszK6P+gqaRoXHV6JXj8HkjZmPYhCI=" crossorigin="anonymous" defer></script>
 | 
					 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha256-eOgo0OtLL4cdq7RdwRUiGKLX9XsIJ7nGhWEKbohmVAQ=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js" integrity="sha256-eOgo0OtLL4cdq7RdwRUiGKLX9XsIJ7nGhWEKbohmVAQ=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
					<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
 | 
				
			|||||||
@ -99,7 +99,6 @@
 | 
				
			|||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js" integrity="sha256-vvT7Ok9u6GbfnBPXnbM6FVDEO8E1kTdgHOFZOAXrktA=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment-with-locales.min.js" integrity="sha256-vvT7Ok9u6GbfnBPXnbM6FVDEO8E1kTdgHOFZOAXrktA=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.2/mermaid.min.js" integrity="sha256-KqisLh8jVMBRjpNkOhH5W9VWs+F6x6vQksLqxs7+x9A=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/8.8.2/mermaid.min.js" integrity="sha256-KqisLh8jVMBRjpNkOhH5W9VWs+F6x6vQksLqxs7+x9A=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/js/emojify.min.js" integrity="sha256-VAB5tAlKBvgaxw8oJ1crWMVbdmBVl4mP/2M8MNRl+4E=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js" integrity="sha256-1O3BtOwnPyyRzOszK6P+gqaRoXHV6JXj8HkjZmPYhCI=" crossorigin="anonymous" defer></script>
 | 
					 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js" integrity="sha256-/BfiIkHlHoVihZdc6TFuj7MmJ0TWcWsMXkeDFwhi0zw=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js" integrity="sha256-/BfiIkHlHoVihZdc6TFuj7MmJ0TWcWsMXkeDFwhi0zw=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
        <script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
					        <script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.7.0/viz.js" integrity="sha256-8t+rndrF+TU4JtelmOH1lDHTMe2ovhO2UbzDArp5lY8=" crossorigin="anonymous" defer></script>
 | 
				
			||||||
 | 
				
			|||||||
@ -248,12 +248,10 @@ module.exports = {
 | 
				
			|||||||
      'bootstrap-validator',
 | 
					      'bootstrap-validator',
 | 
				
			||||||
      'expose-loader?exposes=jsyaml!js-yaml',
 | 
					      'expose-loader?exposes=jsyaml!js-yaml',
 | 
				
			||||||
      'expose-loader?exposes=moment!moment',
 | 
					      'expose-loader?exposes=moment!moment',
 | 
				
			||||||
      'expose-loader?exposes=hljs!highlight.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=emojify!emojify.js',
 | 
					      'expose-loader?exposes=emojify!emojify.js',
 | 
				
			||||||
      'expose-loader?exposes=LZString!lz-string',
 | 
					      'expose-loader?exposes=LZString!lz-string',
 | 
				
			||||||
      'flowchart.js',
 | 
					      'flowchart.js',
 | 
				
			||||||
      'js-sequence-diagrams',
 | 
					      'js-sequence-diagrams',
 | 
				
			||||||
      'expose-loader?exposes=Viz!viz.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=io!socket.io-client',
 | 
					      'expose-loader?exposes=io!socket.io-client',
 | 
				
			||||||
      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
					      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
				
			||||||
      path.join(__dirname, 'public/js/index.js')
 | 
					      path.join(__dirname, 'public/js/index.js')
 | 
				
			||||||
@ -280,11 +278,9 @@ module.exports = {
 | 
				
			|||||||
      'babel-polyfill',
 | 
					      'babel-polyfill',
 | 
				
			||||||
      'expose-loader?exposes=jsyaml!js-yaml',
 | 
					      'expose-loader?exposes=jsyaml!js-yaml',
 | 
				
			||||||
      'expose-loader?exposes=moment!moment',
 | 
					      'expose-loader?exposes=moment!moment',
 | 
				
			||||||
      'expose-loader?exposes=hljs!highlight.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=emojify!emojify.js',
 | 
					      'expose-loader?exposes=emojify!emojify.js',
 | 
				
			||||||
      'flowchart.js',
 | 
					      'flowchart.js',
 | 
				
			||||||
      'js-sequence-diagrams',
 | 
					      'js-sequence-diagrams',
 | 
				
			||||||
      'expose-loader?exposes=Viz!viz.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
					      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
				
			||||||
      path.join(__dirname, 'public/js/pretty.js')
 | 
					      path.join(__dirname, 'public/js/pretty.js')
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@ -314,11 +310,9 @@ module.exports = {
 | 
				
			|||||||
      'bootstrap-tooltip',
 | 
					      'bootstrap-tooltip',
 | 
				
			||||||
      'expose-loader?exposes=jsyaml!js-yaml',
 | 
					      'expose-loader?exposes=jsyaml!js-yaml',
 | 
				
			||||||
      'expose-loader?exposes=moment!moment',
 | 
					      'expose-loader?exposes=moment!moment',
 | 
				
			||||||
      'expose-loader?exposes=hljs!highlight.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=emojify!emojify.js',
 | 
					      'expose-loader?exposes=emojify!emojify.js',
 | 
				
			||||||
      'flowchart.js',
 | 
					      'flowchart.js',
 | 
				
			||||||
      'js-sequence-diagrams',
 | 
					      'js-sequence-diagrams',
 | 
				
			||||||
      'expose-loader?exposes=Viz!viz.js',
 | 
					 | 
				
			||||||
      'expose-loader?exposes=Reveal!reveal.js',
 | 
					      'expose-loader?exposes=Reveal!reveal.js',
 | 
				
			||||||
      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
					      'expose-loader?exposes=RevealMarkdown!reveal-markdown',
 | 
				
			||||||
      path.join(__dirname, 'public/js/slide.js')
 | 
					      path.join(__dirname, 'public/js/slide.js')
 | 
				
			||||||
@ -342,11 +336,9 @@ module.exports = {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  externals: {
 | 
					  externals: {
 | 
				
			||||||
    'viz.js': 'Viz',
 | 
					 | 
				
			||||||
    'socket.io-client': 'io',
 | 
					    'socket.io-client': 'io',
 | 
				
			||||||
    'jquery': '$',
 | 
					    'jquery': '$',
 | 
				
			||||||
    'moment': 'moment',
 | 
					    'moment': 'moment',
 | 
				
			||||||
    'highlight.js': 'hljs',
 | 
					 | 
				
			||||||
    'select2': 'select2'
 | 
					    'select2': 'select2'
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										42
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								yarn.lock
									
									
									
									
									
								
							@ -568,7 +568,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"Idle.Js@git+https://github.com/shawnmclean/Idle.js":
 | 
					"Idle.Js@git+https://github.com/shawnmclean/Idle.js":
 | 
				
			||||||
  version "0.0.1"
 | 
					  version "0.0.1"
 | 
				
			||||||
  uid db9beb3483a460ad638ec947867720f0ed066a62
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/shawnmclean/Idle.js#db9beb3483a460ad638ec947867720f0ed066a62"
 | 
					  resolved "git+https://github.com/shawnmclean/Idle.js#db9beb3483a460ad638ec947867720f0ed066a62"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
JSV@^4.0.x:
 | 
					JSV@^4.0.x:
 | 
				
			||||||
@ -586,7 +585,7 @@ abcjs@5.10.3:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/abcjs/-/abcjs-5.10.3.tgz#294702140ec1caa292859ba9d2af0452f7e9e046"
 | 
					  resolved "https://registry.yarnpkg.com/abcjs/-/abcjs-5.10.3.tgz#294702140ec1caa292859ba9d2af0452f7e9e046"
 | 
				
			||||||
  integrity sha512-YGmW4CUWd7T2/HqZa/SQOTE+lXg7Z68HwwpJhHJBvdHqLi1uLCiYva1ZRGhB/MPyl1QKqJMfF+LQ1jGAEK69XQ==
 | 
					  integrity sha512-YGmW4CUWd7T2/HqZa/SQOTE+lXg7Z68HwwpJhHJBvdHqLi1uLCiYva1ZRGhB/MPyl1QKqJMfF+LQ1jGAEK69XQ==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    midi "git+https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
					    midi "https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abcjs@5.11.0:
 | 
					abcjs@5.11.0:
 | 
				
			||||||
  version "5.11.0"
 | 
					  version "5.11.0"
 | 
				
			||||||
@ -594,7 +593,7 @@ abcjs@5.11.0:
 | 
				
			|||||||
  integrity sha512-kLehHwwttcTCVhKQaDkmqYbWBLAWmfyzYSbUQoEDAOTOX5RzDGakX8tXpzlsNHw6Lh8W8odZw44e0siwbG4TKA==
 | 
					  integrity sha512-kLehHwwttcTCVhKQaDkmqYbWBLAWmfyzYSbUQoEDAOTOX5RzDGakX8tXpzlsNHw6Lh8W8odZw44e0siwbG4TKA==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    abcjs "5.10.3"
 | 
					    abcjs "5.10.3"
 | 
				
			||||||
    midi "git+https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
					    midi "https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abcjs@5.12.0:
 | 
					abcjs@5.12.0:
 | 
				
			||||||
  version "5.12.0"
 | 
					  version "5.12.0"
 | 
				
			||||||
@ -602,7 +601,7 @@ abcjs@5.12.0:
 | 
				
			|||||||
  integrity sha512-pvi7SjOAKT7cRyRtywUSwYB0SNtRHKLxZUZ9Oc4E+nvpBHr8Z2/M9Pfyv3oIaiEpxlWTFK+B/H5t/DckiNFgpg==
 | 
					  integrity sha512-pvi7SjOAKT7cRyRtywUSwYB0SNtRHKLxZUZ9Oc4E+nvpBHr8Z2/M9Pfyv3oIaiEpxlWTFK+B/H5t/DckiNFgpg==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    abcjs "5.11.0"
 | 
					    abcjs "5.11.0"
 | 
				
			||||||
    midi "git+https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
					    midi "https://github.com/paulrosen/MIDI.js.git#abcjs"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
abstract-logging@^2.0.0:
 | 
					abstract-logging@^2.0.0:
 | 
				
			||||||
  version "2.0.1"
 | 
					  version "2.0.1"
 | 
				
			||||||
@ -2299,7 +2298,6 @@ code-point-at@^1.0.0:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"codemirror@git+https://github.com/hedgedoc/CodeMirror.git":
 | 
					"codemirror@git+https://github.com/hedgedoc/CodeMirror.git":
 | 
				
			||||||
  version "5.58.2"
 | 
					  version "5.58.2"
 | 
				
			||||||
  uid f780b569b3717cdff4c8507538cc63101bfa02e1
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/hedgedoc/CodeMirror.git#f780b569b3717cdff4c8507538cc63101bfa02e1"
 | 
					  resolved "git+https://github.com/hedgedoc/CodeMirror.git#f780b569b3717cdff4c8507538cc63101bfa02e1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
collection-visit@^1.0.0:
 | 
					collection-visit@^1.0.0:
 | 
				
			||||||
@ -3311,7 +3309,6 @@ detect-libc@^1.0.2:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"diff-match-patch@git+https://github.com/hackmdio/diff-match-patch.git":
 | 
					"diff-match-patch@git+https://github.com/hackmdio/diff-match-patch.git":
 | 
				
			||||||
  version "1.1.1"
 | 
					  version "1.1.1"
 | 
				
			||||||
  uid c2f8fb9d69aa9490b764850aa86ba442c93ccf78
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/hackmdio/diff-match-patch.git#c2f8fb9d69aa9490b764850aa86ba442c93ccf78"
 | 
					  resolved "git+https://github.com/hackmdio/diff-match-patch.git#c2f8fb9d69aa9490b764850aa86ba442c93ccf78"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff@5.0.0:
 | 
					diff@5.0.0:
 | 
				
			||||||
@ -4698,18 +4695,6 @@ growl@1.10.5:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
 | 
					  resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
 | 
				
			||||||
  integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
 | 
					  integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
handlebars@^4.5.2:
 | 
					 | 
				
			||||||
  version "4.7.7"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
 | 
					 | 
				
			||||||
  integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    minimist "^1.2.5"
 | 
					 | 
				
			||||||
    neo-async "^2.6.0"
 | 
					 | 
				
			||||||
    source-map "^0.6.1"
 | 
					 | 
				
			||||||
    wordwrap "^1.0.0"
 | 
					 | 
				
			||||||
  optionalDependencies:
 | 
					 | 
				
			||||||
    uglify-js "^3.1.4"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
har-schema@^2.0.0:
 | 
					har-schema@^2.0.0:
 | 
				
			||||||
  version "2.0.0"
 | 
					  version "2.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
 | 
					  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
 | 
				
			||||||
@ -5640,7 +5625,6 @@ js-cookie@2.2.1:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"js-sequence-diagrams@git+https://github.com/hedgedoc/js-sequence-diagrams.git":
 | 
					"js-sequence-diagrams@git+https://github.com/hedgedoc/js-sequence-diagrams.git":
 | 
				
			||||||
  version "2.0.1"
 | 
					  version "2.0.1"
 | 
				
			||||||
  uid bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/hedgedoc/js-sequence-diagrams.git#bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39"
 | 
					  resolved "git+https://github.com/hedgedoc/js-sequence-diagrams.git#bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39"
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    lodash "4.17.x"
 | 
					    lodash "4.17.x"
 | 
				
			||||||
@ -6220,7 +6204,6 @@ lutim@^1.0.2:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"lz-string@git+https://github.com/hackmdio/lz-string.git":
 | 
					"lz-string@git+https://github.com/hackmdio/lz-string.git":
 | 
				
			||||||
  version "1.4.4"
 | 
					  version "1.4.4"
 | 
				
			||||||
  uid efd1f64676264d6d8871b01f4f375fc6ef4f9022
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/hackmdio/lz-string.git#efd1f64676264d6d8871b01f4f375fc6ef4f9022"
 | 
					  resolved "git+https://github.com/hackmdio/lz-string.git#efd1f64676264d6d8871b01f4f375fc6ef4f9022"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
make-dir@^1.0.0:
 | 
					make-dir@^1.0.0:
 | 
				
			||||||
@ -6529,8 +6512,7 @@ messageformat@^2.3.0:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"meta-marked@git+https://github.com/hedgedoc/meta-marked":
 | 
					"meta-marked@git+https://github.com/hedgedoc/meta-marked":
 | 
				
			||||||
  version "0.4.5"
 | 
					  version "0.4.5"
 | 
				
			||||||
  uid "3002adae670a6de0a845f3da7a7223d458c20d76"
 | 
					  resolved "git+https://github.com/hedgedoc/meta-marked#81d9036da9f4c3307b1787d20e89e996f4466d8c"
 | 
				
			||||||
  resolved "git+https://github.com/hedgedoc/meta-marked#3002adae670a6de0a845f3da7a7223d458c20d76"
 | 
					 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    js-yaml "~4.1.0"
 | 
					    js-yaml "~4.1.0"
 | 
				
			||||||
    marked "~2.0.0"
 | 
					    marked "~2.0.0"
 | 
				
			||||||
@ -6606,7 +6588,6 @@ micromatch@^4.0.2:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
"midi@git+https://github.com/paulrosen/MIDI.js.git#abcjs":
 | 
					"midi@git+https://github.com/paulrosen/MIDI.js.git#abcjs":
 | 
				
			||||||
  version "0.4.2"
 | 
					  version "0.4.2"
 | 
				
			||||||
  uid e593ffef81a0350f99448e3ab8111957145ff6b2
 | 
					 | 
				
			||||||
  resolved "git+https://github.com/paulrosen/MIDI.js.git#e593ffef81a0350f99448e3ab8111957145ff6b2"
 | 
					  resolved "git+https://github.com/paulrosen/MIDI.js.git#e593ffef81a0350f99448e3ab8111957145ff6b2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
miller-rabin@^4.0.0:
 | 
					miller-rabin@^4.0.0:
 | 
				
			||||||
@ -6974,7 +6955,7 @@ negotiator@0.6.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
 | 
					  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
 | 
				
			||||||
  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 | 
					  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
 | 
					neo-async@^2.5.0, neo-async@^2.6.1:
 | 
				
			||||||
  version "2.6.2"
 | 
					  version "2.6.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
 | 
					  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
 | 
				
			||||||
  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 | 
					  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 | 
				
			||||||
@ -8151,9 +8132,9 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
 | 
				
			|||||||
  integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
 | 
					  integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
postcss@^8.2.1, postcss@^8.2.15:
 | 
					postcss@^8.2.1, postcss@^8.2.15:
 | 
				
			||||||
  version "8.3.1"
 | 
					  version "8.3.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.1.tgz#71f380151c227f83b898294a46481f689f86b70a"
 | 
					  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.2.tgz#ed3ec489f5428af5740cd6effcc216b4d455ee64"
 | 
				
			||||||
  integrity sha512-9qH0MGjsSm+fjxOi3GnwViL1otfi7qkj+l/WX5gcRGmZNGsIcqc+A5fBkE6PUobEQK4APqYVaES+B3Uti98TCw==
 | 
					  integrity sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    colorette "^1.2.2"
 | 
					    colorette "^1.2.2"
 | 
				
			||||||
    nanoid "^3.1.23"
 | 
					    nanoid "^3.1.23"
 | 
				
			||||||
@ -10471,7 +10452,7 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
 | 
					  resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
 | 
				
			||||||
  integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
 | 
					  integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uglify-js@^3.1.4, uglify-js@^3.5.1:
 | 
					uglify-js@^3.5.1:
 | 
				
			||||||
  version "3.13.9"
 | 
					  version "3.13.9"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b"
 | 
					  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.9.tgz#4d8d21dcd497f29cfd8e9378b9df123ad025999b"
 | 
				
			||||||
  integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==
 | 
					  integrity sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==
 | 
				
			||||||
@ -11104,11 +11085,6 @@ word-wrap@^1.2.3:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
 | 
					  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
 | 
				
			||||||
  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 | 
					  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wordwrap@^1.0.0:
 | 
					 | 
				
			||||||
  version "1.0.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
 | 
					 | 
				
			||||||
  integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
worker-farm@^1.7.0:
 | 
					worker-farm@^1.7.0:
 | 
				
			||||||
  version "1.7.0"
 | 
					  version "1.7.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
 | 
					  resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user