This commit is contained in:
Alex Yatskov 2017-03-27 22:48:50 -07:00
parent 3b0aa88de1
commit 9de0d34af3
2 changed files with 18 additions and 8 deletions

View File

@ -168,13 +168,13 @@ window.driver = new class {
} else {
textSource.setEndOffset(length);
const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);
const cloze = docClozeExtract(textSource, this.options.anki.sentenceExt);
const url = window.location.href;
this.popup.showTermDefs(
textSource.getRect(),
definitions,
this.options,
{sentence, url}
{cloze, url}
);
this.lastTextSource = textSource;
@ -194,13 +194,13 @@ window.driver = new class {
if (definitions.length === 0) {
return false;
} else {
const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);
const cloze = docClozeExtract(textSource, this.options.anki.sentenceExt);
const url = window.location.href;
this.popup.showKanjiDefs(
textSource.getRect(),
definitions,
this.options,
{sentence, url}
{cloze, url}
);
this.lastTextSource = textSource;

View File

@ -152,7 +152,7 @@ function docRangeFromPoint(point, imposter) {
return null;
}
function docSentenceExtract(source, extent) {
function docClozeExtract(source, extent) {
const quotesFwd = {'「': '」', '『': '』', "'": "'", '"': '"'};
const quotesBwd = {'」': '「', '』': '『', "'": "'", '"': '"'};
const terminators = '…。..?!';
@ -182,8 +182,8 @@ function docSentenceExtract(source, extent) {
quoteStack = [];
let endPos = content.length;
for (let i = position; i < endPos; ++i) {
let endPos = content.length - 1;
for (let i = position; i <= endPos; ++i) {
const c = content[i];
if (quoteStack.length === 0) {
@ -204,5 +204,15 @@ function docSentenceExtract(source, extent) {
}
}
return content.substring(startPos, endPos).trim();
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);
return {
sentence: sentence.trim(),
prefix: clozePrefix.trim(),
body: clozeBody.trim(),
sufix: clozeSuffix.trim()
};
}