aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fg/js/util.js8
-rw-r--r--ext/mixed/js/display.js4
-rw-r--r--ext/mixed/js/util.js14
3 files changed, 18 insertions, 8 deletions
diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js
index a1bce660..59060221 100644
--- a/ext/fg/js/util.js
+++ b/ext/fg/js/util.js
@@ -205,14 +205,10 @@ 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 padding = sentence.length - sentence.replace(/^\s+/, '');
return {
sentence: sentence.trim(),
- prefix: clozePrefix.trim(),
- body: clozeBody.trim(),
- suffix: clozeSuffix.trim()
+ offset: position - startPos - padding
};
}
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js
index f5ad4849..e77ca7da 100644
--- a/ext/mixed/js/display.js
+++ b/ext/mixed/js/display.js
@@ -74,7 +74,7 @@ class Display {
if (context) {
for (const definition of definitions) {
- definition.cloze = context.cloze;
+ definition.cloze = clozeBuild(context.cloze);
definition.url = context.url;
}
}
@@ -108,7 +108,7 @@ class Display {
if (context) {
for (const definition of definitions) {
- definition.cloze = context.cloze;
+ definition.cloze = clozeBuild(context.cloze);
definition.url = context.url;
}
}
diff --git a/ext/mixed/js/util.js b/ext/mixed/js/util.js
index c05fb679..aeeb830e 100644
--- a/ext/mixed/js/util.js
+++ b/ext/mixed/js/util.js
@@ -18,6 +18,20 @@
/*
+ * Cloze
+ */
+
+function clozeBuild(sentence, offset, source) {
+ return {
+ sentence: sentence.trim(),
+ prefix: sentence.substring(0, offset).trim(),
+ body: source.trim(),
+ suffix: sentence.substring(offset + source.length).trim()
+ };
+}
+
+
+/*
* Audio
*/