summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-08-31 21:08:30 -0400
committerGitHub <noreply@github.com>2021-08-31 21:08:30 -0400
commit02194fcb9f5dfd61482b6d3814e395a1225c8a9b (patch)
treecf9db705bdae5517d9a62141a0b0a0f5494178bf
parentce1a862df41691da1ee0c0d86b2fdb16472f316b (diff)
Add support for structured content margins (#1920)
-rw-r--r--ext/data/schemas/dictionary-term-bank-v3-schema.json16
-rw-r--r--ext/js/display/sandbox/structured-content-generator.js16
-rw-r--r--test/data/dictionaries/valid-dictionary1/term_bank_1.json16
3 files changed, 47 insertions, 1 deletions
diff --git a/ext/data/schemas/dictionary-term-bank-v3-schema.json b/ext/data/schemas/dictionary-term-bank-v3-schema.json
index af4494ff..abb4e58f 100644
--- a/ext/data/schemas/dictionary-term-bank-v3-schema.json
+++ b/ext/data/schemas/dictionary-term-bank-v3-schema.json
@@ -215,6 +215,22 @@
"type": "string",
"enum": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"],
"default": "baseline"
+ },
+ "marginTop": {
+ "type": "number",
+ "default": 0
+ },
+ "marginLeft": {
+ "type": "number",
+ "default": 0
+ },
+ "marginRight": {
+ "type": "number",
+ "default": 0
+ },
+ "marginBottom": {
+ "type": "number",
+ "default": 0
}
}
}
diff --git a/ext/js/display/sandbox/structured-content-generator.js b/ext/js/display/sandbox/structured-content-generator.js
index f0e70c4d..82bf0421 100644
--- a/ext/js/display/sandbox/structured-content-generator.js
+++ b/ext/js/display/sandbox/structured-content-generator.js
@@ -216,7 +216,17 @@ class StructuredContentGenerator {
_setStructuredContentElementStyle(node, contentStyle) {
const {style} = node;
- const {fontStyle, fontWeight, fontSize, textDecorationLine, verticalAlign} = contentStyle;
+ const {
+ fontStyle,
+ fontWeight,
+ fontSize,
+ textDecorationLine,
+ verticalAlign,
+ marginTop,
+ marginLeft,
+ marginRight,
+ marginBottom
+ } = contentStyle;
if (typeof fontStyle === 'string') { style.fontStyle = fontStyle; }
if (typeof fontWeight === 'string') { style.fontWeight = fontWeight; }
if (typeof fontSize === 'string') { style.fontSize = fontSize; }
@@ -226,5 +236,9 @@ class StructuredContentGenerator {
} else if (Array.isArray(textDecorationLine)) {
style.textDecoration = textDecorationLine.join(' ');
}
+ if (typeof marginTop === 'number') { style.marginTop = `${marginTop}em`; }
+ if (typeof marginLeft === 'number') { style.marginLeft = `${marginLeft}em`; }
+ if (typeof marginRight === 'number') { style.marginRight = `${marginRight}em`; }
+ if (typeof marginBottom === 'number') { style.marginBottom = `${marginBottom}em`; }
}
}
diff --git a/test/data/dictionaries/valid-dictionary1/term_bank_1.json b/test/data/dictionaries/valid-dictionary1/term_bank_1.json
index 8f2a4c42..58136d79 100644
--- a/test/data/dictionaries/valid-dictionary1/term_bank_1.json
+++ b/test/data/dictionaries/valid-dictionary1/term_bank_1.json
@@ -148,6 +148,22 @@
]}
]}
]}
+ ]},
+ {"type": "structured-content", "content": [
+ "margin",
+ {
+ "tag": "div",
+ "style": {
+ "marginTop": 1,
+ "marginLeft": 1,
+ "marginRight": 1,
+ "marginBottom": 1
+ },
+ "content": [
+ "inner"
+ ]
+ },
+ "margin"
]}
],
100, "P E1"