The Trans Directory
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: percent-encoding for files with %, contentIndex for non-latin chars (closes #397, closes #399)

+10 -4
+1 -1
quartz/plugins/emitters/contentIndex.ts
··· 22 22 const defaultOptions: Options = { 23 23 enableSiteMap: true, 24 24 enableRSS: true, 25 - includeEmptyFiles: false, 25 + includeEmptyFiles: true, 26 26 } 27 27 28 28 function generateSiteMap(cfg: GlobalConfiguration, idx: ContentIndex): string {
+8 -2
quartz/plugins/transformers/links.ts
··· 60 60 dest, 61 61 transformOptions, 62 62 ) 63 - const url = new URL(dest, `https://base.com/${curSlug}`) 63 + 64 + // url.resolve is considered legacy 65 + // WHATWG equivalent https://nodejs.dev/en/api/v18/url/#urlresolvefrom-to 66 + const url = new URL(dest, `resolve://${curSlug}`) 64 67 const canonicalDest = url.pathname 65 68 const [destCanonical, _destAnchor] = splitAnchor(canonicalDest) 66 - const simple = decodeURI(simplifySlug(destCanonical as FullSlug)) as SimpleSlug 67 69 70 + // need to decodeURIComponent here as WHATWG URL percent-encodes everything 71 + const simple = decodeURIComponent( 72 + simplifySlug(destCanonical as FullSlug), 73 + ) as SimpleSlug 68 74 outgoing.add(simple) 69 75 } 70 76
+1 -1
quartz/util/path.ts
··· 52 52 53 53 let slug = withoutFileExt 54 54 .split("/") 55 - .map((segment) => segment.replace(/\s/g, "-")) // slugify all segments 55 + .map((segment) => segment.replace(/\s/g, "-").replace(/%/g, "-percent")) // slugify all segments 56 56 .join("/") // always use / as sep 57 57 .replace(/\/$/, "") // remove trailing slash 58 58