UNPKG

@rr0/cms

Version:

RR0 Content Management System (CMS)

33 lines (32 loc) 1.19 kB
import { ObjectUtils } from "@rr0/common"; /** * Replaces a <time> tag. */ export class TimeReplacer { constructor(factory) { this.factory = factory; } static resolvedTime(context, dateTime) { const replacement = context.file.document.createElement("time"); replacement.dateTime = dateTime; return replacement; } async replacement(context, origEl) { let replacement; if (origEl.dateTime) { // Already done? replacement = origEl; } else { const previousContext = origEl.dataset.context === "none" ? undefined : context.clone(); const timeStr = origEl.textContent; const valid = context.time.updateFromStr(timeStr); replacement = valid && this.factory.create(context, previousContext, { url: true, contentOnly: true }); if (!replacement) { replacement = origEl; // replacement.setAttribute("datetime", context.time.toString()) } context.debug("\tReplacing time", origEl.outerHTML, "with", ObjectUtils.asSet(replacement).outerHTML); } return replacement; } }