Home / Function/ createCanonicalURL() — astro Function Reference

createCanonicalURL() — astro Function Reference

Architecture documentation for the createCanonicalURL() function in util.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  c5c97369_2f98_f35c_fabe_d11ed6ec685a["createCanonicalURL()"]
  d9adc373_c064_68f1_79ad_de252369fed2["util.ts"]
  c5c97369_2f98_f35c_fabe_d11ed6ec685a -->|defined in| d9adc373_c064_68f1_79ad_de252369fed2
  a2a19b70_aaec_edad_6a7c_04cc484ebb65["getUrlExtension()"]
  c5c97369_2f98_f35c_fabe_d11ed6ec685a -->|calls| a2a19b70_aaec_edad_6a7c_04cc484ebb65
  style c5c97369_2f98_f35c_fabe_d11ed6ec685a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro-rss/src/util.ts lines 4–23

export function createCanonicalURL(
	url: string,
	trailingSlash?: RSSOptions['trailingSlash'],
	base?: string,
): string {
	let pathname = url.replace(/\/index.html$/, ''); // index.html is not canonical
	if (!getUrlExtension(url)) {
		// add trailing slash if there’s no extension or `trailingSlash` is true
		pathname = pathname.replace(/\/*$/, '/');
	}

	pathname = pathname.replace(/\/+/g, '/'); // remove duplicate slashes (URL() won’t)

	const canonicalUrl = new URL(pathname, base).href;
	if (trailingSlash === false) {
		// remove the trailing slash
		return canonicalUrl.replace(/\/*$/, '');
	}
	return canonicalUrl;
}

Domain

Subdomains

Frequently Asked Questions

What does createCanonicalURL() do?
createCanonicalURL() is a function in the astro codebase, defined in packages/astro-rss/src/util.ts.
Where is createCanonicalURL() defined?
createCanonicalURL() is defined in packages/astro-rss/src/util.ts at line 4.
What does createCanonicalURL() call?
createCanonicalURL() calls 1 function(s): getUrlExtension.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free