@8btc/mditor 0.0.14 → 0.0.15

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.
Files changed (264) hide show
  1. package/dist/index.css +16 -9
  2. package/dist/index.js +79 -21
  3. package/dist/index.min.js +1 -1
  4. package/dist/js/highlight.js/styles/a11y-dark.min.css +82 -2
  5. package/dist/js/highlight.js/styles/a11y-light.min.css +80 -2
  6. package/dist/js/highlight.js/styles/agate.min.css +101 -2
  7. package/dist/js/highlight.js/styles/an-old-hope.min.css +60 -2
  8. package/dist/js/highlight.js/styles/androidstudio.min.css +57 -1
  9. package/dist/js/highlight.js/styles/arduino-light.min.css +74 -1
  10. package/dist/js/highlight.js/styles/arta.min.css +63 -1
  11. package/dist/js/highlight.js/styles/ascetic.min.css +41 -1
  12. package/dist/js/highlight.js/styles/atom-one-dark-reasonable.min.css +95 -1
  13. package/dist/js/highlight.js/styles/atom-one-dark.min.css +72 -1
  14. package/dist/js/highlight.js/styles/atom-one-light.min.css +72 -1
  15. package/dist/js/highlight.js/styles/base16/3024.min.css +97 -1
  16. package/dist/js/highlight.js/styles/base16/apathy.min.css +97 -1
  17. package/dist/js/highlight.js/styles/base16/apprentice.min.css +97 -1
  18. package/dist/js/highlight.js/styles/base16/ashes.min.css +97 -1
  19. package/dist/js/highlight.js/styles/base16/atelier-cave-light.min.css +97 -1
  20. package/dist/js/highlight.js/styles/base16/atelier-cave.min.css +97 -1
  21. package/dist/js/highlight.js/styles/base16/atelier-dune-light.min.css +97 -1
  22. package/dist/js/highlight.js/styles/base16/atelier-dune.min.css +97 -1
  23. package/dist/js/highlight.js/styles/base16/atelier-estuary-light.min.css +97 -1
  24. package/dist/js/highlight.js/styles/base16/atelier-estuary.min.css +97 -1
  25. package/dist/js/highlight.js/styles/base16/atelier-forest-light.min.css +97 -1
  26. package/dist/js/highlight.js/styles/base16/atelier-forest.min.css +97 -1
  27. package/dist/js/highlight.js/styles/base16/atelier-heath-light.min.css +97 -1
  28. package/dist/js/highlight.js/styles/base16/atelier-heath.min.css +97 -1
  29. package/dist/js/highlight.js/styles/base16/atelier-lakeside-light.min.css +97 -1
  30. package/dist/js/highlight.js/styles/base16/atelier-lakeside.min.css +97 -1
  31. package/dist/js/highlight.js/styles/base16/atelier-plateau-light.min.css +97 -1
  32. package/dist/js/highlight.js/styles/base16/atelier-plateau.min.css +97 -1
  33. package/dist/js/highlight.js/styles/base16/atelier-savanna-light.min.css +97 -1
  34. package/dist/js/highlight.js/styles/base16/atelier-savanna.min.css +97 -1
  35. package/dist/js/highlight.js/styles/base16/atelier-seaside-light.min.css +97 -1
  36. package/dist/js/highlight.js/styles/base16/atelier-seaside.min.css +97 -1
  37. package/dist/js/highlight.js/styles/base16/atelier-sulphurpool-light.min.css +97 -1
  38. package/dist/js/highlight.js/styles/base16/atelier-sulphurpool.min.css +97 -1
  39. package/dist/js/highlight.js/styles/base16/atlas.min.css +97 -1
  40. package/dist/js/highlight.js/styles/base16/bespin.min.css +97 -1
  41. package/dist/js/highlight.js/styles/base16/black-metal-bathory.min.css +97 -1
  42. package/dist/js/highlight.js/styles/base16/black-metal-burzum.min.css +97 -1
  43. package/dist/js/highlight.js/styles/base16/black-metal-dark-funeral.min.css +97 -1
  44. package/dist/js/highlight.js/styles/base16/black-metal-gorgoroth.min.css +97 -1
  45. package/dist/js/highlight.js/styles/base16/black-metal-immortal.min.css +97 -1
  46. package/dist/js/highlight.js/styles/base16/black-metal-khold.min.css +97 -1
  47. package/dist/js/highlight.js/styles/base16/black-metal-marduk.min.css +97 -1
  48. package/dist/js/highlight.js/styles/base16/black-metal-mayhem.min.css +97 -1
  49. package/dist/js/highlight.js/styles/base16/black-metal-nile.min.css +97 -1
  50. package/dist/js/highlight.js/styles/base16/black-metal-venom.min.css +97 -1
  51. package/dist/js/highlight.js/styles/base16/black-metal.min.css +97 -1
  52. package/dist/js/highlight.js/styles/base16/brewer.min.css +97 -1
  53. package/dist/js/highlight.js/styles/base16/bright.min.css +97 -1
  54. package/dist/js/highlight.js/styles/base16/brogrammer.min.css +97 -1
  55. package/dist/js/highlight.js/styles/base16/brush-trees-dark.min.css +97 -1
  56. package/dist/js/highlight.js/styles/base16/brush-trees.min.css +97 -1
  57. package/dist/js/highlight.js/styles/base16/chalk.min.css +97 -1
  58. package/dist/js/highlight.js/styles/base16/circus.min.css +97 -1
  59. package/dist/js/highlight.js/styles/base16/classic-dark.min.css +97 -1
  60. package/dist/js/highlight.js/styles/base16/classic-light.min.css +97 -1
  61. package/dist/js/highlight.js/styles/base16/codeschool.min.css +97 -1
  62. package/dist/js/highlight.js/styles/base16/colors.min.css +97 -1
  63. package/dist/js/highlight.js/styles/base16/cupcake.min.css +97 -1
  64. package/dist/js/highlight.js/styles/base16/cupertino.min.css +95 -1
  65. package/dist/js/highlight.js/styles/base16/danqing.min.css +97 -1
  66. package/dist/js/highlight.js/styles/base16/darcula.min.css +97 -1
  67. package/dist/js/highlight.js/styles/base16/dark-violet.min.css +97 -1
  68. package/dist/js/highlight.js/styles/base16/darkmoss.min.css +97 -1
  69. package/dist/js/highlight.js/styles/base16/darktooth.min.css +97 -1
  70. package/dist/js/highlight.js/styles/base16/decaf.min.css +97 -1
  71. package/dist/js/highlight.js/styles/base16/default-dark.min.css +97 -1
  72. package/dist/js/highlight.js/styles/base16/default-light.min.css +97 -1
  73. package/dist/js/highlight.js/styles/base16/dirtysea.min.css +97 -1
  74. package/dist/js/highlight.js/styles/base16/dracula.min.css +97 -1
  75. package/dist/js/highlight.js/styles/base16/edge-dark.min.css +95 -1
  76. package/dist/js/highlight.js/styles/base16/edge-light.min.css +95 -1
  77. package/dist/js/highlight.js/styles/base16/eighties.min.css +97 -1
  78. package/dist/js/highlight.js/styles/base16/embers.min.css +97 -1
  79. package/dist/js/highlight.js/styles/base16/equilibrium-dark.min.css +97 -1
  80. package/dist/js/highlight.js/styles/base16/equilibrium-gray-dark.min.css +97 -1
  81. package/dist/js/highlight.js/styles/base16/equilibrium-gray-light.min.css +97 -1
  82. package/dist/js/highlight.js/styles/base16/equilibrium-light.min.css +97 -1
  83. package/dist/js/highlight.js/styles/base16/espresso.min.css +97 -1
  84. package/dist/js/highlight.js/styles/base16/eva-dim.min.css +97 -1
  85. package/dist/js/highlight.js/styles/base16/eva.min.css +97 -1
  86. package/dist/js/highlight.js/styles/base16/flat.min.css +97 -1
  87. package/dist/js/highlight.js/styles/base16/framer.min.css +97 -1
  88. package/dist/js/highlight.js/styles/base16/fruit-soda.min.css +97 -1
  89. package/dist/js/highlight.js/styles/base16/gigavolt.min.css +97 -1
  90. package/dist/js/highlight.js/styles/base16/github.min.css +95 -1
  91. package/dist/js/highlight.js/styles/base16/google-dark.min.css +95 -1
  92. package/dist/js/highlight.js/styles/base16/google-light.min.css +95 -1
  93. package/dist/js/highlight.js/styles/base16/grayscale-dark.min.css +97 -1
  94. package/dist/js/highlight.js/styles/base16/grayscale-light.min.css +97 -1
  95. package/dist/js/highlight.js/styles/base16/green-screen.min.css +97 -1
  96. package/dist/js/highlight.js/styles/base16/gruvbox-dark-hard.min.css +97 -1
  97. package/dist/js/highlight.js/styles/base16/gruvbox-dark-medium.min.css +97 -1
  98. package/dist/js/highlight.js/styles/base16/gruvbox-dark-pale.min.css +97 -1
  99. package/dist/js/highlight.js/styles/base16/gruvbox-dark-soft.min.css +97 -1
  100. package/dist/js/highlight.js/styles/base16/gruvbox-light-hard.min.css +97 -1
  101. package/dist/js/highlight.js/styles/base16/gruvbox-light-medium.min.css +97 -1
  102. package/dist/js/highlight.js/styles/base16/gruvbox-light-soft.min.css +97 -1
  103. package/dist/js/highlight.js/styles/base16/hardcore.min.css +97 -1
  104. package/dist/js/highlight.js/styles/base16/harmonic16-dark.min.css +97 -1
  105. package/dist/js/highlight.js/styles/base16/harmonic16-light.min.css +97 -1
  106. package/dist/js/highlight.js/styles/base16/heetch-dark.min.css +97 -1
  107. package/dist/js/highlight.js/styles/base16/heetch-light.min.css +97 -1
  108. package/dist/js/highlight.js/styles/base16/helios.min.css +97 -1
  109. package/dist/js/highlight.js/styles/base16/hopscotch.min.css +97 -1
  110. package/dist/js/highlight.js/styles/base16/horizon-dark.min.css +97 -1
  111. package/dist/js/highlight.js/styles/base16/horizon-light.min.css +97 -1
  112. package/dist/js/highlight.js/styles/base16/humanoid-dark.min.css +97 -1
  113. package/dist/js/highlight.js/styles/base16/humanoid-light.min.css +97 -1
  114. package/dist/js/highlight.js/styles/base16/ia-dark.min.css +97 -1
  115. package/dist/js/highlight.js/styles/base16/ia-light.min.css +97 -1
  116. package/dist/js/highlight.js/styles/base16/icy-dark.min.css +97 -1
  117. package/dist/js/highlight.js/styles/base16/ir-black.min.css +97 -1
  118. package/dist/js/highlight.js/styles/base16/isotope.min.css +97 -1
  119. package/dist/js/highlight.js/styles/base16/kimber.min.css +97 -1
  120. package/dist/js/highlight.js/styles/base16/london-tube.min.css +97 -1
  121. package/dist/js/highlight.js/styles/base16/macintosh.min.css +95 -1
  122. package/dist/js/highlight.js/styles/base16/marrakesh.min.css +97 -1
  123. package/dist/js/highlight.js/styles/base16/materia.min.css +97 -1
  124. package/dist/js/highlight.js/styles/base16/material-darker.min.css +97 -1
  125. package/dist/js/highlight.js/styles/base16/material-lighter.min.css +97 -1
  126. package/dist/js/highlight.js/styles/base16/material-palenight.min.css +97 -1
  127. package/dist/js/highlight.js/styles/base16/material-vivid.min.css +97 -1
  128. package/dist/js/highlight.js/styles/base16/material.min.css +97 -1
  129. package/dist/js/highlight.js/styles/base16/mellow-purple.min.css +97 -1
  130. package/dist/js/highlight.js/styles/base16/mexico-light.min.css +97 -1
  131. package/dist/js/highlight.js/styles/base16/mocha.min.css +97 -1
  132. package/dist/js/highlight.js/styles/base16/monokai.min.css +97 -1
  133. package/dist/js/highlight.js/styles/base16/nebula.min.css +97 -1
  134. package/dist/js/highlight.js/styles/base16/nord.min.css +97 -1
  135. package/dist/js/highlight.js/styles/base16/nova.min.css +95 -1
  136. package/dist/js/highlight.js/styles/base16/ocean.min.css +97 -1
  137. package/dist/js/highlight.js/styles/base16/oceanicnext.min.css +97 -1
  138. package/dist/js/highlight.js/styles/base16/one-light.min.css +97 -1
  139. package/dist/js/highlight.js/styles/base16/onedark.min.css +97 -1
  140. package/dist/js/highlight.js/styles/base16/outrun-dark.min.css +97 -1
  141. package/dist/js/highlight.js/styles/base16/papercolor-dark.min.css +97 -1
  142. package/dist/js/highlight.js/styles/base16/papercolor-light.min.css +95 -1
  143. package/dist/js/highlight.js/styles/base16/paraiso.min.css +97 -1
  144. package/dist/js/highlight.js/styles/base16/pasque.min.css +97 -1
  145. package/dist/js/highlight.js/styles/base16/phd.min.css +97 -1
  146. package/dist/js/highlight.js/styles/base16/pico.min.css +97 -1
  147. package/dist/js/highlight.js/styles/base16/pop.min.css +97 -1
  148. package/dist/js/highlight.js/styles/base16/porple.min.css +97 -1
  149. package/dist/js/highlight.js/styles/base16/qualia.min.css +97 -1
  150. package/dist/js/highlight.js/styles/base16/railscasts.min.css +97 -1
  151. package/dist/js/highlight.js/styles/base16/rebecca.min.css +97 -1
  152. package/dist/js/highlight.js/styles/base16/ros-pine-dawn.min.css +97 -1
  153. package/dist/js/highlight.js/styles/base16/ros-pine-moon.min.css +97 -1
  154. package/dist/js/highlight.js/styles/base16/ros-pine.min.css +97 -1
  155. package/dist/js/highlight.js/styles/base16/sagelight.min.css +97 -1
  156. package/dist/js/highlight.js/styles/base16/sandcastle.min.css +93 -1
  157. package/dist/js/highlight.js/styles/base16/seti-ui.min.css +97 -1
  158. package/dist/js/highlight.js/styles/base16/shapeshifter.min.css +97 -1
  159. package/dist/js/highlight.js/styles/base16/silk-dark.min.css +97 -1
  160. package/dist/js/highlight.js/styles/base16/silk-light.min.css +97 -1
  161. package/dist/js/highlight.js/styles/base16/snazzy.min.css +97 -1
  162. package/dist/js/highlight.js/styles/base16/solar-flare-light.min.css +97 -1
  163. package/dist/js/highlight.js/styles/base16/solar-flare.min.css +97 -1
  164. package/dist/js/highlight.js/styles/base16/solarized-dark.min.css +97 -1
  165. package/dist/js/highlight.js/styles/base16/solarized-light.min.css +97 -1
  166. package/dist/js/highlight.js/styles/base16/spacemacs.min.css +97 -1
  167. package/dist/js/highlight.js/styles/base16/summercamp.min.css +97 -1
  168. package/dist/js/highlight.js/styles/base16/summerfruit-dark.min.css +97 -1
  169. package/dist/js/highlight.js/styles/base16/summerfruit-light.min.css +97 -1
  170. package/dist/js/highlight.js/styles/base16/synth-midnight-terminal-dark.min.css +97 -1
  171. package/dist/js/highlight.js/styles/base16/synth-midnight-terminal-light.min.css +97 -1
  172. package/dist/js/highlight.js/styles/base16/tango.min.css +97 -1
  173. package/dist/js/highlight.js/styles/base16/tender.min.css +97 -1
  174. package/dist/js/highlight.js/styles/base16/tomorrow-night.min.css +97 -1
  175. package/dist/js/highlight.js/styles/base16/tomorrow.min.css +97 -1
  176. package/dist/js/highlight.js/styles/base16/twilight.min.css +97 -1
  177. package/dist/js/highlight.js/styles/base16/unikitty-dark.min.css +97 -1
  178. package/dist/js/highlight.js/styles/base16/unikitty-light.min.css +97 -1
  179. package/dist/js/highlight.js/styles/base16/vulcan.min.css +93 -1
  180. package/dist/js/highlight.js/styles/base16/windows-10-light.min.css +97 -1
  181. package/dist/js/highlight.js/styles/base16/windows-10.min.css +97 -1
  182. package/dist/js/highlight.js/styles/base16/windows-95-light.min.css +97 -1
  183. package/dist/js/highlight.js/styles/base16/windows-95.min.css +97 -1
  184. package/dist/js/highlight.js/styles/base16/windows-high-contrast-light.min.css +97 -1
  185. package/dist/js/highlight.js/styles/base16/windows-high-contrast.min.css +97 -1
  186. package/dist/js/highlight.js/styles/base16/windows-nt-light.min.css +97 -1
  187. package/dist/js/highlight.js/styles/base16/windows-nt.min.css +97 -1
  188. package/dist/js/highlight.js/styles/base16/woodland.min.css +97 -1
  189. package/dist/js/highlight.js/styles/base16/xcode-dusk.min.css +97 -1
  190. package/dist/js/highlight.js/styles/base16/zenburn.min.css +97 -1
  191. package/dist/js/highlight.js/styles/brown-paper.min.css +54 -1
  192. package/dist/js/highlight.js/styles/codepen-embed.min.css +53 -1
  193. package/dist/js/highlight.js/styles/color-brewer.min.css +56 -1
  194. package/dist/js/highlight.js/styles/dark.min.css +54 -1
  195. package/dist/js/highlight.js/styles/default.min.css +79 -1
  196. package/dist/js/highlight.js/styles/devibeans.min.css +80 -2
  197. package/dist/js/highlight.js/styles/docco.min.css +81 -1
  198. package/dist/js/highlight.js/styles/far.min.css +59 -1
  199. package/dist/js/highlight.js/styles/felipec.min.css +89 -2
  200. package/dist/js/highlight.js/styles/foundation.min.css +74 -1
  201. package/dist/js/highlight.js/styles/github-dark-dimmed.min.css +87 -2
  202. package/dist/js/highlight.js/styles/github-dark.min.css +87 -2
  203. package/dist/js/highlight.js/styles/github.min.css +87 -2
  204. package/dist/js/highlight.js/styles/gml.min.css +68 -1
  205. package/dist/js/highlight.js/styles/googlecode.min.css +75 -1
  206. package/dist/js/highlight.js/styles/gradient-dark.min.css +92 -1
  207. package/dist/js/highlight.js/styles/gradient-light.min.css +94 -1
  208. package/dist/js/highlight.js/styles/grayscale.min.css +85 -1
  209. package/dist/js/highlight.js/styles/hybrid.min.css +75 -1
  210. package/dist/js/highlight.js/styles/idea.min.css +82 -1
  211. package/dist/js/highlight.js/styles/intellij-light.min.css +91 -1
  212. package/dist/js/highlight.js/styles/ir-black.min.css +64 -1
  213. package/dist/js/highlight.js/styles/isbl-editor-dark.min.css +84 -1
  214. package/dist/js/highlight.js/styles/isbl-editor-light.min.css +84 -1
  215. package/dist/js/highlight.js/styles/kimbie-dark.min.css +58 -1
  216. package/dist/js/highlight.js/styles/kimbie-light.min.css +58 -1
  217. package/dist/js/highlight.js/styles/lightfair.min.css +73 -1
  218. package/dist/js/highlight.js/styles/lioshi.min.css +65 -1
  219. package/dist/js/highlight.js/styles/magula.min.css +59 -1
  220. package/dist/js/highlight.js/styles/mono-blue.min.css +54 -1
  221. package/dist/js/highlight.js/styles/monokai-sublime.min.css +72 -1
  222. package/dist/js/highlight.js/styles/monokai.min.css +66 -1
  223. package/dist/js/highlight.js/styles/night-owl.min.css +136 -1
  224. package/dist/js/highlight.js/styles/nnfx-dark.min.css +96 -2
  225. package/dist/js/highlight.js/styles/nnfx-light.min.css +96 -2
  226. package/dist/js/highlight.js/styles/nord.min.css +205 -1
  227. package/dist/js/highlight.js/styles/obsidian.min.css +76 -1
  228. package/dist/js/highlight.js/styles/panda-syntax-dark.min.css +88 -1
  229. package/dist/js/highlight.js/styles/panda-syntax-light.min.css +85 -1
  230. package/dist/js/highlight.js/styles/paraiso-dark.min.css +57 -1
  231. package/dist/js/highlight.js/styles/paraiso-light.min.css +57 -1
  232. package/dist/js/highlight.js/styles/pojoaque.min.css +70 -1
  233. package/dist/js/highlight.js/styles/purebasic.min.css +66 -1
  234. package/dist/js/highlight.js/styles/qtcreator-dark.min.css +71 -1
  235. package/dist/js/highlight.js/styles/qtcreator-light.min.css +69 -1
  236. package/dist/js/highlight.js/styles/rainbow.min.css +73 -1
  237. package/dist/js/highlight.js/styles/routeros.min.css +77 -1
  238. package/dist/js/highlight.js/styles/school-book.min.css +57 -1
  239. package/dist/js/highlight.js/styles/shades-of-purple.min.css +76 -1
  240. package/dist/js/highlight.js/styles/srcery.min.css +70 -1
  241. package/dist/js/highlight.js/styles/stackoverflow-dark.min.css +79 -2
  242. package/dist/js/highlight.js/styles/stackoverflow-light.min.css +79 -2
  243. package/dist/js/highlight.js/styles/sunburst.min.css +85 -1
  244. package/dist/js/highlight.js/styles/tokyo-night-dark.min.css +83 -2
  245. package/dist/js/highlight.js/styles/tokyo-night-light.min.css +83 -2
  246. package/dist/js/highlight.js/styles/tomorrow-night-blue.min.css +59 -1
  247. package/dist/js/highlight.js/styles/tomorrow-night-bright.min.css +59 -1
  248. package/dist/js/highlight.js/styles/vs.min.css +59 -1
  249. package/dist/js/highlight.js/styles/vs2015.min.css +94 -1
  250. package/dist/js/highlight.js/styles/xcode.min.css +85 -1
  251. package/dist/js/highlight.js/styles/xt256.min.css +74 -1
  252. package/dist/js/icons/material.js +8 -4
  253. package/dist/method.d.ts +4 -1
  254. package/dist/method.js +71 -18
  255. package/dist/method.min.js +1 -1
  256. package/dist/ts/markdown/codeRender.d.ts +9 -1
  257. package/dist/types/index.d.ts +8 -1
  258. package/package.json +1 -1
  259. package/src/assets/less/_line-number.less +1 -0
  260. package/src/assets/less/_reset.less +13 -7
  261. package/src/ts/markdown/codeRender.ts +152 -58
  262. package/src/ts/markdown/previewRender.ts +69 -25
  263. package/src/ts/util/editorCommonEvent.ts +15 -8
  264. package/src/ts/wysiwyg/index.ts +6 -3
