diff options
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/driver.js | 8 | ||||
| -rw-r--r-- | ext/fg/js/util.js | 16 | 
2 files changed, 10 insertions, 14 deletions
| diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js index 49147c8f..e94a4ac2 100644 --- a/ext/fg/js/driver.js +++ b/ext/fg/js/driver.js @@ -172,13 +172,13 @@ window.driver = new class {              } else {                  textSource.setEndOffset(length); -                const cloze = docClozeExtract(textSource, this.options.anki.sentenceExt); +                const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);                  const url = window.location.href;                  this.popup.showTermDefs(                      textSource.getRect(),                      definitions,                      this.options, -                    {cloze, url} +                    {sentence, url}                  );                  this.lastTextSource = textSource; @@ -198,13 +198,13 @@ window.driver = new class {              if (definitions.length === 0) {                  return false;              } else { -                const cloze = docClozeExtract(textSource, this.options.anki.sentenceExt); +                const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);                  const url = window.location.href;                  this.popup.showKanjiDefs(                      textSource.getRect(),                      definitions,                      this.options, -                    {cloze, url} +                    {sentence, url}                  );                  this.lastTextSource = textSource; diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js index a1bce660..e5705ffd 100644 --- a/ext/fg/js/util.js +++ b/ext/fg/js/util.js @@ -152,7 +152,7 @@ function docRangeFromPoint(point, imposter) {      return null;  } -function docClozeExtract(source, extent) { +function docSentenceExtract(source, extent) {      const quotesFwd = {'「': '」', '『': '』', "'": "'", '"': '"'};      const quotesBwd = {'」': '「', '』': '『', "'": "'", '"': '"'};      const terminators = '…。..??!!'; @@ -182,7 +182,7 @@ function docClozeExtract(source, extent) {      quoteStack = []; -    let endPos = content.length - 1; +    let endPos = content.length;      for (let i = position; i <= endPos; ++i) {          const c = content[i]; @@ -204,15 +204,11 @@ function docClozeExtract(source, extent) {          }      } -    const sentence = content.substring(startPos, endPos); -    const clozePrefix = sentence.substring(0, position - startPos); -    const clozeBody = source.text(); -    const clozeSuffix = sentence.substring(position - startPos + clozeBody.length); +    const text = content.substring(startPos, endPos); +    const padding = text.length - text.replace(/^\s+/, '').length;      return { -        sentence: sentence.trim(), -        prefix: clozePrefix.trim(), -        body: clozeBody.trim(), -        suffix: clozeSuffix.trim() +        text: text.trim(), +        offset: position - startPos - padding      };  } |