소스 검색

improve matching regexp

Yuki Takei 8 년 전
부모
커밋
c868ebc2f6
1개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      packages/growi-plugin-lsx/src/resource/js/util/Interceptor/LsxPreRenderInterceptor.js

+ 5 - 3
packages/growi-plugin-lsx/src/resource/js/util/Interceptor/LsxPreRenderInterceptor.js

@@ -45,10 +45,12 @@ export class LsxPreRenderInterceptor extends BasicInterceptor {
     // TODO retrieve from args for interceptor
     const fromPagePath = currentPagePath;
 
-    // see: https://regex101.com/r/NQq3s9/4
-    context.parsedHTML = parsedHTML.replace(/\$lsx\((?!.*(<br>|\$lsx))(.*)\)/g, (all, group1, group2) => {
+    // see: https://regex101.com/r/NQq3s9/7
+    const pattern = /\$lsx(\((.*?)\)(?=\s|<br>|\$lsx))|\$lsx(\((.*)\)(?!\s|<br>|\$lsx))/g;
+    context.parsedHTML = parsedHTML.replace(pattern, (all, group1, group2, group3, group4) => {
       const tagExpression = all;
-      const lsxArgs = group2.trim();
+      let lsxArgs = group2 || group4;
+      lsxArgs = lsxArgs.trim();
 
       // create contexts
       let lsxContext = new LsxContext();