@@ -2,19 +2,23 @@ const { parseComponent } = require("vue-template-compiler");
22const { isCodeVueSfc } = require ( "vue-inbrowser-compiler" ) ;
33const getImports = require ( "./getImports" ) ;
44
5- const addVueLive = ( { noSsr } ) => md => {
5+ const addVueLive = ( { noSsr, liveFilter } ) => ( md ) => {
66 const fence = md . renderer . rules . fence ;
77 md . renderer . rules . fence = ( ...args ) => {
88 const [ tokens , idx ] = args ;
99 const token = tokens [ idx ] ;
1010 const lang = token . info . trim ( ) ;
1111
1212 // if it does not ends with live just use default fence
13- if ( ! / l i v e $ / . test ( lang ) && ! / l i v e / . test ( lang ) ) {
13+ if (
14+ liveFilter
15+ ? ! liveFilter ( lang )
16+ : ! / l i v e $ / . test ( lang ) && ! / l i v e / . test ( lang )
17+ ) {
1418 return fence ( ...args ) ;
1519 }
1620
17- const getScript = code => {
21+ const getScript = ( code ) => {
1822 // script is at the beginning of a line after a return
1923 // In case we are loading a vue component as an example, extract script tag
2024 if ( isCodeVueSfc ( code ) ) {
@@ -32,14 +36,16 @@ const addVueLive = ({ noSsr }) => md => {
3236 // put all requires into a "requires" object
3337 // add this as a prop
3438 const scr = getScript ( code ) ;
35- const requires = getImports ( scr ) . map ( mod => `'${ mod } ': require('${ mod } ')` ) ;
39+ const requires = getImports ( scr ) . map (
40+ ( mod ) => `'${ mod } ': require('${ mod } ')`
41+ ) ;
3642 const langArray = lang . split ( " " ) ;
3743 const langClean = langArray [ 0 ] ;
3844 const codeClean = md . utils
3945 . escapeHtml ( code )
4046 . replace ( / \` / g, "\\`" )
4147 . replace ( / \$ / g, "\\$" ) ;
42- const editorProps = langArray . find ( l => / ^ \{ .+ \} $ / . test ( l ) ) ;
48+ const editorProps = langArray . find ( ( l ) => / ^ \{ .+ \} $ / . test ( l ) ) ;
4349 const jsx = langArray . length > 2 && langArray [ 1 ] === "jsx" ? "jsx " : "" ; // to enable jsx, we want ```vue jsx live or ```jsx jsx live
4450 const markdownGenerated = `<vue-live ${ jsx }
4551 :layoutProps="{lang:'${ langClean } '}"
0 commit comments