package/dist/index.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vditor v0.0.14 - A markdown editor written in TypeScript.
2
+ * Vditor v0.0.15 - A markdown editor written in TypeScript.
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -25,7 +25,7 @@
25
25
  *
26
26
  */
27
27
  /*!
28
- * Vditor v0.0.14 - A markdown editor written in TypeScript.
28
+ * Vditor v0.0.15 - A markdown editor written in TypeScript.
29
29
  *
30
30
  * MIT License
31
31
  *
@@ -955,6 +955,7 @@
955
955
  }
956
956
  .vditor-reset pre {
957
957
  margin: 1em 0;
958
+ position: relative;
958
959
  }
959
960
  .vditor-reset pre > code {
960
961
  margin: 0;
@@ -970,8 +971,13 @@
970
971
  word-break: initial;
971
972
  word-wrap: normal;
972
973
  }
973
- .vditor-reset pre:hover div.vditor-copy {
974
- display: block;
974
+ .vditor-reset pre div.vditor-copy {
975
+ display: inline-flex;
976
+ position: absolute;
977
+ right: 0.94rem;
978
+ top: 0.5em;
979
+ align-items: center;
980
+ gap: var(--vditor-copy-gap, 0.5rem);
975
981
  }
976
982
  .vditor-reset .language-math,
977
983
  .vditor-reset .language-echarts,
@@ -1061,20 +1067,20 @@
1061
1067
  vertical-align: middle;
1062
1068
  }
1063
1069
  .vditor-copy {
1064
- position: relative;
1070
+ position: absolute;
1065
1071
  display: none;
1066
1072
  z-index: 1;
1073
+ right: 0.94rem;
1074
+ top: 0.5em;
1067
1075
  }
1068
1076
  .vditor-copy textarea {
1069
1077
  position: absolute;
1070
1078
  left: -6250rem;
1071
1079
  height: 0.63rem;
1072
1080
  }
1073
- .vditor-copy span {
1081
+ .vditor-copy__item {
1074
1082
  cursor: pointer;
1075
- position: absolute;
1076
- right: 0.94rem;
1077
- top: 0.5em;
1083
+ position: static;
1078
1084
  }
1079
1085
  .vditor-copy svg {
1080
1086
  color: #586069;
@@ -1865,6 +1871,7 @@
1865
1871
  float: left;
1866
1872
  padding-right: 0.25rem;
1867
1873
  margin-left: -3rem;
1874
+ font-weight: normal;
1868
1875
  position: absolute;
1869
1876
  top: 0;
1870
1877
  left: 0;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vditor v0.0.14 - A markdown editor written in TypeScript.
2
+ * Vditor v0.0.15 - A markdown editor written in TypeScript.
3
3
  *
4
4
  * MIT License
5
5
  *
@@ -2564,6 +2564,9 @@ var mergeOptions = function (options) {
2564
2564
  speech: {
2565
2565
  enable: false,
2566
2566
  },
2567
+ runHtml: {
2568
+ enable: false,
2569
+ },
2567
2570
  render: {
2568
2571
  media: {
2569
2572
  enable: true,
@@ -2661,7 +2664,7 @@ var previewRender = function (previewElement, markdown, options) { return __awai
2661
2664
  if (mergedOptions.anchor === 1) {
2662
2665
  previewElement.classList.add("vditor-reset--anchor");
2663
2666
  }
2664
- (0,codeRender/* codeRender */.O)(previewElement, mergedOptions.hljs);
2667
+ (0,codeRender/* codeRender */.O)(previewElement, mergedOptions.hljs, mergedOptions.runHtml);
2665
2668
  (0,highlightRender/* highlightRender */.s)(mergedOptions.hljs, previewElement, mergedOptions.cdn);
