diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-08-16 15:19:30 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-08-16 15:19:30 -0300 |
commit | 9da32b4b2e255801307caa8f62b7dd49aafcf96b (patch) | |
tree | 6dbdef800aa4dc7fabaef7fdab87ab0404bc3a97 | |
parent | adf0adde987a368298e135c23ce307efbc38d888 (diff) |
html: Attributes: push() util
-rw-r--r-- | src/util/html.js | 12 | ||||
-rw-r--r-- | src/util/replacer.js | 5 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/util/html.js b/src/util/html.js index 712a0a68..4e243f7d 100644 --- a/src/util/html.js +++ b/src/util/html.js @@ -470,6 +470,18 @@ export class Attributes { return delete this.#attributes[attribute]; } + push(attribute, ...values) { + const oldValue = this.get(attribute); + const newValue = + (Array.isArray(oldValue) + ? oldValue.concat(values) + : oldValue + ? [oldValue, ...values] + : values); + this.set(attribute, newValue); + return newValue; + } + toString() { return Object.entries(this.attributes) .map(([key, val]) => { diff --git a/src/util/replacer.js b/src/util/replacer.js index ac23bf46..028cd3ba 100644 --- a/src/util/replacer.js +++ b/src/util/replacer.js @@ -382,10 +382,7 @@ export function postprocessHeadings(inputNodes) { parseFrom = match.index + match[0].length; const attributes = html.attributes(parseAttributes(match[1])); - - attributes.set('class', - (attributes.get('class') ?? []) - .concat(['content-heading'])); + attributes.push('class', 'content-heading'); // We're only modifying the opening tag here. The remaining content, // including the closing tag, will be pushed as-is. |