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) {
21
21
let pos = 0 ;
22
22
let meta = { } ;
23
23
let languageName = '' ;
24
- const input = lang + ( metaString || ' ') ;
24
+ const input = [ lang , metaString ] . filter ( Boolean ) . join ( ' ') ;
25
25
skipTrivia ( ) ;
26
26
if ( ! isEnd ( ) && current ( ) !== '{' ) {
27
27
languageName = parseIdentifier ( ) ;
@@ -32,11 +32,8 @@ function parseCodeFenceInfo(lang, metaString) {
32
32
meta = parseObject ( ) ;
33
33
}
34
34
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 ( ) } '` ) ;
40
37
}
41
38
42
39
return { languageName, meta } ;
Original file line number Diff line number Diff line change @@ -54,6 +54,10 @@ describe('parseCodeFenceInfo', () => {
54
54
expect ( ( ) => parse ( 'jsx{ : }' ) ) . toThrowError ( / e x p e c t e d i d e n t i f i e r / i) ;
55
55
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) ;
56
56
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 : { } } ) ;
58
62
} ) ;
59
63
} ) ;
You can’t perform that action at this time.
0 commit comments