2666
2669
  (0,mathRender/* mathRender */.H)(previewElement, {
2667
2670
  cdn: mergedOptions.cdn,
@@ -2825,7 +2828,7 @@ var Vditor = /** @class */ (function () {
2825
2828
  /* harmony export */ "H": () => (/* binding */ _VDITOR_VERSION),
2826
2829
  /* harmony export */ "g": () => (/* binding */ Constants)
2827
2830
  /* harmony export */ });
2828
- var _VDITOR_VERSION = "0.0.14";
2831
+ var _VDITOR_VERSION = "0.0.15";
2829
2832
 
2830
2833
  var Constants = /** @class */ (function () {
2831
2834
  function Constants() {
@@ -3127,7 +3130,7 @@ var Constants = /** @class */ (function () {
3127
3130
  "c#",
3128
3131
  "bat",
3129
3132
  ];
3130
- Constants.CDN = "https://webcdn.wujieai.com/vditor@".concat("0.0.14");
3133
+ Constants.CDN = "https://webcdn.wujieai.com/vditor@".concat("0.0.15");
3131
3134
  Constants.MARKDOWN_OPTIONS = {
3132
3135
  autoSpace: false,
3133
3136
  gfmAutoLink: true,
@@ -4485,17 +4488,28 @@ var attachEchartsContextMenu = function (el, option, chart, cdn) {
4485
4488
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(145);
4486
4489
 
4487
4490
 
4488
- var codeRender = function (element, option) {
4489
- Array.from(element.querySelectorAll("pre > code")).filter(function (e, index) {
4491
+ /**
4492
+ * 为预览区域中的代码块添加辅助操作:
4493
+ * - 复制按钮:一键复制代码文本
4494
+ * - 运行按钮:当启用 runHtml 时,向外部回调当前代码块的 HTML 字符串
4495
+ */
4496
+ var codeRender = function (element, option, runHtml) {
4497
+ Array.from(element.querySelectorAll("pre > code"))
4498
+ .filter(function (e, index) {
4490
4499
  if (e.parentElement.classList.contains("vditor-wysiwyg__pre") ||
4491
4500
  e.parentElement.classList.contains("vditor-ir__marker--pre")) {
4492
4501
  return false;
4493
4502
  }
4494
- if (e.classList.contains("language-mermaid") || e.classList.contains("language-flowchart") ||
4495
- e.classList.contains("language-echarts") || e.classList.contains("language-mindmap") ||
4496
- e.classList.contains("language-plantuml") || e.classList.contains("language-markmap") ||
4497
- e.classList.contains("language-abc") || e.classList.contains("language-graphviz") ||
4498
- e.classList.contains("language-math") || e.classList.contains("language-smiles")) {
4503
+ if (e.classList.contains("language-mermaid") ||
4504
+ e.classList.contains("language-flowchart") ||
4505
+ e.classList.contains("language-echarts") ||
4506
+ e.classList.contains("language-mindmap") ||
4507
+ e.classList.contains("language-plantuml") ||
4508
+ e.classList.contains("language-markmap") ||
4509
+ e.classList.contains("language-abc") ||
4510
+ e.classList.contains("language-graphviz") ||
4511
+ e.classList.contains("language-math") ||
4512
+ e.classList.contains("language-smiles")) {
4499
4513
  return false;
4500
4514
  }
4501
4515
  if (e.style.maxHeight.indexOf("px") > -1) {
@@ -4506,12 +4520,15 @@ var codeRender = function (element, option) {
4506
4520
  return false;
4507
4521
  }
4508
4522
  return true;
4509
- }).forEach(function (e) {
4510
- var _a, _b, _c;
4523
+ })
4524
+ .forEach(function (e) {
4525
+ var _a, _b, _c, _d;
4511
4526
  var codeText = e.innerText;
4512
4527
  if (e.classList.contains("highlight-chroma")) {
4513
4528
  var codeElement = e.cloneNode(true);
4514
- codeElement.querySelectorAll(".highlight-ln").forEach(function (item) {
4529
+ codeElement
4530
+ .querySelectorAll(".highlight-ln")
4531
+ .forEach(function (item) {
4515
4532
  item.remove();
4516
4533
  });
4517
4534
  codeText = codeElement.innerText;
@@ -4521,19 +4538,55 @@ var codeRender = function (element, option) {
4521
4538
  }
4522
4539
  var iconHTML = '<svg><use xlink:href="#vditor-icon-copy"></use></svg>';
4523
4540
  if (!document.getElementById("vditorIconScript")) {
4524
- iconHTML = '<svg viewBox="0 0 32 32"><path d="M22.545-0h-17.455c-1.6 0-2.909 1.309-2.909 2.909v20.364h2.909v-20.364h17.455v-2.909zM26.909 5.818h-16c-1.6 0-2.909 1.309-2.909 2.909v20.364c0 1.6 1.309 2.909 2.909 2.909h16c1.6 0 2.909-1.309 2.909-2.909v-20.364c0-1.6-1.309-2.909-2.909-2.909zM26.909 29.091h-16v-20.364h16v20.364z"></path></svg>';
4541
+ iconHTML =
4542
+ '<svg viewBox="0 0 32 32"><path d="M22.545-0h-17.455c-1.6 0-2.909 1.309-2.909 2.909v20.364h2.909v-20.364h17.455v-2.909zM26.909 5.818h-16c-1.6 0-2.909 1.309-2.909 2.909v20.364c0 1.6 1.309 2.909 2.909 2.909h16c1.6 0 2.909-1.309 2.909-2.909v-20.364c0-1.6-1.309-2.909-2.909-2.909zM26.909 29.091h-16v-20.364h16v20.364z"></path></svg>';
4525
4543
  }
4544
+ var playIconHTML = document.getElementById("vditorIconScript")
4545
+ ? '<svg><use xlink:href="#vditor-icon-play"></use></svg>'
4546
+ : '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play-icon lucide-circle-play"><path d="M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z"/><circle cx="12" cy="12" r="10"/></svg>';
4526
4547
  var divElement = document.createElement("div");
4527
4548
  divElement.className = "vditor-copy";
4528
- divElement.innerHTML = "<span aria-label=\"".concat(((_a = window.VditorI18n) === null || _a === void 0 ? void 0 : _a.copy) || "复制", "\"\nonmouseover=\"this.setAttribute('aria-label', '").concat(((_b = window.VditorI18n) === null || _b === void 0 ? void 0 : _b.copy) || "复制", "')\"\nclass=\"vditor-tooltipped vditor-tooltipped__w\"\nonclick=\"event.stopPropagation();this.previousElementSibling.select();document.execCommand('copy');this.setAttribute('aria-label', '").concat(((_c = window.VditorI18n) === null || _c === void 0 ? void 0 : _c.copied) || "已复制", "');this.previousElementSibling.blur()\">").concat(iconHTML, "</span>");
4529
4549
  var textarea = document.createElement("textarea");
4530
4550
  textarea.value = (0,_util_code160to32__WEBPACK_IMPORTED_MODULE_1__/* .code160to32 */ .X)(codeText);
4531
- divElement.insertAdjacentElement("afterbegin", textarea);
4551
+ divElement.appendChild(textarea);
4552
+ if (runHtml === null || runHtml === void 0 ? void 0 : runHtml.enable) {
4553
+ var runSpan = document.createElement("span");
4554
+ runSpan.setAttribute("aria-label", ((_a = window.VditorI18n) === null || _a === void 0 ? void 0 : _a.run) || "运行");
4555
+ runSpan.setAttribute("onmouseover", "this.setAttribute('aria-label', '".concat(((_b = window.VditorI18n) === null || _b === void 0 ? void 0 : _b.run) || "运行", "')"));
4556
+ runSpan.className =
4557
+ "vditor-copy__item vditor-tooltipped vditor-tooltipped__w";
4558
+ runSpan.innerHTML = playIconHTML;
4559
+ runSpan.addEventListener("click", function (evt) {
4560
+ evt.stopPropagation();
4561
+ if (typeof runHtml.callback === "function") {
4562
+ runHtml.callback((0,_util_code160to32__WEBPACK_IMPORTED_MODULE_1__/* .code160to32 */ .X)(codeText));
4563
+ }
4564
+ });
4565
+ divElement.appendChild(runSpan);
4566
+ }
4567
+ var copySpan = document.createElement("span");
4568
+ copySpan.setAttribute("aria-label", ((_c = window.VditorI18n) === null || _c === void 0 ? void 0 : _c.copy) || "复制");
4569
+ copySpan.setAttribute("onmouseover", "this.setAttribute('aria-label', '".concat(((_d = window.VditorI18n) === null || _d === void 0 ? void 0 : _d.copy) || "复制", "')"));
4570
+ copySpan.className =
4571
+ "vditor-copy__item vditor-tooltipped vditor-tooltipped__w";
4572
+ copySpan.addEventListener("click", function (evt) {
4573
+ var _a;
4574
+ evt.stopPropagation();
4575
+ var ta = divElement.querySelector("textarea");
4576
+ if (ta) {
4577
+ ta.select();
4578
+ document.execCommand("copy");
4579
+ copySpan.setAttribute("aria-label", ((_a = window.VditorI18n) === null || _a === void 0 ? void 0 : _a.copied) || "已复制");
4580
+ ta.blur();
4581
+ }
4582
+ });
4583
+ copySpan.innerHTML = iconHTML;
4584
+ divElement.appendChild(copySpan);
4532
4585
  if (option && option.renderMenu) {
4533
4586
  option.renderMenu(e, divElement);
4534
4587
  }
4535
4588
  e.before(divElement);
4536
- e.style.maxHeight = (window.outerHeight - 40) + "px";
4589
+ e.style.maxHeight = 300 + "px";
4537
4590
  // https://github.com/Vanessa219/vditor/issues/1356
4538
4591
  e.insertAdjacentHTML("afterend", "<span style=\"position: absolute\">".concat(_constants__WEBPACK_IMPORTED_MODULE_0__/* .Constants.ZWSP */ .g.ZWSP, "</span>"));
4539
4592
  });
@@ -12111,10 +12164,14 @@ var selectEvent = function (vditor, editorElement) {
12111
12164
  editorElement.onmouseup = handleSelection;
12112
12165
  });
12113
12166
  editorElement.addEventListener("keyup", function (event) {
12114
- if (event.shiftKey && (event.key.startsWith("Arrow") || event.key === "Home" || event.key === "End")) {
12167
+ if (event.shiftKey &&
12168
+ (event.key.startsWith("Arrow") ||
12169
+ event.key === "Home" ||
12170
+ event.key === "End")) {
12115
12171
  handleSelection();
12116
12172
  }
12117
- else if (!event.shiftKey && (event.key.startsWith("Arrow") || event.key === "Escape")) {
12173
+ else if (!event.shiftKey &&
12174
+ (event.key.startsWith("Arrow") || event.key === "Escape")) {
12118
12175
  // Cancel selection or move cursor without selection
12119
12176
  handleSelection();
12120
12177
  }
@@ -18257,7 +18314,8 @@ var WYSIWYG = /** @class */ (function () {
18257
18314
  this.selectPopover.addEventListener("mousedown", function (event) {
18258
18315
  var target = event.target;
18259
18316
  // 如果点击的是 textarea 或 button,允许默认行为
18260
- if (target.tagName === "TEXTAREA" || target.tagName === "BUTTON") {
18317
+ if (target.tagName === "TEXTAREA" ||
18318
+ target.tagName === "BUTTON") {
18261
18319
  return;
18262
18320
  }
18263
18321
  // 其他情况阻止默认行为,防止编辑器失去焦点