Attributes
Provide helpers to manage attributes and class names of HTML elements
Description
Use the attributes
plugin to register two template filters to normalize the attributes of your HTML:
attr
Provide a convenient way to work with HTML attributes.
---
link:
title: Go to GitHub
href: https://github.com
target: _blank
noopen: false
class:
- link
- link-external
---
<a {{ link | attr | safe }}>Hello</a>
const link = {
title: "Go to GitHub"
href: "https://github.com"
target: "_blank"
noopen: false
class: ["link", "link-external"]
}
export default function (_, { attr }) {
return `<a ${ attr(link) }>Hello</a>`;
}
class
To work with HTML class names:
---
styles:
- btn
- btn-primary
---
<a class="{{ styles | class }}">Hello</a>
const styles = [
"btn",
"btn-primary",
{ "is-disabled": true },
];
export default function (_, filters) {
return `<a class="${filters.class(styles)}>Hello</a>`;
}
Installation
Import this plugin in your _config.ts
file to use it:
import lume from "lume/mod.ts";
import attributes from "lume/plugins/attributes.ts";
const site = lume();
site.use(attributes());
export default site;