Skip to content

Commit f36f137

Browse files
committed
refactor: migrate RevealMarkdown to ES module imports
- Removed the use of global `window.RevealMarkdown` in favor of direct ES module imports in `index.js`, `pretty.js`, and `slide.js`. - Updated `reveal-markdown.js` to export as an ES module, ensuring compatibility with modern JavaScript practices. Signed-off-by: Yukai Huang <[email protected]>
1 parent df7073f commit f36f137

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

public/js/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2749,13 +2749,14 @@ function updateViewInner () {
27492749
delete md.metaError
27502750
var rendered = md.render(value)
27512751
if (md.meta.type && md.meta.type === 'slide') {
2752+
var RevealMarkdown = require('./reveal-markdown').default
27522753
var slideOptions = {
27532754
separator: '^(\r\n?|\n)---(\r\n?|\n)$',
27542755
verticalSeparator: '^(\r\n?|\n)----(\r\n?|\n)$'
27552756
}
2756-
var slides = window.RevealMarkdown.slidify(editor.getValue(), slideOptions)
2757+
var slides = RevealMarkdown.slidify(editor.getValue(), slideOptions)
27572758
ui.area.markdown.html(slides)
2758-
window.RevealMarkdown.initialize()
2759+
RevealMarkdown.initialize()
27592760
// prevent XSS
27602761
ui.area.markdown.html(preventXSS(ui.area.markdown.html()))
27612762
ui.area.markdown.addClass('slides')

public/js/pretty.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* eslint-env browser, jquery */
22
/* global refreshView */
3+
import RevealMarkdown from './reveal-markdown'
34

45
import {
56
autoLinkify,
@@ -35,9 +36,9 @@ if (md.meta.type && md.meta.type === 'slide') {
3536
separator: '^(\r\n?|\n)---(\r\n?|\n)$',
3637
verticalSeparator: '^(\r\n?|\n)----(\r\n?|\n)$'
3738
}
38-
const slides = window.RevealMarkdown.slidify(text, slideOptions)
39+
const slides = RevealMarkdown.slidify(text, slideOptions)
3940
markdown.html(slides)
40-
window.RevealMarkdown.initialize()
41+
RevealMarkdown.initialize()
4142
// prevent XSS
4243
markdown.html(preventXSS(markdown.html()))
4344
markdown.addClass('slides')

public/js/reveal-markdown.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,3 +354,14 @@ import { md } from './extra'
354354
slidify: slidify
355355
}
356356
}))
357+
358+
// ES Module export for modern imports
359+
const RevealMarkdownAPI = (function() {
360+
if (typeof window !== 'undefined' && window.RevealMarkdown) {
361+
return window.RevealMarkdown
362+
}
363+
// Fallback - shouldn't happen in normal usage
364+
return {}
365+
})()
366+
367+
export default RevealMarkdownAPI

public/js/slide.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
/* eslint-env browser, jquery */
2-
/* global serverurl, Reveal, RevealMarkdown */
2+
/* global serverurl, Reveal */
3+
4+
import RevealMarkdown from './reveal-markdown'
35

46
import { preventXSS } from './render'
57
import { md, updateLastChange, removeDOMEvents, finishView } from './extra'

webpack.common.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,6 @@ module.exports = {
260260
'script-loader!ot',
261261
'flowchart.js',
262262
'imports-loader?Raphael=raphael!js-sequence-diagrams',
263-
'expose-loader?RevealMarkdown!reveal-markdown',
264263
path.join(__dirname, 'public/js/index.js')
265264
],
266265
'index-styles': [
@@ -323,7 +322,6 @@ module.exports = {
323322
'script-loader!vega-lite',
324323
'script-loader!vega-embed',
325324
'expose-loader?io!socket.io-client',
326-
'expose-loader?RevealMarkdown!reveal-markdown',
327325
'expose-loader?L!leaflet',
328326
path.join(__dirname, 'public/js/index.js')
329327
],
@@ -332,7 +330,6 @@ module.exports = {
332330
'regenerator-runtime/runtime',
333331
'flowchart.js',
334332
'imports-loader?Raphael=raphael!js-sequence-diagrams',
335-
'expose-loader?RevealMarkdown!reveal-markdown',
336333
path.join(__dirname, 'public/js/pretty.js')
337334
],
338335
'pretty-styles': [
@@ -363,7 +360,6 @@ module.exports = {
363360
'script-loader!vega',
364361
'script-loader!vega-lite',
365362
'script-loader!vega-embed',
366-
'expose-loader?RevealMarkdown!reveal-markdown',
367363
'expose-loader?L!leaflet',
368364
path.join(__dirname, 'public/js/pretty.js')
369365
],
@@ -373,7 +369,6 @@ module.exports = {
373369
'bootstrap-tooltip',
374370
'flowchart.js',
375371
'imports-loader?Raphael=raphael!js-sequence-diagrams',
376-
'expose-loader?RevealMarkdown!reveal-markdown',
377372
path.join(__dirname, 'public/js/slide.js')
378373
],
379374
'slide-styles': [
@@ -408,7 +403,6 @@ module.exports = {
408403
'script-loader!vega-lite',
409404
'script-loader!vega-embed',
410405
'expose-loader?Reveal!reveal.js',
411-
'expose-loader?RevealMarkdown!reveal-markdown',
412406
'expose-loader?L!leaflet',
413407
path.join(__dirname, 'public/js/slide.js')
414408
]

0 commit comments

Comments
 (0)