From 9da32b4b2e255801307caa8f62b7dd49aafcf96b Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 16 Aug 2023 15:19:30 -0300 Subject: html: Attributes: push() util --- src/util/html.js | 12 ++++++++++++ src/util/replacer.js | 5 +---- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src') 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. -- cgit 1.3.0-6-gf8a5