Explorar o código

fix comma handling

Yuki Takei %!s(int64=3) %!d(string=hai) anos
pai
achega
307a78d5f9

+ 13 - 8
packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-attributes.js

@@ -7,9 +7,8 @@
 import { factorySpace } from 'micromark-factory-space';
 import { factorySpace } from 'micromark-factory-space';
 import { factoryWhitespace } from 'micromark-factory-whitespace';
 import { factoryWhitespace } from 'micromark-factory-whitespace';
 import {
 import {
-  asciiAlpha,
-  asciiAlphanumeric,
   markdownLineEnding,
   markdownLineEnding,
+  markdownLineEndingOrSpace,
   markdownSpace,
   markdownSpace,
 } from 'micromark-util-character';
 } from 'micromark-util-character';
 import { codes } from 'micromark-util-symbol/codes.js';
 import { codes } from 'micromark-util-symbol/codes.js';
@@ -82,11 +81,16 @@ export function factoryAttributes(
       return shortcutStart(code);
       return shortcutStart(code);
     }
     }
 
 
-    if (disallowEol && markdownSpace(code)) {
-      return factorySpace(effects, between, types.whitespace)(code);
+    if (disallowEol) {
+      if (markdownSpace(code)) {
+        return factorySpace(effects, between, types.whitespace)(code);
+      }
+      if (code === codes.comma) {
+        return factoryAttributesDevider(effects, between)(code);
+      }
     }
     }
 
 
-    if (!disallowEol && (markdownLineEndingOrSpaceOrComma(code))) {
+    if (!disallowEol && markdownLineEndingOrSpaceOrComma(code)) {
       return factoryAttributesDevider(effects, between)(code);
       return factoryAttributesDevider(effects, between)(code);
     }
     }
 
 
@@ -129,7 +133,7 @@ export function factoryAttributes(
       || code === codes.greaterThan
       || code === codes.greaterThan
       || code === codes.graveAccent
       || code === codes.graveAccent
       || code === codes.rightParenthesis
       || code === codes.rightParenthesis
-      || markdownLineEndingOrSpaceOrComma(code)
+      || code === codes.comma
     ) {
     ) {
       return nok(code);
       return nok(code);
     }
     }
@@ -186,6 +190,7 @@ export function factoryAttributes(
         && code !== codes.graveAccent
         && code !== codes.graveAccent
         && code !== codes.rightParenthesis
         && code !== codes.rightParenthesis
         && code !== codes.space
         && code !== codes.space
+        && code !== codes.comma
     ) {
     ) {
       effects.consume(code);
       effects.consume(code);
       return name;
       return name;
@@ -197,7 +202,7 @@ export function factoryAttributes(
       return factorySpace(effects, nameAfter, types.whitespace)(code);
       return factorySpace(effects, nameAfter, types.whitespace)(code);
     }
     }
 
 
-    if (!disallowEol && markdownLineEndingOrSpaceOrComma(code)) {
+    if (!disallowEol && markdownLineEndingOrSpace(code)) {
       return factoryAttributesDevider(effects, nameAfter)(code);
       return factoryAttributesDevider(effects, nameAfter)(code);
     }
     }
 
 
@@ -245,7 +250,7 @@ export function factoryAttributes(
       return factorySpace(effects, valueBefore, types.whitespace)(code);
       return factorySpace(effects, valueBefore, types.whitespace)(code);
     }
     }
 
 
-    if (!disallowEol && markdownLineEndingOrSpaceOrComma(code)) {
+    if (!disallowEol && markdownLineEndingOrSpace(code)) {
       return factoryAttributesDevider(effects, valueBefore)(code);
       return factoryAttributesDevider(effects, valueBefore)(code);
     }
     }
 
 

+ 8 - 0
packages/remark-growi-directive/test/micromark-extension-growi-directive.test.js

@@ -792,12 +792,16 @@ test('micromark-extension-directive (compile)', (t) => {
         'a $lsx()',
         'a $lsx()',
         'a $lsx(num=1)',
         'a $lsx(num=1)',
         'a $lsx(/)',
         'a $lsx(/)',
+        'a $lsx(/,num=5,depth=1)',
+        'a $lsx(/, num=5, depth=1)',
         'a $lsx(💚)',
         'a $lsx(💚)',
         'Leaf:',
         'Leaf:',
         '$lsx',
         '$lsx',
         '$lsx()',
         '$lsx()',
         '$lsx(num=1)',
         '$lsx(num=1)',
         '$lsx(/)',
         '$lsx(/)',
+        '$lsx(/,num=5,depth=1)',
+        '$lsx(/, num=5, depth=1)',
         '$lsx(💚)',
         '$lsx(💚)',
       ].join('\n\n'),
       ].join('\n\n'),
       options({ lsx }),
       options({ lsx }),
@@ -808,12 +812,16 @@ test('micromark-extension-directive (compile)', (t) => {
       '<p>a <lsx ></lsx></p>',
       '<p>a <lsx ></lsx></p>',
       '<p>a <lsx num="1"></lsx></p>',
       '<p>a <lsx num="1"></lsx></p>',
       '<p>a <lsx prefix="/"></lsx></p>',
       '<p>a <lsx prefix="/"></lsx></p>',
+      '<p>a <lsx prefix="/" num="5" depth="1"></lsx></p>',
+      '<p>a <lsx prefix="/" num="5" depth="1"></lsx></p>',
       '<p>a <lsx prefix="💚"></lsx></p>',
       '<p>a <lsx prefix="💚"></lsx></p>',
       '<p>Leaf:</p>',
       '<p>Leaf:</p>',
       '<lsx ></lsx>',
       '<lsx ></lsx>',
       '<lsx ></lsx>',
       '<lsx ></lsx>',
       '<lsx num="1"></lsx>',
       '<lsx num="1"></lsx>',
       '<lsx prefix="/"></lsx>',
       '<lsx prefix="/"></lsx>',
+      '<lsx prefix="/" num="5" depth="1"></lsx>',
+      '<lsx prefix="/" num="5" depth="1"></lsx>',
       '<lsx prefix="💚"></lsx>',
       '<lsx prefix="💚"></lsx>',
     ].join('\n'),
     ].join('\n'),
     'should support directives (lsx)',
     'should support directives (lsx)',