File tree Expand file tree Collapse file tree 2 files changed +8
-7
lines changed
Expand file tree Collapse file tree 2 files changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ function parseCodeFenceInfo(lang, metaString) {
2121 let pos = 0 ;
2222 let meta = { } ;
2323 let languageName = '' ;
24- const input = lang + ( metaString || ' ') ;
24+ const input = [ lang , metaString ] . filter ( Boolean ) . join ( ' ') ;
2525 skipTrivia ( ) ;
2626 if ( ! isEnd ( ) && current ( ) !== '{' ) {
2727 languageName = parseIdentifier ( ) ;
@@ -32,11 +32,8 @@ function parseCodeFenceInfo(lang, metaString) {
3232 meta = parseObject ( ) ;
3333 }
3434
35- if ( ! isEnd ( ) ) {
36- if ( languageNameEnd === pos ) {
37- return fail ( `Invalid character in language name: '${ current ( ) } '` ) ;
38- }
39- return fail ( `Unrecognized input: '${ current ( ) } '` ) ;
35+ if ( ! isEnd ( ) && languageNameEnd === pos ) {
36+ return fail ( `Invalid character in language name: '${ current ( ) } '` ) ;
4037 }
4138
4239 return { languageName, meta } ;
Original file line number Diff line number Diff line change @@ -54,6 +54,10 @@ describe('parseCodeFenceInfo', () => {
5454 expect ( ( ) => parse ( 'jsx{ : }' ) ) . toThrowError ( / e x p e c t e d i d e n t i f i e r / i) ;
5555 expect ( ( ) => parse ( 'jsx{ a: "' ) ) . toThrowError ( / u n e x p e c t e d e n d o f i n p u t / i) ;
5656 expect ( ( ) => parse ( 'c%' ) ) . toThrowError ( / i n v a l i d c h a r a c t e r i n l a n g u a g e n a m e .+ ?% / i) ;
57- expect ( ( ) => parse ( 'c %' ) ) . toThrowError ( / u n r e c o g n i z e d i n p u t .+ ?% / i) ;
57+ } ) ;
58+
59+ it ( 'ignores additional meta' , ( ) => {
60+ expect ( parse ( 'jsx codesandbox=react' ) ) . toEqual ( { languageName : 'jsx' , meta : { } } ) ;
61+ expect ( parse ( 'js file=some/dir/file.js' ) ) . toEqual ( { languageName : 'js' , meta : { } } ) ;
5862 } ) ;
5963} ) ;
You can’t perform that action at this time.
0 commit comments