yusuketk 5 лет назад
Родитель
Сommit
9fb9b21e58
1 измененных файлов с 7 добавлено и 9 удалено
  1. 7 9
      src/client/js/components/PageEditor/MarkdownLinkUtil.js

+ 7 - 9
src/client/js/components/PageEditor/MarkdownLinkUtil.js

@@ -10,15 +10,13 @@ class MarkdownLinkUtil {
 
   // return text as markdown link if the cursor on markdown link else return text as default label of new link.
   getMarkdownLink(editor) {
-    console.log(this.isInLink(editor));
     if (!this.isInLink(editor)) {
       return editor.getDoc().getSelection();
     }
     const curPos = editor.getCursor();
 
     const { beginningOfLink, endOfLink } = this.getBeginningAndEndOfTheClosestLinkToCursor(editor);
-    console.log(editor.getDoc().getLine(curPos.line).subString(beginningOfLink, endOfLink));
-    return editor.getDoc().getLine(curPos.line).subString(beginningOfLink, endOfLink);
+    return editor.getDoc().getLine(curPos.line).substring(beginningOfLink, endOfLink);
   }
 
 
@@ -77,8 +75,8 @@ class MarkdownLinkUtil {
 
   isInLink(editor) {
     const curPos = editor.getCursor();
-    const { endOfLink } = this.getBeginningAndEndOfTheClosestLinkToCursor(editor);
-    return curPos < endOfLink;
+    const { beginningOfLink, endOfLink } = this.getBeginningAndEndOfTheClosestLinkToCursor(editor);
+    return beginningOfLink >= 0 && endOfLink >= 0 && beginningOfLink <= curPos.ch && curPos.ch <= endOfLink;
   }
 
   // return beginning index and end index of the closest link to cursor
@@ -87,11 +85,11 @@ class MarkdownLinkUtil {
     const curPos = editor.getCursor();
     const line = editor.getDoc().getLine(curPos.line);
     let beginningOfLink = line.lastIndexOf('[', curPos.ch);
-    let endOfLink = line.indexOf(']', beginningOfLink);
-    if (line.charAt(endOfLink + 1) === '(') {
-      endOfLink = line.indexOf(')', endOfLink);
+    let endOfLink = line.indexOf(']', beginningOfLink) + 1;
+    if (line.charAt(endOfLink) === '(') {
+      endOfLink = line.indexOf(')', endOfLink) + 1;
     }
-    else if (line.charAt(beginningOfLink - 1) === '[' && line.charAt(endOfLink + 1) === ']') { // todo 先頭が[一つの時にえらーにならないか調査する
+    else if (line.charAt(beginningOfLink - 1) === '[' && line.charAt(endOfLink) === ']') { // todo 先頭が[一つの時にえらーにならないか調査する
       beginningOfLink -= 1;
       endOfLink += 1;
     }