Relative URLs
Convert all URLs to relative.
Options See on deno.land
- extensions string[]
The list of extensions this plugin applies to
Default:[ ".html" ]
Description
The relative_urls
plugin converts all URLs in your HTML documents to relative, so you can publish the same site under different domains, subdirectories, or even protocols (like opening the site from the filesystem under file://
).
Installation
Import this plugin in your _config.ts
file to use it:
import lume from "lume/mod.ts";
import relativeUrls from "lume/plugins/relative_urls.ts";
const site = lume();
site.use(relativeUrls());
export default site;
Example
The plugin converts all internal URLs of your site to relative URLs. For example:
<!-- /articles/my-first-article/ -->
<a href="/articles/my-second-article/">Go to the second article</a>
<!-- /articles/my-first-article/ -->
<a href="../my-second-article/">Go to the second article</a>
This plugin changes not only the <a>
elements, but any element with the href
attribute (link
, area
) or src
(img
, video
, audio
, etc).
Modify URLs inside CSS files
By default, the plugin only checks HTML pages. You can use the extensions
option to extend it to .css
files.
site.use(relativeUrls({
extensions: [".html", ".css"], // Fix URLs inside HTML and CSS files
}));