async stamp(obj) {
    const { target, text = '', hash = '' } = obj
    const node = this.root.querySelector(`.markdown-${target}`)
    if (!node) return obj
    node.setAttribute('data-hash', hash)
    const frag = this.frag(text)
    /** @type {HTMLLinkElement[]} */
    const links = Array.from(frag.querySelectorAll('link[rel="stylesheet"]') || [])
    const whenLoaded = Promise.all(
      links.map(
        (link) =>
          new Promise((resolve) => {
            link.onload = resolve
            link.onerror = (err) => {
              console.warn('[zero-md] error loading stylesheet', link.href)
              resolve(err)
            }
          })
      )
    )
    node.innerHTML = ''
    node.append(frag)
    await whenLoaded
    return { ...obj, stamped: true }
  }
Stamp parsed html strings into dom
@param {ZeroMdRenderObject} obj
@returns {Promise<ZeroMdRenderObject>}