fix: deep clone before relativizing urls in transclude (closes )

This commit is contained in:
Jacky Zhao 2023-12-20 09:52:17 -08:00
parent 7bcf27241f
commit 2e9896c893
3 changed files with 13 additions and 1 deletions
quartz/util

View file

@ -1,5 +1,9 @@
import { slug as slugAnchor } from "github-slugger"
import type { Element as HastElement } from "hast"
import rfdc from "rfdc"
const clone = rfdc()
// this file must be isomorphic so it can't use node libs (e.g. path)
export const QUARTZ = "quartz"
@ -121,7 +125,8 @@ const _rebaseHastElement = (
}
}
export function normalizeHastElement(el: HastElement, curBase: FullSlug, newBase: FullSlug) {
export function normalizeHastElement(rawEl: HastElement, curBase: FullSlug, newBase: FullSlug) {
const el = clone(rawEl) // clone so we dont modify the original page
_rebaseHastElement(el, "src", curBase, newBase)
_rebaseHastElement(el, "href", curBase, newBase)
if (el.children) {