diff --git a/plugins/attributes.ts b/plugins/attributes.ts index 043630eb..88e1d28a 100644 --- a/plugins/attributes.ts +++ b/plugins/attributes.ts @@ -12,14 +12,14 @@ const escapeChars: Record = { * Plugin to provide helpers to manage attributes and class names of HTML elements * @see https://lume.land/plugins/attributes/ */ -export default function () { +export function attributes() { return (site: Site) => { - site.filter("attr", attributes); + site.filter("attr", attr); site.filter("class", className); }; } -export function attributes(values: unknown, ...validNames: string[]): string { +export function attr(values: unknown, ...validNames: string[]): string { const attributes = new Map(); handleAttributes(attributes, values, validNames); @@ -128,6 +128,8 @@ function isValid(name: string, validNames: string[]) { return name && (!validNames.length || validNames.includes(name)); } +export default attributes; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/base_path.ts b/plugins/base_path.ts index fcbaac3c..51167b2f 100644 --- a/plugins/base_path.ts +++ b/plugins/base_path.ts @@ -6,10 +6,12 @@ import type Site from "../core/site.ts"; * A plugin to prepend a base path to all internal URLs * @see https://lume.land/plugins/base_path/ */ -export default function () { +export function basePath() { return (site: Site) => { site.use(modifyUrls({ fn: (url) => url.startsWith("/") ? site.url(url) : url, })); }; } + +export default basePath; diff --git a/plugins/code_highlight.ts b/plugins/code_highlight.ts index 8b82e7e3..5451bf08 100644 --- a/plugins/code_highlight.ts +++ b/plugins/code_highlight.ts @@ -54,7 +54,7 @@ export const defaults: Options = { * A plugin to syntax-highlight code using the highlight.js library * @see https://lume.land/plugins/code_highlight/ */ -export default function (userOptions?: Options) { +export function codeHighlight(userOptions?: Options) { const options = merge(defaults, userOptions); hljs.configure(options.options); @@ -99,3 +99,5 @@ export default function (userOptions?: Options) { } }; } + +export default codeHighlight; diff --git a/plugins/date.ts b/plugins/date.ts index 1626f082..fe314d8a 100644 --- a/plugins/date.ts +++ b/plugins/date.ts @@ -37,7 +37,7 @@ export const defaults: Options = { * A plugin to format Date values * @see https://lume.land/plugins/date/ */ -export default function (userOptions?: Options) { +export function date(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -74,6 +74,8 @@ export default function (userOptions?: Options) { }; } +export default date; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/decap_cms.ts b/plugins/decap_cms.ts index b4164e58..aa769832 100644 --- a/plugins/decap_cms.ts +++ b/plugins/decap_cms.ts @@ -42,7 +42,7 @@ export const defaults: Options = { * A plugin to use Decap CMS in Lume easily * @see https://lume.land/plugins/decap_cms/ */ -export default function (userOptions?: Options) { +export function decapCMS(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -157,3 +157,5 @@ declare global { } } } + +export default decapCMS; diff --git a/plugins/esbuild.ts b/plugins/esbuild.ts index 92f2e803..d25a0e28 100644 --- a/plugins/esbuild.ts +++ b/plugins/esbuild.ts @@ -69,7 +69,7 @@ export const defaults: Options = { * A plugin to use esbuild in Lume * @see https://lume.land/plugins/esbuild/ */ -export default function (userOptions?: Options) { +export function esbuild(userOptions?: Options) { const options = merge(defaults, userOptions); // Configure jsx automatically @@ -392,3 +392,5 @@ function handleEsm(path: string, options: EsmOptions): string | undefined { return url.href; } + +export default esbuild; diff --git a/plugins/eta.ts b/plugins/eta.ts index 33d1f47d..8c70b287 100644 --- a/plugins/eta.ts +++ b/plugins/eta.ts @@ -101,7 +101,7 @@ export class EtaEngine implements Engine { * A plugin to render Eta templates * @see https://lume.land/plugins/eta/ */ -export default function (userOptions?: Options) { +export function eta(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -129,3 +129,5 @@ export default function (userOptions?: Options) { }); }; } + +export default eta; diff --git a/plugins/favicon.ts b/plugins/favicon.ts index 633d8fb2..31701009 100644 --- a/plugins/favicon.ts +++ b/plugins/favicon.ts @@ -55,7 +55,7 @@ export interface Favicon { * A plugin to generate favicons from an SVG or PNG file * @see https://lume.land/plugins/favicon/ */ -export default function (userOptions?: Options) { +export function favicon(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -186,3 +186,5 @@ async function buildIco( return image; } + +export default favicon; diff --git a/plugins/feed.ts b/plugins/feed.ts index 9c348f27..118ad705 100644 --- a/plugins/feed.ts +++ b/plugins/feed.ts @@ -131,7 +131,7 @@ const defaultGenerator = `Lume ${getCurrentVersion()}`; * A plugin to generate RSS and JSON feeds * @see https://lume.land/plugins/feed/ */ -export default function (userOptions?: Options) { +export function feed(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -291,3 +291,5 @@ function clean(obj: Record) { Object.entries(obj).filter(([, value]) => value !== undefined), ); } + +export default feed; diff --git a/plugins/fff.ts b/plugins/fff.ts index 331d5b7b..ae9b47e2 100644 --- a/plugins/fff.ts +++ b/plugins/fff.ts @@ -38,7 +38,7 @@ export const defaults: Options = { * A plugin to transform frontmatter using FFF * @see https://lume.land/plugins/fff/ */ -export default function (userOptions?: Partial) { +export function fff(userOptions?: Partial) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -66,6 +66,8 @@ export default function (userOptions?: Partial) { }; } +export default fff; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/filter_pages.ts b/plugins/filter_pages.ts index a5271d77..8e9f9e07 100644 --- a/plugins/filter_pages.ts +++ b/plugins/filter_pages.ts @@ -25,7 +25,7 @@ export const defaults: Options = { * A plugin to filter pages * @see https://lume.land/plugins/filter_pages/ */ -export default function (userOptions: Options) { +export function filterPages(userOptions: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -38,3 +38,5 @@ export default function (userOptions: Options) { }); }; } + +export default filterPages; diff --git a/plugins/inline.ts b/plugins/inline.ts index 88945b8a..1412a23a 100644 --- a/plugins/inline.ts +++ b/plugins/inline.ts @@ -35,7 +35,7 @@ const cache = new Map(); * like images, JavaScript, CSS, SVG, etc. * @see https://lume.land/plugins/inline/ */ -export default function (userOptions?: Options) { +export function inline(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -242,3 +242,5 @@ async function getFileContent( return content; } + +export default inline; diff --git a/plugins/json.ts b/plugins/json.ts index 011d8344..e77ff7fc 100644 --- a/plugins/json.ts +++ b/plugins/json.ts @@ -1,4 +1,4 @@ -import json from "../core/loaders/json.ts"; +import jsonLoader from "../core/loaders/json.ts"; import { merge } from "../core/utils/object.ts"; import type Site from "../core/site.ts"; @@ -22,14 +22,16 @@ export const defaults: Options = { * Installed by default * @see https://lume.land/plugins/json/ */ -export default function (userOptions?: Options) { +export function json(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { - site.loadData(options.extensions, json); + site.loadData(options.extensions, jsonLoader); site.loadPages(options.extensions, { pageSubExtension: options.pageSubExtension, - loader: json, + loader: jsonLoader, }); }; } + +export default json; diff --git a/plugins/jsx.ts b/plugins/jsx.ts index 1e7206b6..fdad6052 100644 --- a/plugins/jsx.ts +++ b/plugins/jsx.ts @@ -99,7 +99,7 @@ export class JsxEngine implements Engine { * A plugin to render JSX files using React * @see https://lume.land/plugins/jsx/ */ -export default function (userOptions?: Options) { +export function jsx(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -122,6 +122,8 @@ export default function (userOptions?: Options) { }; } +export default jsx; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/jsx_preact.ts b/plugins/jsx_preact.ts index 53211f11..81c88f3c 100644 --- a/plugins/jsx_preact.ts +++ b/plugins/jsx_preact.ts @@ -95,7 +95,7 @@ export class PreactJsxEngine implements Engine { * A plugin to render JSX files using Preact * @see https://lume.land/plugins/jsx_preact/ */ -export default function (userOptions?: Options) { +export function jsxPreact(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -118,6 +118,8 @@ export default function (userOptions?: Options) { }; } +export default jsxPreact; + /** Extends HTMLAttributes interface */ declare global { namespace preact.JSX { diff --git a/plugins/katex.ts b/plugins/katex.ts index 42e4ff9a..2b7bd9a2 100644 --- a/plugins/katex.ts +++ b/plugins/katex.ts @@ -1,4 +1,4 @@ -import { katex, KatexOptions } from "../deps/katex.ts"; +import { katex as Katex, KatexOptions } from "../deps/katex.ts"; import { renderMathInElement } from "../deps/katex-auto-render/auto-render.ts"; import { merge } from "../core/utils/object.ts"; @@ -50,7 +50,7 @@ export const defaults: Options = { * A plugin to render math equations using katex * @see https://lume.land/plugins/katex/ */ -export default function (userOptions?: Options) { +export function katex(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { site.process(options.extensions, (pages) => { @@ -64,7 +64,7 @@ export default function (userOptions?: Options) { document.querySelectorAll(options.cssSelector) .forEach((element) => { try { - const rendered = katex.renderToString( + const rendered = Katex.renderToString( element.textContent, options.options, ); @@ -93,3 +93,5 @@ export default function (userOptions?: Options) { }); }; } + +export default katex; diff --git a/plugins/lightningcss.ts b/plugins/lightningcss.ts index f99daac9..de3dd7ba 100644 --- a/plugins/lightningcss.ts +++ b/plugins/lightningcss.ts @@ -54,7 +54,7 @@ export const defaults: Options = { * A plugin to process CSS files with lightningcss * @see https://lume.land/plugins/lightningcss/ */ -export default function (userOptions?: Options) { +export function lightningCSS(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -161,3 +161,5 @@ export default function (userOptions?: Options) { export function version(major: number, minor = 0, patch = 0): number { return (major << 16) | (minor << 8) | patch; } + +export default lightningCSS; diff --git a/plugins/liquid.ts b/plugins/liquid.ts index 0a85e3ad..15dd41a3 100644 --- a/plugins/liquid.ts +++ b/plugins/liquid.ts @@ -129,7 +129,7 @@ export class LiquidEngine implements Engine { * @see https://lume.land/plugins/liquid/ * @deprecated Use Vento or Nunjucks instead (see https://github.com/lumeland/lume/issues/600) */ -export default function (userOptions?: Options) { +export function liquid(userOptions?: Options) { return function (site: Site) { const options = merge( { ...defaults, includes: site.options.includes }, @@ -249,6 +249,8 @@ function createCustomTagWithBody(fn: Helper): TagClass { }; } +export default liquid; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/markdown.ts b/plugins/markdown.ts index 2b8360ca..411f90d1 100644 --- a/plugins/markdown.ts +++ b/plugins/markdown.ts @@ -88,7 +88,7 @@ export class MarkdownEngine implements Engine { * Installed by default * @see https://lume.land/plugins/markdown */ -export default function (userOptions?: Options) { +export function markdown(userOptions?: Options) { const options = merge(defaults, userOptions); if (options.useDefaultPlugins) { @@ -140,6 +140,8 @@ export default function (userOptions?: Options) { }; } +export default markdown; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/mdx.ts b/plugins/mdx.ts index 0c36c181..398c2b07 100644 --- a/plugins/mdx.ts +++ b/plugins/mdx.ts @@ -115,7 +115,7 @@ export class MDXEngine implements Engine { * A plugin to render MDX files * @see https://lume.land/plugins/mdx/ */ -export default function (userOptions?: Options) { +export function mdx(userOptions?: Options) { return function (site: Site) { const options = merge( { ...defaults, includes: site.options.includes }, @@ -160,6 +160,8 @@ export default function (userOptions?: Options) { }; } +export default mdx; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/metas.ts b/plugins/metas.ts index 1e760253..c3f57663 100644 --- a/plugins/metas.ts +++ b/plugins/metas.ts @@ -66,7 +66,7 @@ const defaultGenerator = `Lume ${getCurrentVersion()}`; * A plugin to insert meta tags for SEO and social media * @see https://lume.land/plugins/metas/ */ -export default function (userOptions?: Options) { +export function metas(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -178,6 +178,8 @@ function addMeta( document.head.appendChild(document.createTextNode("\n")); } +export default metas; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/minify_html.ts b/plugins/minify_html.ts index 14000cce..594df281 100644 --- a/plugins/minify_html.ts +++ b/plugins/minify_html.ts @@ -34,7 +34,7 @@ export const defaults: Options = { * A plugin to minify HTML, CSS & JavaScript files * @see https://lume.land/plugins/minify_html/ */ -export default function (userOptions?: Options) { +export function minifyHTML(userOptions?: Options) { const options = merge(defaults, userOptions); const { extensions } = options; @@ -63,3 +63,5 @@ export default function (userOptions?: Options) { } }; } + +export default minifyHTML; diff --git a/plugins/modify_urls.ts b/plugins/modify_urls.ts index a452bf83..761fcb1d 100644 --- a/plugins/modify_urls.ts +++ b/plugins/modify_urls.ts @@ -25,7 +25,7 @@ export const defaults: Options = { * A plugin to modify all URLs found in the HTML documents * @see https://lume.land/plugins/modify_urls/ */ -export default function (userOptions: Options) { +export function modifyUrls(userOptions: Options) { const options = merge(defaults, userOptions); function replace( @@ -108,3 +108,5 @@ export default function (userOptions: Options) { ); }; } + +export default modifyUrls; diff --git a/plugins/modules.ts b/plugins/modules.ts index 74de35b4..9348a108 100644 --- a/plugins/modules.ts +++ b/plugins/modules.ts @@ -60,7 +60,7 @@ export class ModuleEngine implements Engine { * Installed by default * @see https://lume.land/plugins/modules/ */ -export default function (userOptions?: Options) { +export function modules(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -85,3 +85,5 @@ export default function (userOptions?: Options) { }); }; } + +export default modules; diff --git a/plugins/multilanguage.ts b/plugins/multilanguage.ts index 3bd20164..75acc852 100644 --- a/plugins/multilanguage.ts +++ b/plugins/multilanguage.ts @@ -26,7 +26,7 @@ export const defaults: Options = { * A plugin to create multilanguage websites * @see https://lume.land/plugins/multilanguage/ */ -export default function multilanguage(userOptions: Options) { +export function multilanguage(userOptions: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -253,3 +253,5 @@ function appendHreflang(lang: string, url: string, document: Document) { document.head.appendChild(meta); document.head.appendChild(document.createTextNode("\n")); } + +export default multilanguage; diff --git a/plugins/nav.ts b/plugins/nav.ts index b11d7aed..7bbdfa5d 100644 --- a/plugins/nav.ts +++ b/plugins/nav.ts @@ -21,7 +21,7 @@ export const defaults: Options = { * A plugin to generate a navigation tree and breadcrumbs * @see https://lume.land/plugins/nav/ */ -export default function (userOptions?: Options) { +export function nav(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -292,6 +292,8 @@ function convert( return data; } +export default nav; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/nunjucks.ts b/plugins/nunjucks.ts index 22e1091d..52b4e94b 100644 --- a/plugins/nunjucks.ts +++ b/plugins/nunjucks.ts @@ -1,4 +1,4 @@ -import nunjucks from "../deps/nunjucks.ts"; +import Nunjucks from "../deps/nunjucks.ts"; import loader from "../core/loaders/text.ts"; import { merge } from "../core/utils/object.ts"; import { normalizePath, resolveInclude } from "../core/utils/path.ts"; @@ -25,11 +25,11 @@ export interface Options { * Options passed to Nunjucks * @see https://mozilla.github.io/nunjucks/api.html#configure */ - options?: nunjucks.ConfigureOptions; + options?: Nunjucks.ConfigureOptions; /** Plugins loaded by Nunjucks */ plugins?: { - [index: string]: nunjucks.Extension; + [index: string]: Nunjucks.Extension; }; } @@ -118,7 +118,7 @@ export class NunjucksEngine implements Engine { this.cache.set( filename, // @ts-ignore: The type definition of nunjucks is wrong - nunjucks.compile(content, this.env, join(this.basePath, filename)), + Nunjucks.compile(content, this.env, join(this.basePath, filename)), ); } @@ -148,7 +148,7 @@ export class NunjucksEngine implements Engine { } } -class LumeLoader extends nunjucks.Loader implements nunjucks.ILoaderAsync { +class LumeLoader extends Nunjucks.Loader implements Nunjucks.ILoaderAsync { includes: string; constructor(private site: Site, includes: string) { @@ -160,7 +160,7 @@ class LumeLoader extends nunjucks.Loader implements nunjucks.ILoaderAsync { getSource( id: string, - callback: nunjucks.Callback, + callback: Nunjucks.Callback, ) { const rootToRemove = this.site.src(); let path = normalizePath(id, rootToRemove); @@ -192,14 +192,14 @@ class LumeLoader extends nunjucks.Loader implements nunjucks.ILoaderAsync { * A plugin to use Nunjucks as a template engine * @see https://lume.land/plugins/nunjucks/ */ -export default function (userOptions?: Options) { +export function nunjucks(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, userOptions, ); - const env = new nunjucks.Environment( + const env = new Nunjucks.Environment( [new LumeLoader(site, options.includes)], options.options, ); @@ -342,14 +342,14 @@ function createCustomTag(name: string, fn: Helper, options: HelperOptions) { if (!options.async) { const string = fn.apply({ data: context.ctx }, args); - return new nunjucks.runtime.SafeString(string); + return new Nunjucks.runtime.SafeString(string); } const callback = args.pop(); (fn.apply({ data: context.ctx }, args) as Promise).then( (string: string) => { - const result = new nunjucks.runtime.SafeString(string); + const result = new Nunjucks.runtime.SafeString(string); callback(null, result); }, ); @@ -359,6 +359,8 @@ function createCustomTag(name: string, fn: Helper, options: HelperOptions) { return tagExtension; } +export default nunjucks; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/og_images.ts b/plugins/og_images.ts index bf441a56..c802d784 100644 --- a/plugins/og_images.ts +++ b/plugins/og_images.ts @@ -45,7 +45,7 @@ export const defaults: Options = { * A plugin to generate Open Graph images for your pages * @see https://lume.land/plugins/og_images/ */ -export default function (userOptions?: Options) { +export function ogImages(userOptions?: Options) { return (site: Lume.Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -157,6 +157,8 @@ async function defaultFonts(): Promise { ]; } +export default ogImages; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/on_demand.ts b/plugins/on_demand.ts index 8a2b781c..160dba28 100644 --- a/plugins/on_demand.ts +++ b/plugins/on_demand.ts @@ -1,6 +1,6 @@ import { merge } from "../core/utils/object.ts"; import { log } from "../core/utils/log.ts"; -import onDemand, { +import OnDemand, { getRouter, MiddlewareOptions, } from "../middlewares/on_demand.ts"; @@ -30,7 +30,7 @@ export const defaults: Options = { * A plugin to generate pages on demand on server side * @see https://lume.land/plugins/on_demand/ */ -export default function (userOptions?: Options) { +export function onDemand(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -77,7 +77,7 @@ export default function (userOptions?: Options) { routesFile: site.root(options.routesPath), } as MiddlewareOptions; - site.options.server.middlewares.push(onDemand({ + site.options.server.middlewares.push(OnDemand({ site, router: getRouter(collector.routes), })); @@ -162,3 +162,5 @@ export class JsonRouterCollector { } } } + +export default onDemand; diff --git a/plugins/pagefind.ts b/plugins/pagefind.ts index 5e1f6c37..9390c920 100644 --- a/plugins/pagefind.ts +++ b/plugins/pagefind.ts @@ -1,7 +1,7 @@ import { merge } from "../core/utils/object.ts"; import { posix } from "../deps/path.ts"; import { Page } from "../core/file.ts"; -import { pagefind } from "../deps/pagefind.ts"; +import { pagefind as Pagefind } from "../deps/pagefind.ts"; import type { CustomRecord, TranslationsOptions } from "../deps/pagefind.ts"; import type Site from "../core/site.ts"; @@ -107,7 +107,7 @@ export interface Options { ui?: UIOptions | false; /** Options for the indexing process */ - indexing?: pagefind.PagefindServiceConfig; + indexing?: Pagefind.PagefindServiceConfig; /** Other custom records */ customRecords?: CustomRecord[]; @@ -134,12 +134,12 @@ export const defaults: Options = { * A plugin to generate a static full text search engine * @see https://lume.land/plugins/pagefind/ */ -export default function (userOptions?: Options) { +export function pagefind(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { site.process([".html"], async (pages, allPages) => { - const { index } = await pagefind.createIndex(options.indexing); + const { index } = await Pagefind.createIndex(options.indexing); if (!index) { throw new Error("Pagefind index not created"); @@ -192,7 +192,7 @@ export default function (userOptions?: Options) { // Cleanup await index.deleteIndex(); - await pagefind.close(); + await Pagefind.close(); }); if (options.ui) { @@ -278,3 +278,5 @@ export default function (userOptions?: Options) { } }; } + +export default pagefind; diff --git a/plugins/paginate.ts b/plugins/paginate.ts index 4a7106a7..a6ef2208 100644 --- a/plugins/paginate.ts +++ b/plugins/paginate.ts @@ -71,7 +71,7 @@ export const defaults: Options = { * Installed by default * @see https://lume.land/plugins/paginate/ */ -export default function (userOptions?: Options) { +export function paginate(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -129,6 +129,8 @@ export function createPaginator(defaults: PaginateOptions): Paginator { }; } +export default paginate; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/picture.ts b/plugins/picture.ts index 36f67ed6..ba2be556 100644 --- a/plugins/picture.ts +++ b/plugins/picture.ts @@ -33,7 +33,7 @@ export const defaults: Options = { * A plugin to transform images to different formats and sizes * @see https://lume.land/plugins/picture/ */ -export default function (userOptions?: Options) { +export function picture(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -372,3 +372,5 @@ function editImg( img.setAttribute("sizes", sizes); } } + +export default picture; diff --git a/plugins/postcss.ts b/plugins/postcss.ts index 33a69156..e569b2b0 100644 --- a/plugins/postcss.ts +++ b/plugins/postcss.ts @@ -48,7 +48,7 @@ const defaultPlugins = [ * A plugin to load all CSS files and process them using PostCSS * @see https://lume.land/plugins/postcss/ */ -export default function (userOptions?: Options) { +export function postCSS(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -141,6 +141,8 @@ function configureImport(site: Site, includes: string) { }); } +export default postCSS; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/prism.ts b/plugins/prism.ts index 2009e69d..e54f1d10 100644 --- a/plugins/prism.ts +++ b/plugins/prism.ts @@ -36,7 +36,7 @@ export const defaults: Options = { * A plugin to syntax-highlight code using Prism library * @see https://lume.land/plugins/prism/ */ -export default function (userOptions?: Options) { +export function prism(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -61,3 +61,5 @@ export default function (userOptions?: Options) { } }; } + +export default prism; diff --git a/plugins/pug.ts b/plugins/pug.ts index c8b8d5d6..13f1962d 100644 --- a/plugins/pug.ts +++ b/plugins/pug.ts @@ -123,7 +123,7 @@ export class PugEngine implements Engine { * A plugin to render Pug templates * @see https://lume.land/plugins/pug/ */ -export default function (userOptions?: Options) { +export function pug(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -158,6 +158,8 @@ export default function (userOptions?: Options) { }; } +export default pug; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/reading_info.ts b/plugins/reading_info.ts index 244374ff..76420be4 100644 --- a/plugins/reading_info.ts +++ b/plugins/reading_info.ts @@ -23,7 +23,7 @@ export const defaults: Options = { * A plugin to calculate the reading time of a content * @see https://lume.land/plugins/reading_info/ */ -export default function (userOptions?: Options) { +export function readingInfo(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -73,6 +73,8 @@ export default function (userOptions?: Options) { } } +export default readingInfo; + export interface ReadingInfo { /** The number of words in the content */ words: number; diff --git a/plugins/redirects.ts b/plugins/redirects.ts index a8f14dce..c5c0e1d9 100644 --- a/plugins/redirects.ts +++ b/plugins/redirects.ts @@ -36,7 +36,7 @@ const outputs: Record = { * A plugin to create redirections * @see https://lume.land/plugins/redirects/ */ -export default function (userOptions?: Options) { +export function redirects(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -166,6 +166,8 @@ async function vercel(redirects: Redirect[], site: Site): Promise { page.content = JSON.stringify(content, null, 2); } +export default redirects; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/relations.ts b/plugins/relations.ts index fdcfedc5..0a058ce9 100644 --- a/plugins/relations.ts +++ b/plugins/relations.ts @@ -39,7 +39,7 @@ export const defaults: Options = { * A plugin to create relations between pages * @see https://lume.land/plugins/relations/ */ -export default function (userOptions: Options) { +export function relations(userOptions: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -204,3 +204,5 @@ export default function (userOptions: Options) { ]; } } + +export default relations; diff --git a/plugins/relative_urls.ts b/plugins/relative_urls.ts index 2b57b035..87b1959b 100644 --- a/plugins/relative_urls.ts +++ b/plugins/relative_urls.ts @@ -7,7 +7,7 @@ import type Site from "../core/site.ts"; * A plugin to convert all internal URLs to relative * @see https://lume.land/plugins/relative_urls/ */ -export default function () { +export function relativeUrls() { return (site: Site) => { const basePath = site.options.location.pathname; @@ -27,3 +27,5 @@ export default function () { })); }; } + +export default relativeUrls; diff --git a/plugins/remark.ts b/plugins/remark.ts index 3a7db9ae..eca8bd70 100644 --- a/plugins/remark.ts +++ b/plugins/remark.ts @@ -95,10 +95,10 @@ export class MarkdownEngine implements Engine { * A plugin to load all Markdown files and process them using Remark * @see https://lume.land/plugins/remark/ */ -export default function (userOptions?: Options) { +export function remark(userOptions?: Options) { const options = merge(defaults, userOptions); - return function (site: Site) { + return (site: Site) => { const plugins = []; // Add remark-parse to generate MDAST @@ -154,3 +154,5 @@ export default function (userOptions?: Options) { } }; } + +export default remark; diff --git a/plugins/resolve_urls.ts b/plugins/resolve_urls.ts index 7cba275d..b92e46c5 100644 --- a/plugins/resolve_urls.ts +++ b/plugins/resolve_urls.ts @@ -8,7 +8,7 @@ import type Site from "../core/site.ts"; * A plugin to convert links to source files to the final page * @see https://lume.land/plugins/resolve_urls/ */ -export default function () { +export function resolveUrls() { return (site: Site) => { const cache = new Map(); @@ -79,3 +79,5 @@ function ignore(url: string) { url.includes("//") || (url.endsWith("/") && !url.startsWith("~")); // Pretty url } + +export default resolveUrls; diff --git a/plugins/robots.ts b/plugins/robots.ts index f44bd381..8c4f841c 100644 --- a/plugins/robots.ts +++ b/plugins/robots.ts @@ -50,7 +50,7 @@ export const defaults: Options = { * A plugin to generate a robots.txt after build * @see https://lume.land/plugins/robots/ */ -export default (userOptions?: Partial) => { +export function robots(userOptions?: Partial) { const options: Options = merge(defaults, userOptions); return (site: Site) => { @@ -98,4 +98,6 @@ export default (userOptions?: Partial) => { ).join("\n\n"); }); }; -}; +} + +export default robots; diff --git a/plugins/sass.ts b/plugins/sass.ts index 908c73a0..dcd29c9c 100644 --- a/plugins/sass.ts +++ b/plugins/sass.ts @@ -46,7 +46,7 @@ export const defaults: Options = { * A plugin to process SASS and SCSS files * @see https://lume.land/plugins/sass/ */ -export default function (userOptions?: Options) { +export function sass(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -162,3 +162,5 @@ function getPathsToLook(path: string): string[] { ]; } } + +export default sass; diff --git a/plugins/search.ts b/plugins/search.ts index e411fed8..123f2818 100644 --- a/plugins/search.ts +++ b/plugins/search.ts @@ -17,7 +17,7 @@ export const defaults: Options = { * Installed by default * @see https://lume.land/plugins/search/ */ -export default function (userOptions?: Options) { +export function search(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -25,6 +25,8 @@ export default function (userOptions?: Options) { }; } +export default search; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/sheets.ts b/plugins/sheets.ts index 01f6c24e..c7227c39 100644 --- a/plugins/sheets.ts +++ b/plugins/sheets.ts @@ -26,7 +26,7 @@ export const defaults: Options = { * A plugin to load Excel, Numbers, and CSV files * @see https://lume.land/plugins/sheets/ */ -export default function (userOptions?: Options) { +export function sheets(userOptions?: Options) { const options = merge(defaults, userOptions); async function loader(path: string): Promise { @@ -59,3 +59,5 @@ export default function (userOptions?: Options) { } }; } + +export default sheets; diff --git a/plugins/sitemap.ts b/plugins/sitemap.ts index 3a10f371..b706836c 100644 --- a/plugins/sitemap.ts +++ b/plugins/sitemap.ts @@ -46,7 +46,7 @@ export const defaults: Options = { * A plugin to generate a sitemap.xml from page files after build * @see https://lume.land/plugins/sitemap/ */ -export default function (userOptions?: Options) { +export function sitemap(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -123,6 +123,8 @@ export default function (userOptions?: Options) { }; } +export default sitemap; + interface UrlItem { loc: string; lastmod?: string; diff --git a/plugins/slugify_urls.ts b/plugins/slugify_urls.ts index 2a60c067..73ada9b8 100644 --- a/plugins/slugify_urls.ts +++ b/plugins/slugify_urls.ts @@ -24,7 +24,7 @@ export const defaults: Options = { * A plugin to slugify all URLs, replacing non-URL-safe characters * @see https://lume.land/plugins/slugify_urls/ */ -export default function (userOptions?: Options) { +export function slugifyUrls(userOptions?: Options) { const options = merge(defaults, userOptions); const slugify = createSlugifier(options); @@ -47,6 +47,8 @@ export default function (userOptions?: Options) { } } +export default slugifyUrls; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/source_maps.ts b/plugins/source_maps.ts index c7db98fd..2631d612 100644 --- a/plugins/source_maps.ts +++ b/plugins/source_maps.ts @@ -26,7 +26,7 @@ export const defaults: Options = { * A plugin to manage source maps * @see https://lume.land/plugins/source_maps/ */ -export default function (userOptions?: Options) { +export function sourceMaps(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -195,6 +195,8 @@ function addSourceMap(url: string, sourceMap: string): string { return `\n/*# sourceMappingURL=${sourceMap} */`; } +export default sourceMaps; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/sri.ts b/plugins/sri.ts index 34dd7045..d5980532 100644 --- a/plugins/sri.ts +++ b/plugins/sri.ts @@ -25,7 +25,7 @@ const cache = new Map(); * A plugin to add the Subresource Integrity (SRI) attribute to the script and link elements * @see https://lume.land/plugins/sri/ */ -export default function (userOptions?: Partial) { +export function sri(userOptions?: Partial) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -87,3 +87,5 @@ function digestName(algorithm: Options["algorithm"]) { return "SHA-384"; } } + +export default sri; diff --git a/plugins/svgo.ts b/plugins/svgo.ts index 59a0af9f..27270763 100644 --- a/plugins/svgo.ts +++ b/plugins/svgo.ts @@ -22,7 +22,7 @@ export const defaults: Options = { * A plugin to load all SVG files and minify them using SVGO * @see https://lume.land/plugins/svgo/ */ -export default function (userOptions?: Options) { +export function svgo(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -40,3 +40,5 @@ export default function (userOptions?: Options) { } }; } + +export default svgo; diff --git a/plugins/tailwindcss.ts b/plugins/tailwindcss.ts index 60fb9ee3..14fe4d5e 100644 --- a/plugins/tailwindcss.ts +++ b/plugins/tailwindcss.ts @@ -24,7 +24,7 @@ export const defaults: Options = { * A plugin to extract the utility classes from HTML pages and apply TailwindCSS * @see https://lume.land/plugins/tailwindcss/ */ -export default function (userOptions?: Options) { +export function tailwindCSS(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -71,3 +71,5 @@ export default function (userOptions?: Options) { }); }; } + +export default tailwindCSS; diff --git a/plugins/terser.ts b/plugins/terser.ts index d92080f5..5e94e1c4 100644 --- a/plugins/terser.ts +++ b/plugins/terser.ts @@ -31,7 +31,7 @@ export const defaults: Options = { * A plugin to load all JavaScript files and minify them using Terser * @see https://lume.land/plugins/terser/ */ -export default function (userOptions?: Options) { +export function terser(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -79,6 +79,8 @@ export default function (userOptions?: Options) { }; } +export default terser; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/toml.ts b/plugins/toml.ts index 513a3b3d..b4c95a8a 100644 --- a/plugins/toml.ts +++ b/plugins/toml.ts @@ -1,4 +1,4 @@ -import toml from "../core/loaders/toml.ts"; +import tomlLoader from "../core/loaders/toml.ts"; import { merge } from "../core/utils/object.ts"; import type Site from "../core/site.ts"; @@ -21,14 +21,16 @@ export const defaults: Options = { * A plugin to load TOML data files and pages * @see https://lume.land/plugins/toml/ */ -export default function (userOptions?: Options) { +export function toml(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { - site.loadData(options.extensions, toml); + site.loadData(options.extensions, tomlLoader); site.loadPages(options.extensions, { - loader: toml, + loader: tomlLoader, pageSubExtension: options.pageSubExtension, }); }; } + +export default toml; diff --git a/plugins/transform_images.ts b/plugins/transform_images.ts index 3264f3ee..1b8c8ad9 100644 --- a/plugins/transform_images.ts +++ b/plugins/transform_images.ts @@ -82,7 +82,7 @@ interface SingleTransformation extends Transformation { * A plugin to transform images in Lume * @see https://lume.land/plugins/transform_images/ */ -export default function (userOptions?: Partial) { +export function transformImages(userOptions?: Partial) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -260,6 +260,8 @@ function removeDuplicatedTransformations( return [...result.values()]; } +export default transformImages; + /** Extends Data interface */ declare global { namespace Lume { diff --git a/plugins/unocss.ts b/plugins/unocss.ts index 05c39453..5d516104 100644 --- a/plugins/unocss.ts +++ b/plugins/unocss.ts @@ -68,7 +68,7 @@ export const defaults: Options = { * A plugin to generate CSS using UnoCSS * @see https://lume.land/plugins/unocss/ */ -export default function (userOptions?: Options) { +export function unoCSS(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -154,3 +154,5 @@ export default function (userOptions?: Options) { async function getResetCss(reset: Options["reset"]) { return reset === false ? "" : await read(`${resetUrl}/${reset}.css`, false); } + +export default unoCSS; diff --git a/plugins/url.ts b/plugins/url.ts index 67d1bdc8..43c9c043 100644 --- a/plugins/url.ts +++ b/plugins/url.ts @@ -23,7 +23,7 @@ export const defaults: Options = { * Installed by default * @see https://lume.land/plugins/url/ */ -export default function (userOptions?: Options) { +export function url(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { @@ -43,6 +43,8 @@ export default function (userOptions?: Options) { }; } +export default url; + /** Extends Helpers interface */ declare global { namespace Lume { diff --git a/plugins/vento.ts b/plugins/vento.ts index ad7a4a8c..3b39d177 100644 --- a/plugins/vento.ts +++ b/plugins/vento.ts @@ -123,7 +123,7 @@ export class VentoEngine implements Engine { * Installed by default * @see https://lume.land/plugins/vento/ */ -export default function (userOptions?: Options) { +export function vento(userOptions?: Options) { return (site: Site) => { const options = merge( { ...defaults, includes: site.options.includes }, @@ -212,3 +212,5 @@ function compTag( return compiled.join("\n"); } + +export default vento; diff --git a/plugins/yaml.ts b/plugins/yaml.ts index e6c8f4f0..c7d6326e 100644 --- a/plugins/yaml.ts +++ b/plugins/yaml.ts @@ -1,4 +1,4 @@ -import yaml from "../core/loaders/yaml.ts"; +import yamlLoader from "../core/loaders/yaml.ts"; import { merge } from "../core/utils/object.ts"; import type Site from "../core/site.ts"; @@ -21,14 +21,16 @@ export const defaults: Options = { * Installed by default * @see https://lume.land/plugins/yaml/ */ -export default function (userOptions?: Options) { +export function yaml(userOptions?: Options) { const options = merge(defaults, userOptions); return (site: Site) => { - site.loadData(options.extensions, yaml); + site.loadData(options.extensions, yamlLoader); site.loadPages(options.extensions, { - loader: yaml, + loader: yamlLoader, pageSubExtension: options.pageSubExtension, }); }; } + +export default yaml; diff --git a/tests/classname.test.ts b/tests/classname.test.ts index bef695e1..136dbbb4 100644 --- a/tests/classname.test.ts +++ b/tests/classname.test.ts @@ -1,5 +1,5 @@ import { assertStrictEquals as equals } from "../deps/assert.ts"; -import { attributes, className } from "../plugins/attributes.ts"; +import { attr, className } from "../plugins/attributes.ts"; Deno.test("classname filter", () => { equals("one two", className("one", "two")); @@ -21,48 +21,48 @@ Deno.test("classname filter", () => { equals("one two", className([{ one: true, two: true }])); }); -Deno.test("attributes filter", () => { - equals("one two", attributes(["one", "two"])); - equals('one="two"', attributes({ one: "two" })); - equals("one", attributes({ one: true })); - equals("two", attributes({ one: null, two: true })); +Deno.test("attr filter", () => { + equals("one two", attr(["one", "two"])); + equals('one="two"', attr({ one: "two" })); + equals("one", attr({ one: true })); + equals("two", attr({ one: null, two: true })); equals( "one two", - attributes([{ one: null, two: true }, { one: true }]), + attr([{ one: null, two: true }, { one: true }]), ); - equals('foo=""bar""', attributes({ foo: '"bar"' })); - equals('class="foo bar"', attributes({ class: "foo bar" })); - equals('class="foo bar"', attributes({ class: ["foo bar"] })); - equals('class="foo"', attributes({ class: ["foo", { bar: false }] })); + equals('foo=""bar""', attr({ foo: '"bar"' })); + equals('class="foo bar"', attr({ class: "foo bar" })); + equals('class="foo bar"', attr({ class: ["foo bar"] })); + equals('class="foo"', attr({ class: ["foo", { bar: false }] })); equals( 'class="foo bar"', - attributes({ class: ["foo", { bar: true }] }), + attr({ class: ["foo", { bar: true }] }), ); equals( 'required class="foo bar"', - attributes(["required", { class: ["foo", { bar: true }] }]), + attr(["required", { class: ["foo", { bar: true }] }]), ); equals( 'required class="foo bar"', - attributes(["required", { class: ["foo", { bar: true }] }]), + attr(["required", { class: ["foo", { bar: true }] }]), ); equals( 'required class="foo bar"', - attributes([{ required: true }, { class: ["foo", { bar: true }] }]), + attr([{ required: true }, { class: ["foo", { bar: true }] }]), ); equals( 'required class="foo bar"', - attributes([{ required: true, class: ["foo", { bar: true }] }]), + attr([{ required: true, class: ["foo", { bar: true }] }]), ); equals( 'required class="foo bar"', - attributes( + attr( ["required", { class: "foo" }, { class: ["bar", { other: false }] }], ), ); equals( 'required class="foo" title="bar"', - attributes( + attr( ["required", { class: "foo" }, { id: "one", title: "bar" }], "required", "class", @@ -71,7 +71,7 @@ Deno.test("attributes filter", () => { ); equals( 'id="one"', - attributes( + attr( ["required", { class: "foo" }, { id: "one", title: "bar" }], "id", ),