vditor 3.10.6 → 3.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/index.css +31 -76
- package/dist/index.js +1031 -928
- package/dist/index.min.js +1 -1
- package/dist/js/highlight.js/LICENSE +29 -0
- package/dist/js/highlight.js/highlight.min.js +3835 -0
- package/dist/js/highlight.js/styles/a11y-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/a11y-light.min.css +7 -0
- package/dist/js/highlight.js/styles/agate.min.css +20 -0
- package/dist/js/highlight.js/styles/an-old-hope.min.css +9 -0
- package/dist/js/highlight.js/styles/androidstudio.min.css +1 -0
- package/dist/js/highlight.js/styles/ant-design.min.css +84 -0
- package/dist/js/highlight.js/styles/arduino-light.min.css +1 -0
- package/dist/js/highlight.js/styles/arta.min.css +1 -0
- package/dist/js/highlight.js/styles/ascetic.min.css +1 -0
- package/dist/js/highlight.js/styles/atom-one-dark-reasonable.min.css +1 -0
- package/dist/js/highlight.js/styles/atom-one-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/atom-one-light.min.css +1 -0
- package/dist/js/highlight.js/styles/base16/3024.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/apathy.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/apprentice.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ashes.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-cave-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-cave.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-dune-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-dune.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-estuary-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-estuary.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-forest-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-forest.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-heath-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-heath.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-lakeside-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-lakeside.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-plateau-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-plateau.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-savanna-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-savanna.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-seaside-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-seaside.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-sulphurpool-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atelier-sulphurpool.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/atlas.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/bespin.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-bathory.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-burzum.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-dark-funeral.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-gorgoroth.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-immortal.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-khold.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-marduk.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-mayhem.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-nile.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal-venom.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/black-metal.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/brewer.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/bright.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/brogrammer.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/brush-trees-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/brush-trees.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/chalk.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/circus.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/classic-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/classic-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/codeschool.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/colors.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/cupcake.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/cupertino.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/danqing.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/darcula.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/dark-violet.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/darkmoss.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/darktooth.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/decaf.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/default-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/default-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/dirtysea.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/dracula.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/edge-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/edge-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/eighties.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/embers.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/equilibrium-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/equilibrium-gray-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/equilibrium-gray-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/equilibrium-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/espresso.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/eva-dim.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/eva.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/flat.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/framer.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/fruit-soda.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gigavolt.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/github.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/google-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/google-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/grayscale-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/grayscale-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/green-screen.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-dark-hard.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-dark-medium.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-dark-pale.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-dark-soft.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-light-hard.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-light-medium.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/gruvbox-light-soft.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/hardcore.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/harmonic16-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/harmonic16-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/heetch-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/heetch-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/helios.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/hopscotch.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/horizon-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/horizon-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/humanoid-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/humanoid-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ia-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ia-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/icy-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ir-black.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/isotope.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/kimber.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/london-tube.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/macintosh.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/marrakesh.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/materia.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/material-darker.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/material-lighter.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/material-palenight.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/material-vivid.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/material.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/mellow-purple.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/mexico-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/mocha.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/monokai.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/nebula.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/nord.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/nova.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ocean.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/oceanicnext.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/one-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/onedark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/outrun-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/papercolor-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/papercolor-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/paraiso.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/pasque.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/phd.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/pico.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/pop.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/porple.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/qualia.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/railscasts.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/rebecca.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ros-pine-dawn.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ros-pine-moon.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/ros-pine.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/sagelight.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/sandcastle.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/seti-ui.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/shapeshifter.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/silk-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/silk-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/snazzy.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/solar-flare-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/solar-flare.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/solarized-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/solarized-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/spacemacs.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/summercamp.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/summerfruit-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/summerfruit-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/synth-midnight-terminal-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/synth-midnight-terminal-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/tango.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/tender.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/tomorrow-night.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/tomorrow.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/twilight.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/unikitty-dark.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/unikitty-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/vulcan.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-10-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-10.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-95-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-95.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-high-contrast-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-high-contrast.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-nt-light.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/windows-nt.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/woodland.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/xcode-dusk.min.css +7 -0
- package/dist/js/highlight.js/styles/base16/zenburn.min.css +7 -0
- package/dist/js/highlight.js/styles/brown-paper.min.css +1 -0
- package/dist/js/highlight.js/styles/brown-papersq.png +0 -0
- package/dist/js/highlight.js/styles/codepen-embed.min.css +1 -0
- package/dist/js/highlight.js/styles/color-brewer.min.css +1 -0
- package/dist/js/highlight.js/styles/dark.min.css +1 -0
- package/dist/js/highlight.js/styles/default.min.css +9 -0
- package/dist/js/highlight.js/styles/devibeans.min.css +7 -0
- package/dist/js/highlight.js/styles/docco.min.css +1 -0
- package/dist/js/highlight.js/styles/far.min.css +1 -0
- package/dist/js/highlight.js/styles/felipec.min.css +7 -0
- package/dist/js/highlight.js/styles/foundation.min.css +1 -0
- package/dist/js/highlight.js/styles/github-dark-dimmed.min.css +9 -0
- package/dist/js/highlight.js/styles/github-dark.min.css +10 -0
- package/dist/js/highlight.js/styles/github.min.css +10 -0
- package/dist/js/highlight.js/styles/gml.min.css +1 -0
- package/dist/js/highlight.js/styles/googlecode.min.css +1 -0
- package/dist/js/highlight.js/styles/gradient-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/gradient-light.min.css +1 -0
- package/dist/js/highlight.js/styles/grayscale.min.css +1 -0
- package/dist/js/highlight.js/styles/hybrid.min.css +1 -0
- package/dist/js/highlight.js/styles/idea.min.css +1 -0
- package/dist/js/highlight.js/styles/intellij-light.min.css +1 -0
- package/dist/js/highlight.js/styles/ir-black.min.css +1 -0
- package/dist/js/highlight.js/styles/isbl-editor-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/isbl-editor-light.min.css +1 -0
- package/dist/js/highlight.js/styles/kimbie-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/kimbie-light.min.css +1 -0
- package/dist/js/highlight.js/styles/lightfair.min.css +1 -0
- package/dist/js/highlight.js/styles/lioshi.min.css +1 -0
- package/dist/js/highlight.js/styles/magula.min.css +1 -0
- package/dist/js/highlight.js/styles/mono-blue.min.css +1 -0
- package/dist/js/highlight.js/styles/monokai-sublime.min.css +1 -0
- package/dist/js/highlight.js/styles/monokai.min.css +1 -0
- package/dist/js/highlight.js/styles/night-owl.min.css +1 -0
- package/dist/js/highlight.js/styles/nnfx-dark.min.css +10 -0
- package/dist/js/highlight.js/styles/nnfx-light.min.css +10 -0
- package/dist/js/highlight.js/styles/nord.min.css +1 -0
- package/dist/js/highlight.js/styles/obsidian.min.css +1 -0
- package/dist/js/highlight.js/styles/panda-syntax-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/panda-syntax-light.min.css +1 -0
- package/dist/js/highlight.js/styles/paraiso-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/paraiso-light.min.css +1 -0
- package/dist/js/highlight.js/styles/pojoaque.jpg +0 -0
- package/dist/js/highlight.js/styles/pojoaque.min.css +1 -0
- package/dist/js/highlight.js/styles/purebasic.min.css +1 -0
- package/dist/js/highlight.js/styles/qtcreator-dark.min.css +1 -0
- package/dist/js/highlight.js/styles/qtcreator-light.min.css +1 -0
- package/dist/js/highlight.js/styles/rainbow.min.css +1 -0
- package/dist/js/highlight.js/styles/routeros.min.css +1 -0
- package/dist/js/highlight.js/styles/school-book.min.css +1 -0
- package/dist/js/highlight.js/styles/shades-of-purple.min.css +1 -0
- package/dist/js/highlight.js/styles/srcery.min.css +1 -0
- package/dist/js/highlight.js/styles/stackoverflow-dark.min.css +13 -0
- package/dist/js/highlight.js/styles/stackoverflow-light.min.css +13 -0
- package/dist/js/highlight.js/styles/sunburst.min.css +1 -0
- package/dist/js/highlight.js/styles/tokyo-night-dark.min.css +8 -0
- package/dist/js/highlight.js/styles/tokyo-night-light.min.css +8 -0
- package/dist/js/highlight.js/styles/tomorrow-night-blue.min.css +1 -0
- package/dist/js/highlight.js/styles/tomorrow-night-bright.min.css +1 -0
- package/dist/js/highlight.js/styles/vs.min.css +1 -0
- package/dist/js/highlight.js/styles/vs2015.min.css +1 -0
- package/dist/js/highlight.js/styles/xcode.min.css +1 -0
- package/dist/js/highlight.js/styles/xt256.min.css +1 -0
- package/dist/js/highlight.js/third-languages.js +135 -0
- package/dist/js/i18n/ru_RU.js +6 -6
- package/dist/js/smiles-drawer/smiles-drawer.min.js +71 -0
- package/dist/method.d.ts +6 -4
- package/dist/method.js +364 -290
- package/dist/method.min.js +1 -1
- package/dist/ts/constants.d.ts +1 -1
- package/dist/ts/markdown/SMILESRender.d.ts +1 -0
- package/dist/ts/markdown/adapterRender.d.ts +8 -4
- package/dist/ts/markdown/markmapRender.d.ts +1 -1
- package/dist/ts/markdown/mathRender.d.ts +1 -1
- package/dist/ts/markdown/mermaidRender.d.ts +1 -1
- package/dist/types/index.d.ts +12 -0
- package/package.json +76 -74
- package/src/assets/less/_reset.less +13 -4
- package/src/method.ts +4 -1
- package/src/ts/constants.ts +80 -61
- package/src/ts/export/index.ts +2 -1
- package/src/ts/ir/process.ts +1 -1
- package/src/ts/markdown/SMILESRender.ts +29 -0
- package/src/ts/markdown/adapterRender.ts +8 -4
- package/src/ts/markdown/codeRender.ts +1 -1
- package/src/ts/markdown/highlightRender.ts +59 -55
- package/src/ts/markdown/markmapRender.ts +2 -3
- package/src/ts/markdown/mathRender.ts +1 -1
- package/src/ts/markdown/mermaidRender.ts +2 -2
- package/src/ts/markdown/previewRender.ts +5 -3
- package/src/ts/preview/index.ts +3 -1
- package/src/ts/toolbar/Emoji.ts +5 -0
- package/src/ts/toolbar/Export.ts +1 -1
- package/src/ts/ui/setCodeTheme.ts +1 -1
- package/src/ts/undo/index.ts +6 -0
- package/src/ts/util/processCode.ts +4 -1
- package/src/ts/wysiwyg/highlightToolbarWYSIWYG.ts +1 -1
- package/src/ts/wysiwyg/index.ts +5 -2
- package/dist/js/highlight.js/highlight.pack.js +0 -1617
- package/dist/js/highlight.js/solidity.min.js +0 -73
- package/dist/js/highlight.js/styles/abap.css +0 -155
- package/dist/js/highlight.js/styles/algol.css +0 -143
- package/dist/js/highlight.js/styles/algol_nu.css +0 -90
- package/dist/js/highlight.js/styles/ant-design.css +0 -469
- package/dist/js/highlight.js/styles/arduino.css +0 -157
- package/dist/js/highlight.js/styles/autumn.css +0 -138
- package/dist/js/highlight.js/styles/borland.css +0 -147
- package/dist/js/highlight.js/styles/bw.css +0 -150
- package/dist/js/highlight.js/styles/colorful.css +0 -158
- package/dist/js/highlight.js/styles/dracula.css +0 -140
- package/dist/js/highlight.js/styles/emacs.css +0 -167
- package/dist/js/highlight.js/styles/friendly.css +0 -183
- package/dist/js/highlight.js/styles/fruity.css +0 -123
- package/dist/js/highlight.js/styles/github.css +0 -174
- package/dist/js/highlight.js/styles/igor.css +0 -124
- package/dist/js/highlight.js/styles/lovelace.css +0 -146
- package/dist/js/highlight.js/styles/manni.css +0 -139
- package/dist/js/highlight.js/styles/monokai.css +0 -132
- package/dist/js/highlight.js/styles/monokailight.css +0 -180
- package/dist/js/highlight.js/styles/murphy.css +0 -144
- package/dist/js/highlight.js/styles/native.css +0 -164
- package/dist/js/highlight.js/styles/paraiso-dark.css +0 -137
- package/dist/js/highlight.js/styles/paraiso-light.css +0 -136
- package/dist/js/highlight.js/styles/pastie.css +0 -180
- package/dist/js/highlight.js/styles/perldoc.css +0 -141
- package/dist/js/highlight.js/styles/pygments.css +0 -159
- package/dist/js/highlight.js/styles/rainbow_dash.css +0 -164
- package/dist/js/highlight.js/styles/rrt.css +0 -159
- package/dist/js/highlight.js/styles/solarized-dark.css +0 -146
- package/dist/js/highlight.js/styles/solarized-dark256.css +0 -146
- package/dist/js/highlight.js/styles/solarized-light.css +0 -163
- package/dist/js/highlight.js/styles/swapoff.css +0 -144
- package/dist/js/highlight.js/styles/tango.css +0 -183
- package/dist/js/highlight.js/styles/trac.css +0 -167
- package/dist/js/highlight.js/styles/vim.css +0 -144
- package/dist/js/highlight.js/styles/vs.css +0 -113
- package/dist/js/highlight.js/styles/xcode.css +0 -174
- package/dist/js/highlight.js/yul.min.js +0 -30
package/src/ts/constants.ts
CHANGED
|
@@ -5,65 +5,84 @@ const _VDITOR_VERSION = VDITOR_VERSION;
|
|
|
5
5
|
export {_VDITOR_VERSION as VDITOR_VERSION};
|
|
6
6
|
|
|
7
7
|
export abstract class Constants {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
8
|
+
public static readonly ZWSP: string = "\u200b";
|
|
9
|
+
public static readonly DROP_EDITOR: string = "application/editor";
|
|
10
|
+
public static readonly MOBILE_WIDTH: number = 520;
|
|
11
|
+
public static readonly CLASS_MENU_DISABLED: string = "vditor-menu--disabled";
|
|
12
|
+
public static readonly EDIT_TOOLBARS: string[] = ["emoji", "headings", "bold", "italic", "strike", "link", "list",
|
|
13
|
+
"ordered-list", "outdent", "indent", "check", "line", "quote", "code", "inline-code", "insert-after",
|
|
14
|
+
"insert-before", "upload", "record", "table"];
|
|
15
|
+
public static readonly CODE_THEME: string[] = ["a11y-dark", "agate", "an-old-hope", "androidstudio",
|
|
16
|
+
"arta", "atom-one-dark", "atom-one-dark-reasonable", "base16/3024", "base16/apathy", "base16/apprentice", "base16/ashes", "base16/atelier-cave", "base16/atelier-dune",
|
|
17
|
+
"base16/atelier-estuary", "base16/atelier-forest", "base16/atelier-heath", "base16/atelier-lakeside", "base16/atelier-plateau", "base16/atelier-savanna", "base16/atelier-seaside", "base16/atelier-sulphurpool",
|
|
18
|
+
"base16/atlas", "base16/bespin", "base16/black-metal", "base16/black-metal-bathory", "base16/black-metal-burzum", "base16/black-metal-dark-funeral", "base16/black-metal-gorgoroth", "base16/black-metal-immortal", "base16/black-metal-khold", "base16/black-metal-marduk", "base16/black-metal-mayhem", "base16/black-metal-nile", "base16/black-metal-venom", "base16/brewer", "base16/bright", "base16/brogrammer",
|
|
19
|
+
"base16/brush-trees-dark", "base16/chalk", "base16/circus", "base16/classic-dark", "base16/codeschool", "base16/colors", "base16/danqing", "base16/darcula", "base16/dark-violet",
|
|
20
|
+
"base16/darkmoss", "base16/darktooth", "base16/decaf", "base16/default-dark", "base16/dracula", "base16/edge-dark", "base16/eighties", "base16/embers", "base16/equilibrium-dark",
|
|
21
|
+
"base16/equilibrium-gray-dark", "base16/espresso", "base16/eva", "base16/eva-dim", "base16/flat", "base16/framer", "base16/gigavolt", "base16/google-dark", "base16/grayscale-dark", "base16/green-screen", "base16/gruvbox-dark-hard", "base16/gruvbox-dark-medium",
|
|
22
|
+
"base16/gruvbox-dark-pale", "base16/gruvbox-dark-soft", "base16/hardcore", "base16/harmonic16-dark", "base16/heetch-dark", "base16/helios", "base16/hopscotch", "base16/horizon-dark", "base16/humanoid-dark", "base16/ia-dark", "base16/icy-dark", "base16/ir-black", "base16/isotope",
|
|
23
|
+
"base16/kimber", "base16/london-tube", "base16/macintosh", "base16/marrakesh", "base16/materia", "base16/material", "base16/material-darker", "base16/material-palenight", "base16/material-vivid",
|
|
24
|
+
"base16/mellow-purple", "base16/mocha", "base16/monokai", "base16/nebula", "base16/nord", "base16/nova", "base16/ocean", "base16/oceanicnext", "base16/onedark", "base16/outrun-dark",
|
|
25
|
+
"base16/papercolor-dark", "base16/paraiso", "base16/pasque", "base16/phd", "base16/pico", "base16/pop", "base16/porple", "base16/qualia", "base16/railscasts", "base16/rebecca",
|
|
26
|
+
"base16/ros-pine", "base16/ros-pine-moon", "base16/sandcastle", "base16/seti-ui", "base16/silk-dark", "base16/snazzy", "base16/solar-flare", "base16/solarized-dark", "base16/spacemacs", "base16/summercamp", "base16/summerfruit-dark",
|
|
27
|
+
"base16/synth-midnight-terminal-dark", "base16/tango", "base16/tender", "base16/tomorrow-night", "base16/twilight", "base16/unikitty-dark", "base16/vulcan",
|
|
28
|
+
"base16/windows-10", "base16/windows-95", "base16/windows-high-contrast", "base16/windows-nt", "base16/woodland", "base16/xcode-dusk", "base16/zenburn", "codepen-embed", "dark",
|
|
29
|
+
"devibeans", "far", "felipec", "github-dark", "github-dark-dimmed", "gml", "gradient-dark", "hybrid", "ir-black", "isbl-editor-dark", "kimbie-dark", "lioshi",
|
|
30
|
+
"monokai", "monokai-sublime", "night-owl", "nnfx-dark", "nord", "obsidian", "panda-syntax-dark", "paraiso-dark", "pojoaque", "qtcreator-dark", "rainbow", "shades-of-purple", "srcery", "stackoverflow-dark",
|
|
31
|
+
"sunburst", "tomorrow-night-blue", "tomorrow-night-bright", "tokyo-night-dark", "vs2015", "xt256",
|
|
32
|
+
"ant-design",
|
|
33
|
+
"a11y-light", "arduino-light", "ascetic", "atom-one-light", "base16/atelier-cave-light",
|
|
34
|
+
"base16/atelier-dune-light", "base16/atelier-estuary-light", "base16/atelier-forest-light", "base16/atelier-heath-light",
|
|
35
|
+
"base16/atelier-lakeside-light", "base16/atelier-plateau-light", "base16/atelier-savanna-light", "base16/atelier-seaside-light", "base16/atelier-sulphurpool-light", "base16/brush-trees",
|
|
36
|
+
"base16/classic-light", "base16/cupcake", "base16/cupertino", "base16/default-light", "base16/dirtysea", "base16/edge-light", "base16/equilibrium-gray-light", "base16/equilibrium-light",
|
|
37
|
+
"base16/fruit-soda", "base16/github", "base16/google-light", "base16/grayscale-light", "base16/gruvbox-light-hard", "base16/gruvbox-light-medium", "base16/gruvbox-light-soft",
|
|
38
|
+
"base16/harmonic16-light", "base16/heetch-light", "base16/humanoid-light", "base16/horizon-light", "base16/ia-light", "base16/material-lighter", "base16/mexico-light",
|
|
39
|
+
"base16/one-light", "base16/papercolor-light", "base16/ros-pine-dawn", "base16/sagelight", "base16/shapeshifter",
|
|
40
|
+
"base16/silk-light", "base16/solar-flare-light", "base16/solarized-light", "base16/summerfruit-light", "base16/synth-midnight-terminal-light", "base16/tomorrow",
|
|
41
|
+
"base16/unikitty-light", "base16/windows-10-light", "base16/windows-95-light", "base16/windows-high-contrast-light", "brown-paper", "base16/windows-nt-light",
|
|
42
|
+
"color-brewer", "docco", "foundation", "github", "googlecode", "gradient-light", "grayscale", "idea", "intellij-light", "isbl-editor-light", "kimbie-light",
|
|
43
|
+
"lightfair", "magula", "mono-blue", "nnfx-light", "panda-syntax-light", "paraiso-light", "purebasic", "qtcreator-light", "routeros", "school-book",
|
|
44
|
+
"stackoverflow-light", "tokyo-night-light", "vs", "xcode", "default"];
|
|
45
|
+
public static readonly ALIAS_CODE_LANGUAGES: string[] = [
|
|
46
|
+
// 自定义
|
|
47
|
+
"abc", "plantuml", "mermaid", "flowchart", "echarts", "mindmap", "graphviz", "math", "markmap", "smiles",
|
|
48
|
+
// 别名
|
|
49
|
+
"js", "ts", "html", "toml", "c#", "bat"
|
|
50
|
+
];
|
|
51
|
+
public static readonly CDN = `https://unpkg.com/vditor@${VDITOR_VERSION}`;
|
|
52
|
+
public static readonly MARKDOWN_OPTIONS = {
|
|
53
|
+
autoSpace: false,
|
|
54
|
+
gfmAutoLink: true,
|
|
55
|
+
codeBlockPreview: true,
|
|
56
|
+
fixTermTypo: false,
|
|
57
|
+
footnotes: true,
|
|
58
|
+
linkBase: "",
|
|
59
|
+
linkPrefix: "",
|
|
60
|
+
listStyle: false,
|
|
61
|
+
mark: false,
|
|
62
|
+
mathBlockPreview: true,
|
|
63
|
+
paragraphBeginningSpace: false,
|
|
64
|
+
sanitize: true,
|
|
65
|
+
toc: false,
|
|
66
|
+
};
|
|
67
|
+
public static readonly HLJS_OPTIONS = {
|
|
68
|
+
enable: true,
|
|
69
|
+
lineNumber: false,
|
|
70
|
+
defaultLang: "",
|
|
71
|
+
style: "github",
|
|
72
|
+
};
|
|
73
|
+
public static readonly MATH_OPTIONS: IMath = {
|
|
74
|
+
engine: "KaTeX",
|
|
75
|
+
inlineDigit: false,
|
|
76
|
+
macros: {},
|
|
77
|
+
};
|
|
78
|
+
public static readonly THEME_OPTIONS = {
|
|
79
|
+
current: "light",
|
|
80
|
+
list: {
|
|
81
|
+
"ant-design": "Ant Design",
|
|
82
|
+
"dark": "Dark",
|
|
83
|
+
"light": "Light",
|
|
84
|
+
"wechat": "WeChat",
|
|
85
|
+
},
|
|
86
|
+
path: `${Constants.CDN}/dist/css/content-theme`,
|
|
87
|
+
};
|
|
69
88
|
}
|
package/src/ts/export/index.ts
CHANGED
|
@@ -69,7 +69,8 @@ export const exportHTML = (vditor: IVditor) => {
|
|
|
69
69
|
math: ${JSON.stringify(vditor.options.preview.math)},
|
|
70
70
|
});
|
|
71
71
|
Vditor.mermaidRender(previewElement, '${vditor.options.cdn}', '${vditor.options.theme}');
|
|
72
|
-
Vditor.
|
|
72
|
+
Vditor.SMILESRender(previewElement, '${vditor.options.cdn}', '${vditor.options.theme}');
|
|
73
|
+
Vditor.markmapRender(previewElement, '${vditor.options.cdn}');
|
|
73
74
|
Vditor.flowchartRender(previewElement, '${vditor.options.cdn}');
|
|
74
75
|
Vditor.graphvizRender(previewElement, '${vditor.options.cdn}');
|
|
75
76
|
Vditor.chartRender(previewElement, '${vditor.options.cdn}', '${vditor.options.theme}');
|
package/src/ts/ir/process.ts
CHANGED
|
@@ -23,7 +23,7 @@ export const processHint = (vditor: IVditor) => {
|
|
|
23
23
|
const key =
|
|
24
24
|
preBeforeElement.textContent.substring(0, getSelectPosition(preBeforeElement, vditor.ir.element).start)
|
|
25
25
|
.replace(Constants.ZWSP, "");
|
|
26
|
-
(vditor.options.preview.hljs.langs || Constants.
|
|
26
|
+
(vditor.options.preview.hljs.langs || Constants.ALIAS_CODE_LANGUAGES.concat((window.hljs?.listLanguages() ?? []).sort())).forEach((keyName) => {
|
|
27
27
|
if (keyName.indexOf(key.toLowerCase()) > -1) {
|
|
28
28
|
matchLangData.push({
|
|
29
29
|
html: keyName,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {Constants} from "../constants";
|
|
2
|
+
import {addScript} from "../util/addScript";
|
|
3
|
+
import {SMILESRenderAdapter} from "./adapterRender";
|
|
4
|
+
import {genUUID} from "../util/function";
|
|
5
|
+
|
|
6
|
+
declare class SmiDrawer {
|
|
7
|
+
constructor(moleculeOptions: IObject, reactionOptions: IObject);
|
|
8
|
+
|
|
9
|
+
public draw: (code: string, id: string, theme?: string) => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const SMILESRender = (element: (HTMLElement | Document) = document, cdn = Constants.CDN, theme: string) => {
|
|
13
|
+
const SMILESElements = SMILESRenderAdapter.getElements(element);
|
|
14
|
+
if (SMILESElements.length > 0) {
|
|
15
|
+
addScript(`${cdn}/dist/js/smiles-drawer/smiles-drawer.min.js?v=2.1.7`, "vditorAbcjsScript").then(() => {
|
|
16
|
+
let sd = new SmiDrawer({}, {});
|
|
17
|
+
SMILESElements.forEach((item: HTMLDivElement) => {
|
|
18
|
+
const code = SMILESRenderAdapter.getCode(item).trim();
|
|
19
|
+
if (item.getAttribute("data-processed") === "true" || code.trim() === "") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const id = "smiles" + genUUID()
|
|
23
|
+
item.innerHTML = `<svg id="${id}"></svg>`;
|
|
24
|
+
sd.draw(code, '#' + id, theme === "dark" ? "dark" : undefined)
|
|
25
|
+
item.setAttribute("data-processed", "true");
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
export const mathRenderAdapter = {
|
|
2
|
-
getCode: (
|
|
3
|
-
getElements: (element: HTMLElement) => element.querySelectorAll(".language-math"),
|
|
2
|
+
getCode: (el: Element) => el.textContent,
|
|
3
|
+
getElements: (element: HTMLElement| Document) => element.querySelectorAll(".language-math"),
|
|
4
|
+
};
|
|
5
|
+
export const SMILESRenderAdapter = {
|
|
6
|
+
getCode: (el: Element) => el.textContent,
|
|
7
|
+
getElements: (element: HTMLElement| Document) => element.querySelectorAll(".language-smiles"),
|
|
4
8
|
};
|
|
5
9
|
export const mermaidRenderAdapter = {
|
|
6
10
|
/** 不仅要返回code,并且需要将 code 设置为 el 的 innerHTML */
|
|
7
11
|
getCode: (el: Element) => el.textContent,
|
|
8
|
-
getElements: (element: HTMLElement) => element.querySelectorAll(".language-mermaid"),
|
|
12
|
+
getElements: (element: HTMLElement| Document) => element.querySelectorAll(".language-mermaid"),
|
|
9
13
|
};
|
|
10
14
|
export const markmapRenderAdapter = {
|
|
11
15
|
getCode: (el: Element) => el.textContent,
|
|
12
|
-
getElements: (element: HTMLElement) => element.querySelectorAll(".language-markmap"),
|
|
16
|
+
getElements: (element: HTMLElement| Document) => element.querySelectorAll(".language-markmap"),
|
|
13
17
|
};
|
|
14
18
|
export const mindmapRenderAdapter = {
|
|
15
19
|
getCode: (el: Element) => el.getAttribute("data-code"),
|
|
@@ -11,7 +11,7 @@ export const codeRender = (element: HTMLElement, option?: IHljs) => {
|
|
|
11
11
|
e.classList.contains("language-echarts") || e.classList.contains("language-mindmap") ||
|
|
12
12
|
e.classList.contains("language-plantuml") || e.classList.contains("language-markmap") ||
|
|
13
13
|
e.classList.contains("language-abc") || e.classList.contains("language-graphviz") ||
|
|
14
|
-
e.classList.contains("language-math")) {
|
|
14
|
+
e.classList.contains("language-math") || e.classList.contains("language-smiles")) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -2,10 +2,6 @@ import {Constants} from "../constants";
|
|
|
2
2
|
import {addScript} from "../util/addScript";
|
|
3
3
|
import {addStyle} from "../util/addStyle";
|
|
4
4
|
|
|
5
|
-
declare const hljs: {
|
|
6
|
-
highlightElement(element: Element): void;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
5
|
export const highlightRender = (hljsOption?: IHljs, element: HTMLElement | Document = document,
|
|
10
6
|
cdn = Constants.CDN) => {
|
|
11
7
|
let style = hljsOption.style;
|
|
@@ -13,11 +9,11 @@ export const highlightRender = (hljsOption?: IHljs, element: HTMLElement | Docum
|
|
|
13
9
|
style = "github";
|
|
14
10
|
}
|
|
15
11
|
const vditorHljsStyle = document.getElementById("vditorHljsStyle") as HTMLLinkElement;
|
|
16
|
-
const href = `${cdn}/dist/js/highlight.js/styles/${style}.css`;
|
|
12
|
+
const href = `${cdn}/dist/js/highlight.js/styles/${style}.min.css`;
|
|
17
13
|
if (vditorHljsStyle && vditorHljsStyle.getAttribute('href') !== href) {
|
|
18
14
|
vditorHljsStyle.remove();
|
|
19
15
|
}
|
|
20
|
-
addStyle(`${cdn}/dist/js/highlight.js/styles/${style}.css`, "vditorHljsStyle");
|
|
16
|
+
addStyle(`${cdn}/dist/js/highlight.js/styles/${style}.min.css`, "vditorHljsStyle");
|
|
21
17
|
|
|
22
18
|
if (hljsOption.enable === false) {
|
|
23
19
|
return;
|
|
@@ -28,62 +24,70 @@ export const highlightRender = (hljsOption?: IHljs, element: HTMLElement | Docum
|
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
addScript(`${cdn}/dist/js/highlight.js/highlight.
|
|
32
|
-
addScript(`${cdn}/dist/js/highlight.js/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
27
|
+
addScript(`${cdn}/dist/js/highlight.js/highlight.min.js?v=11.7.0`, "vditorHljsScript").then(() => {
|
|
28
|
+
addScript(`${cdn}/dist/js/highlight.js/third-languages.js?v=1.0.1`, "vditorHljsThirdScript").then(() => {
|
|
29
|
+
element.querySelectorAll("pre > code").forEach((block) => {
|
|
30
|
+
// ir & wysiwyg 区域不渲染
|
|
31
|
+
if (block.parentElement.classList.contains("vditor-ir__marker--pre") ||
|
|
32
|
+
block.parentElement.classList.contains("vditor-wysiwyg__pre")) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
if (block.classList.contains("language-mermaid") || block.classList.contains("language-flowchart") ||
|
|
37
|
+
block.classList.contains("language-echarts") || block.classList.contains("language-mindmap") ||
|
|
38
|
+
block.classList.contains("language-plantuml")|| block.classList.contains("language-smiles") ||
|
|
39
|
+
block.classList.contains("language-abc") || block.classList.contains("language-graphviz") ||
|
|
40
|
+
block.classList.contains("language-math")) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
48
43
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
if (hljsOption.defaultLang !== "" && block.className.indexOf("language-") === -1) {
|
|
45
|
+
block.classList.add("language-" + hljsOption.defaultLang)
|
|
46
|
+
}
|
|
52
47
|
|
|
53
|
-
|
|
48
|
+
let language = hljsOption.defaultLang || block.className.replace("language-", "");
|
|
49
|
+
if (!window.hljs.getLanguage(language)) {
|
|
50
|
+
language = "plaintext";
|
|
51
|
+
}
|
|
52
|
+
block.innerHTML = window.hljs.highlight(
|
|
53
|
+
block.textContent,
|
|
54
|
+
{
|
|
55
|
+
language,
|
|
56
|
+
ignoreIllegals: true
|
|
57
|
+
}).value;
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
block.classList.add("hljs");
|
|
60
|
+
if (!hljsOption.lineNumber) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
58
63
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
block.classList.add("vditor-linenumber");
|
|
65
|
+
let linenNumberTemp: HTMLDivElement = block.querySelector(".vditor-linenumber__temp");
|
|
66
|
+
if (!linenNumberTemp) {
|
|
67
|
+
linenNumberTemp = document.createElement("div");
|
|
68
|
+
linenNumberTemp.className = "vditor-linenumber__temp";
|
|
69
|
+
block.insertAdjacentElement("beforeend", linenNumberTemp);
|
|
70
|
+
}
|
|
71
|
+
const whiteSpace = getComputedStyle(block).whiteSpace;
|
|
72
|
+
let isSoftWrap = false;
|
|
73
|
+
if (whiteSpace === "pre-wrap" || whiteSpace === "pre-line") {
|
|
74
|
+
isSoftWrap = true;
|
|
75
|
+
}
|
|
76
|
+
let lineNumberHTML = "";
|
|
77
|
+
const lineList = block.textContent.split(/\r\n|\r|\n/g);
|
|
78
|
+
lineList.pop();
|
|
79
|
+
lineList.map((line) => {
|
|
80
|
+
let lineHeight = "";
|
|
81
|
+
if (isSoftWrap) {
|
|
82
|
+
linenNumberTemp.textContent = line || "\n";
|
|
83
|
+
lineHeight = ` style="height:${linenNumberTemp.getBoundingClientRect().height}px"`;
|
|
70
84
|
}
|
|
71
|
-
|
|
72
|
-
const lineList = block.textContent.split(/\r\n|\r|\n/g);
|
|
73
|
-
lineList.pop();
|
|
74
|
-
lineList.map((line) => {
|
|
75
|
-
let lineHeight = "";
|
|
76
|
-
if (isSoftWrap) {
|
|
77
|
-
linenNumberTemp.textContent = line || "\n";
|
|
78
|
-
lineHeight = ` style="height:${linenNumberTemp.getBoundingClientRect().height}px"`;
|
|
79
|
-
}
|
|
80
|
-
lineNumberHTML += `<span${lineHeight}></span>`;
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
linenNumberTemp.style.display = "none";
|
|
84
|
-
lineNumberHTML = `<span class="vditor-linenumber__rows">${lineNumberHTML}</span>`;
|
|
85
|
-
block.insertAdjacentHTML("beforeend", lineNumberHTML);
|
|
85
|
+
lineNumberHTML += `<span${lineHeight}></span>`;
|
|
86
86
|
});
|
|
87
|
+
|
|
88
|
+
linenNumberTemp.style.display = "none";
|
|
89
|
+
lineNumberHTML = `<span class="vditor-linenumber__rows">${lineNumberHTML}</span>`;
|
|
90
|
+
block.insertAdjacentHTML("beforeend", lineNumberHTML);
|
|
87
91
|
})
|
|
88
92
|
})
|
|
89
93
|
});
|
|
@@ -32,12 +32,12 @@ const init = (el: HTMLElement,code: string) => {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
export const markmapRender = (element: HTMLElement, cdn = Constants.CDN
|
|
35
|
+
export const markmapRender = (element: (HTMLElement | Document) = document, cdn = Constants.CDN) => {
|
|
36
36
|
const markmapElements = markmapRenderAdapter.getElements(element);
|
|
37
37
|
if (markmapElements.length === 0) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
addScript(`${cdn}/dist/js/markmap/markmap.min.js`, "
|
|
40
|
+
addScript(`${cdn}/dist/js/markmap/markmap.min.js`, "vditorMarkerScript").then(() => {
|
|
41
41
|
markmapElements.forEach((item) => {
|
|
42
42
|
const code = markmapRenderAdapter.getCode(item);
|
|
43
43
|
if (item.getAttribute("data-processed") === "true" || code.trim() === "") {
|
|
@@ -53,5 +53,4 @@ export const markmapRender = (element: HTMLElement, cdn = Constants.CDN, theme:
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
|
|
57
56
|
};
|
|
@@ -18,7 +18,7 @@ declare global {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export const mathRender = (element: HTMLElement, options?: { cdn?: string, math?: IMath }) => {
|
|
21
|
+
export const mathRender = (element: (HTMLElement | Document) = document, options?: { cdn?: string, math?: IMath }) => {
|
|
22
22
|
const mathElements = mathRenderAdapter.getElements(element);
|
|
23
23
|
|
|
24
24
|
if (mathElements.length === 0) {
|
|
@@ -8,7 +8,7 @@ declare const mermaid: {
|
|
|
8
8
|
render(id: string, text: string): { svg: string }
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
export const mermaidRender = (element: HTMLElement, cdn = Constants.CDN, theme: string) => {
|
|
11
|
+
export const mermaidRender = (element: (HTMLElement | Document) = document, cdn = Constants.CDN, theme: string) => {
|
|
12
12
|
const mermaidElements = mermaidRenderAdapter.getElements(element);
|
|
13
13
|
if (mermaidElements.length === 0) {
|
|
14
14
|
return;
|
|
@@ -44,7 +44,7 @@ export const mermaidRender = (element: HTMLElement, cdn = Constants.CDN, theme:
|
|
|
44
44
|
if (item.getAttribute("data-processed") === "true" || code.trim() === "") {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
const id = "mermaid"+genUUID()
|
|
47
|
+
const id = "mermaid" + genUUID()
|
|
48
48
|
try {
|
|
49
49
|
const mermaidData = await mermaid.render(id, item.textContent);
|
|
50
50
|
item.innerHTML = mermaidData.svg;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Constants} from "../constants";
|
|
2
2
|
import {setContentTheme} from "../ui/setContentTheme";
|
|
3
|
-
import {addScript
|
|
3
|
+
import {addScript} from "../util/addScript";
|
|
4
4
|
import {hasClosestByClassName, hasClosestByMatchTag} from "../util/hasClosest";
|
|
5
5
|
import {merge} from "../util/merge";
|
|
6
6
|
import {abcRender} from "./abcRender";
|
|
@@ -14,7 +14,8 @@ import {lazyLoadImageRender} from "./lazyLoadImageRender";
|
|
|
14
14
|
import {mathRender} from "./mathRender";
|
|
15
15
|
import {mediaRender} from "./mediaRender";
|
|
16
16
|
import {mermaidRender} from "./mermaidRender";
|
|
17
|
-
import {markmapRender} from "
|
|
17
|
+
import {markmapRender} from "./markmapRender";
|
|
18
|
+
import {SMILESRender} from "./SMILESRender";
|
|
18
19
|
import {mindmapRender} from "./mindmapRender";
|
|
19
20
|
import {plantumlRender} from "./plantumlRender";
|
|
20
21
|
import {setLute} from "./setLute";
|
|
@@ -131,7 +132,8 @@ export const previewRender = async (previewElement: HTMLDivElement, markdown: st
|
|
|
131
132
|
math: mergedOptions.math,
|
|
132
133
|
});
|
|
133
134
|
mermaidRender(previewElement, mergedOptions.cdn, mergedOptions.mode);
|
|
134
|
-
|
|
135
|
+
SMILESRender(previewElement, mergedOptions.cdn, mergedOptions.mode);
|
|
136
|
+
markmapRender(previewElement, mergedOptions.cdn);
|
|
135
137
|
flowchartRender(previewElement, mergedOptions.cdn);
|
|
136
138
|
graphvizRender(previewElement, mergedOptions.cdn);
|
|
137
139
|
chartRender(previewElement, mergedOptions.cdn, mergedOptions.mode);
|
package/src/ts/preview/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import {highlightRender} from "../markdown/highlightRender";
|
|
|
8
8
|
import {mathRender} from "../markdown/mathRender";
|
|
9
9
|
import {mediaRender} from "../markdown/mediaRender";
|
|
10
10
|
import {mermaidRender} from "../markdown/mermaidRender";
|
|
11
|
+
import {SMILESRender} from "../markdown/SMILESRender";
|
|
11
12
|
import {markmapRender} from "../markdown/markmapRender";
|
|
12
13
|
import {mindmapRender} from "../markdown/mindmapRender";
|
|
13
14
|
import {plantumlRender} from "../markdown/plantumlRender";
|
|
@@ -224,7 +225,8 @@ export class Preview {
|
|
|
224
225
|
highlightRender(vditor.options.preview.hljs, vditor.preview.previewElement,
|
|
225
226
|
vditor.options.cdn);
|
|
226
227
|
mermaidRender(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
|
227
|
-
markmapRender(vditor.preview.previewElement, vditor.options.cdn
|
|
228
|
+
markmapRender(vditor.preview.previewElement, vditor.options.cdn);
|
|
229
|
+
SMILESRender(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
|
228
230
|
flowchartRender(vditor.preview.previewElement, vditor.options.cdn);
|
|
229
231
|
graphvizRender(vditor.preview.previewElement, vditor.options.cdn);
|
|
230
232
|
chartRender(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme);
|
package/src/ts/toolbar/Emoji.ts
CHANGED
|
@@ -4,6 +4,8 @@ import {hasClosestByTag} from "../util/hasClosestByHeadings";
|
|
|
4
4
|
import {getEditorRange, insertHTML, setSelectionFocus} from "../util/selection";
|
|
5
5
|
import {MenuItem} from "./MenuItem";
|
|
6
6
|
import {toggleSubMenu} from "./setToolbar";
|
|
7
|
+
import {hasClosestBlock} from "../util/hasClosest";
|
|
8
|
+
import {modifyPre} from "../wysiwyg/inlineTag";
|
|
7
9
|
|
|
8
10
|
export class Emoji extends MenuItem {
|
|
9
11
|
public element: HTMLElement;
|
|
@@ -57,6 +59,9 @@ data-value=":${key}: " data-key=":${key}:" class="vditor-emojis__icon" src="${em
|
|
|
57
59
|
} else {
|
|
58
60
|
range.extractContents();
|
|
59
61
|
range.insertNode(document.createTextNode(value));
|
|
62
|
+
if (!hasClosestBlock(range.startContainer)) {
|
|
63
|
+
modifyPre(vditor, range);
|
|
64
|
+
}
|
|
60
65
|
}
|
|
61
66
|
range.collapse(false);
|
|
62
67
|
setSelectionFocus(range);
|
package/src/ts/toolbar/Export.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {exportHTML, exportMarkdown, exportPDF} from "../export";
|
|
1
|
+
import {exportHTML, exportMarkdown, exportPDF} from "../export/index";
|
|
2
2
|
import {getEventName} from "../util/compatibility";
|
|
3
3
|
import {MenuItem} from "./MenuItem";
|
|
4
4
|
import {hidePanel, toggleSubMenu} from "./setToolbar";
|
|
@@ -6,7 +6,7 @@ export const setCodeTheme = (codeTheme: string, cdn = Constants.CDN) => {
|
|
|
6
6
|
codeTheme = "github";
|
|
7
7
|
}
|
|
8
8
|
const vditorHljsStyle = document.getElementById("vditorHljsStyle") as HTMLLinkElement;
|
|
9
|
-
const href = `${cdn}/dist/js/highlight.js/styles/${codeTheme}.css`;
|
|
9
|
+
const href = `${cdn}/dist/js/highlight.js/styles/${codeTheme}.min.css`;
|
|
10
10
|
if (!vditorHljsStyle) {
|
|
11
11
|
addStyle(href, "vditorHljsStyle");
|
|
12
12
|
} else if (vditorHljsStyle.getAttribute('href') !== href) {
|
package/src/ts/undo/index.ts
CHANGED
|
@@ -149,6 +149,12 @@ class Undo {
|
|
|
149
149
|
this[vditor.currentMode].lastText = text;
|
|
150
150
|
vditor[vditor.currentMode].element.innerHTML = text;
|
|
151
151
|
if (vditor.currentMode !== "sv") {
|
|
152
|
+
vditor[vditor.currentMode].element.querySelectorAll(`.vditor-${vditor.currentMode}__preview`)
|
|
153
|
+
.forEach((blockElement: HTMLElement) => {
|
|
154
|
+
if (blockElement.parentElement.querySelector(".language-echarts")) {
|
|
155
|
+
blockElement.outerHTML = vditor.lute.SpinVditorDOM(blockElement.parentElement.outerHTML);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
152
158
|
vditor[vditor.currentMode].element.querySelectorAll(`.vditor-${vditor.currentMode}__preview[data-render='2']`)
|
|
153
159
|
.forEach((blockElement: HTMLElement) => {
|
|
154
160
|
processCodeRender(blockElement, vditor);
|
|
@@ -9,6 +9,7 @@ import {mermaidRender} from "../markdown/mermaidRender";
|
|
|
9
9
|
import {markmapRender} from "../markdown/markmapRender";
|
|
10
10
|
import {mindmapRender} from "../markdown/mindmapRender";
|
|
11
11
|
import {plantumlRender} from "../markdown/plantumlRender";
|
|
12
|
+
import {SMILESRender} from "../markdown/SMILESRender";
|
|
12
13
|
|
|
13
14
|
export const processPasteCode = (html: string, text: string, type = "sv") => {
|
|
14
15
|
const tempElement = document.createElement("div");
|
|
@@ -67,8 +68,10 @@ export const processCodeRender = (previewPanel: HTMLElement, vditor: IVditor) =>
|
|
|
67
68
|
abcRender(previewPanel, vditor.options.cdn);
|
|
68
69
|
} else if (language === "mermaid") {
|
|
69
70
|
mermaidRender(previewPanel, vditor.options.cdn, vditor.options.theme);
|
|
71
|
+
} else if (language === "smiles") {
|
|
72
|
+
SMILESRender(previewPanel, vditor.options.cdn, vditor.options.theme);
|
|
70
73
|
} else if (language === "markmap") {
|
|
71
|
-
markmapRender(previewPanel, vditor.options.cdn
|
|
74
|
+
markmapRender(previewPanel, vditor.options.cdn);
|
|
72
75
|
} else if (language === "flowchart") {
|
|
73
76
|
flowchartRender(previewPanel, vditor.options.cdn);
|
|
74
77
|
} else if (language === "echarts") {
|
|
@@ -684,7 +684,7 @@ export const highlightToolbarWYSIWYG = (vditor: IVditor) => {
|
|
|
684
684
|
}
|
|
685
685
|
const matchLangData: IHintData[] = [];
|
|
686
686
|
const key = language.value.substring(0, language.selectionStart);
|
|
687
|
-
(vditor.options.preview.hljs.langs ||
|
|
687
|
+
(vditor.options.preview.hljs.langs || Constants.ALIAS_CODE_LANGUAGES.concat((window.hljs?.listLanguages() ?? []).sort())).forEach((keyName) => {
|
|
688
688
|
if (keyName.indexOf(key.toLowerCase()) > -1) {
|
|
689
689
|
matchLangData.push({
|
|
690
690
|
html: keyName,
|
package/src/ts/wysiwyg/index.ts
CHANGED
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
getCursorPosition,
|
|
21
21
|
getEditorRange,
|
|
22
22
|
getSelectPosition,
|
|
23
|
-
setRangeByWbr,
|
|
24
|
-
} from "../util/selection"
|
|
23
|
+
setRangeByWbr, setSelectionFocus,
|
|
24
|
+
} from "../util/selection"
|
|
25
25
|
import {clickToc, renderToc} from "../util/toc";
|
|
26
26
|
import {afterRenderEvent} from "./afterRenderEvent";
|
|
27
27
|
import {genImagePopover, genLinkRefPopover, highlightToolbarWYSIWYG} from "./highlightToolbarWYSIWYG";
|
|
@@ -417,6 +417,9 @@ class WYSIWYG {
|
|
|
417
417
|
checkElement.removeAttribute("checked");
|
|
418
418
|
}
|
|
419
419
|
this.preventInput = true;
|
|
420
|
+
if (getSelection().rangeCount > 0) {
|
|
421
|
+
setSelectionFocus(getSelection().getRangeAt(0));
|
|
422
|
+
}
|
|
420
423
|
afterRenderEvent(vditor);
|
|
421
424
|
return;
|
|
422
425
|
}
|