diff --git a/src/applications/project/remarkup/ProjectRemarkupRule.php b/src/applications/project/remarkup/ProjectRemarkupRule.php index 6f251d54ac..98e6d0f86f 100644 --- a/src/applications/project/remarkup/ProjectRemarkupRule.php +++ b/src/applications/project/remarkup/ProjectRemarkupRule.php @@ -40,12 +40,7 @@ final class ProjectRemarkupRule extends PhabricatorObjectRemarkupRule { $never_edge = '.'; return '(?:'. - // Short project name with one or two characters not in $never_edge or - '[^'.$never_edge.$never.']{1,2}|'. - // A single character not in $never or $never_edge, - // then any number of characters not in $never then a single character - // not in $never or $never_edge - '[^'.$never_edge.$never.'][^'.$never.']+[^'.$never_edge.$never.']'. + '[^'.$never_edge.$never.'](?:[^'.$never.']*[^'.$never_edge.$never.'])?'. ')'; } diff --git a/src/applications/project/remarkup/__tests__/ProjectRemarkupRuleTestCase.php b/src/applications/project/remarkup/__tests__/ProjectRemarkupRuleTestCase.php index 5adbfbfe90..4259911e4a 100644 --- a/src/applications/project/remarkup/__tests__/ProjectRemarkupRuleTestCase.php +++ b/src/applications/project/remarkup/__tests__/ProjectRemarkupRuleTestCase.php @@ -135,6 +135,21 @@ final class ProjectRemarkupRuleTestCase extends PhabricatorTestCase { ), ), + // This test case failed in an old version of the regex + '#js-draw' => array( + 'embed' => array(), + 'ref' => array( + array( + 'offset' => 1, + 'id' => 'js-draw', + ), + ), + ), + // Don't match leading dots for consistency with trailing ones + '#.js' => array( + 'embed' => array(), + 'ref' => array(), + ), ); foreach ($cases as $input => $expect) {