File tree Expand file tree Collapse file tree 1 file changed +17
-6
lines changed
Expand file tree Collapse file tree 1 file changed +17
-6
lines changed Original file line number Diff line number Diff line change 11import type { BytemdPlugin } from 'bytemd' ;
2+ import type { default as Embed , EmbedOptions } from 'vega-embed' ;
23
3- export default function vega ( ) : BytemdPlugin {
4+ export default function vega ( options : EmbedOptions = { } ) : BytemdPlugin {
5+ let embed : typeof Embed ;
46 return {
57 viewerEffect ( { $el } ) {
68 const els = $el . querySelectorAll < HTMLElement > ( 'pre>code.language-vega' ) ;
79 if ( els . length === 0 ) return ;
810
9- import ( 'vega-embed' ) . then ( ( { default : embed } ) => {
11+ ( async ( ) => {
12+ if ( ! embed ) {
13+ embed = await import ( 'vega-embed' ) . then ( ( m ) => m . default ) ;
14+ }
15+
1016 els . forEach ( ( el ) => {
1117 try {
1218 const pre = el . parentElement ! ;
13- embed ( el , JSON . parse ( el . innerText ) ) ;
14- pre . replaceWith ( pre . children [ 0 ] ) ;
19+ const source = el . innerText ;
20+
21+ const container = document . createElement ( 'div' ) ;
22+ container . classList . add ( 'bytemd-vega' ) ;
23+ pre . replaceWith ( container ) ;
24+
25+ embed ( container , source , options ) ;
1526 } catch ( err ) {
16- console . error ( err ) ;
27+ // console.error(err);
1728 }
1829 } ) ;
19- } ) ;
30+ } ) ( ) ;
2031 } ,
2132 } ;
2233}
You can’t perform that action at this time.
0 commit comments