All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project try to adheres to Semantic Versioning.
Go to the v1
branch to see the changelog of Lume 1.
2.4.3 - 2024-12-11
- New option
finalHandler
toServer
class. metas
plugin: Support for light and dark theme colors using an array. Example:color: ["white", "black"]
- Ensure
LUME_LIVE_RELOAD
env variable is available in the _config file. on_demand
middleware types.on_demand
plugin doesn't filter scoped pages.- Added test for
check_urls
plugin. - Added tests for middlewares.
- Types errors in Deno 2.1.
og_images
plugin: make satori options type partial.- Fixed
--port
configuration on serve mode #704. - Updates dependencies:
std
,sass
,liquidjs
,tailwindcss
,postcss
,lightningcss
,preact
,decap-cms
,unocss
,magic-string
,vento
,satori
,terser
,markdown-it-attrs
,katex
,xml
and some icons.
2.4.2 - 2024-11-10
- Restore
minify_html
dependency creating a copy on deno.land/x #689. - Updated icon catalogs to the latest version.
- Removed license comment of lucide icon collection.
2.4.1 - 2024-11-07
- Several bugs in the
icons
plugin:- Broken urls because don't start with
/
. - Options types.
- The default variant of Phosphor must be
regular
. - The variant argument doesn't work.
- Broken urls because don't start with
- Some bugs in the
check_urls
plugin:- Report the exact URL for external links.
- Show a
Searchign for broken links...
message to provide some feedback for sites with many links. - The ignore option doesn't qwork for external links.
- Updated dependencies:
pagefind
andunocss
.
2.4.0 - 2024-11-06
- New plugin:
check_urls
to detect broken links #675. - New plugin:
icons
to load automatically icons from popular icon catalogs. - New plugin:
google_fonts
to download and self-host automatically fonts from Google Fonts. - New plugin:
brotli
to compress files. #681 - New plugin:
gzip
to compress files. #680 - New
precompress
middleware, to serve precompressed files. #664 - Allow to specify fallbacks for
metas
andfeed
plugins #683. - Feed plugin: Add support for author #601.
base_path
,modify_urls
relative_urls
: Add support for CSS files.- Metas plugin: New property
fediverse
to create thefediverse:creator
meta tag. - New option
placeholder
tounocss
plugin. - New Site option
components.placeholder
.
- Vento plugin: Cache invalidation on Windows.
- Nav plugin: Breadcrumb with urls with CJK characters.
- Enable tests for
sri
andreading_info
plugins #677. - Fix tests for
esbuild
plugin #676. code_highlight
plugin: configuration type must be Partial #679.- Updated dependencies:
sass
,terser
,liquid
,tailwindcss
,std
,preact
,mdx
,xml
,satori
,react
types,unocss
,magic-string
,vento
,lightningcss
. - esbuild plugin: Add support for
entryNames
option #678. - esbuild plugin: Add proper support for lume url rewrites (
basename
andurl
) #685. - Enable
--port
argument tolume cms
command #686.
2.3.3 - 2024-10-07
- Basic auth middleware: Added
errorMessage
option. - Added "none" merge strategy to reset a previously defined strategy.
- Esbuild plugin: added support for
outExtension
#668. - New environment variable
LUME_CMS
to check whether the site is built by the CMS. - Support for
localStorage
andsessionStorage
in watch mode.
- Multilanguage plugin: The 404 page must be ignored.
- Transform images plugin with animated images #671
- When using special value
git created
fordate
variable, it will fall back togit modified
first, then filesystem last modified date #667. - Environment variables defined in
_cms.ts
are available in_config.ts
. - Updated dependencies:
linkedom
,sass
,satori
,terser
,liquidjs
,tailwind
,date-fns
,std
,esbuild
,preact
,lightningcss
,postcss
,remark-rehype
,rehype-stringify
,react
types,unocss
.
2.3.2 - 2024-09-10
- Nav plugin: include
slug
in thetoJSON
export.
2.3.1 - 2024-09-09
- New option
watcher.include
to add extra external paths to the watcher.
- Nav plugin: revert
child.slug
property removal. - Updated deps:
sass
,std
,pagefind
,xml
,postcss
,decap-cms
,terser
,deno-dom
. - Nav plugin: Search for pages with basename as
index
. - Reload on edit
_config.ts
and_cms.ts
files if they are out of the src directory. - Code improvements #662.
2.3.0 - 2024-08-30
- New function
site.parseBasename
, to register new custom parsers to extract data from basenames. - Restart after changing the
_config.ts
or_cms.ts
files. - New plugin
sri
. - Improved plugin docs with links to the online documentation.
- New functions
nav.nextPage()
andnav.previousPage()
fornav
plugin. - New method
toJSON()
added to the result ofnav.menu()
fornav
plugin. For example:const menu = nav.menu(); JSON.stringify(menu);
- New sort options
asc-locale
anddesc-locale
.
- BREAKING CHANGES in the
nav
plugin:- The
child.slug
property was deleted. Usechild.data.basename
. - All nav elements has the
data
attribute. - To check if a nav item corresponds to a page:
// Lume 2.2 if (item.data) { return `<a href="{{ item.data.url }}">{{ item.data.title }}</a>` } else { return `<strong>{{ item.slug }}</strong>` } // Lume 2.3 if (item.data.url) { return `<a href="{{ item.data.url }}">{{ item.data.title }}</a>` } else { return `<strong>{{ item.data.basename }}</strong>` }
- These changes improve the sorting of the elements in the nav tree.
- The
cms.ts
file.
- Escape the
%
character in the URI #652. - Updated deps:
std
,liquidjs
,preact
,tailwindcss
,xml
,postcss
,autoprefixer
,unocss
,terser
,eta
,lightningcss
,markdown-it-attrs
,decap-server
,liquidjs
,preact-render-to-string
,esbuild
,react
types,sharp
. - Remove empty directories in
dest
folder #626. - Watcher new files on Windows.
- Feed plugin: error when the updated/published value is a string #638.
- Fixed esbuild reload #647.
- Fixed serve showing stale pages #649.
- Speed up logging to console with colors #651
- Nav plugin: did ignore default order option #655.
- Reload theme files if they are local.
2.2.4 - 2024-07-18
- New middleware
redirect_as2
#632.
page.sourcePath
wrongly returns the remote url instead of the path for remote files.- Reload remote files #633.
- Vento components must be sync.
- Updated dependencies:
std
,terser
,sass
,xml
,liquid
,highlight.js
,unocss
,decap_cms
,tailwindcss
,vento
,preact-render-to-string
. - Use a pinned version of
npm:decap-server
package for stability. - DecapCMS script: switch from
unpkg
tojsDelivr
for performance. - Add
Server.addr
for getting local address #634. - Bug calculating the filename of remote files.
- Replaced
unpkg
withjsdelivr
for stability and response times.
2.2.3 - 2024-07-05
- New option
caseSensitiveUrls
to allow to export two urls with the same name but different cases #625. - Support for
npm
specifiers to postcss and lightningcss plugins #621. - Redirects middleware: added
strict
option to configure whether distinguish the trailing slash or not. For backward compatibility istrue
by default.
- Nav plugin: Improved behavior for sites with pretty urls disabled.
- Nav plugin: the
order
option is not applied. - Updated dependencies:
std
,postcss
,esbuild
,katex
,preact
,xml
,vento
,satori
,unocss
. - Vento plugin for component doesn't support multiline code.
- Removed
jxl
intransform_images
plugin because it's not supported by Sharp #630.
2.2.2 - 2024-06-21
search.data()
doesn't return data for source files (likesearch.data("index.md")
).- esbuild plugin: Fixed
basename
support #617. - Apply
mergedKeys
configuration in layouts #618. - Extended Preact types with Lume's custom attributes #619.
- Hot reload: Ensure sockets are open before send updates #614, #615.
- Updated dependencies:
tailwindcss
,terser
,sass
,std
,react-render-to-string
,xml
,esbuild
,vento
,unocss
,liquidjs
,unified
.
2.2.1 - 2024-06-04
- Allow to run a server with
deno serve -A _config.ts
. - New
noCors
middleware to prevent CORS errors during development.
- Use
lume_init
dependency to upgrade Lume
- Port detection in
lume cms
command. - Show an error when trying to copy a file from outside the src folder #610.
- Updated dependencies:
std
,preact-render-to-string
,vento
,lightningcss
,unocss
,pug
,cms
,liquid
,lightningcss
,esbuild
,react-types
,deno_dom
,sass
,unocss
,xml
,unidecode
,react-render-to-string
.
2.2.0 - 2024-05-17
LuΓsa Villalta edition.
- Feed plugin: Add image support #599, #598.
- New middleware
shutdown
. - Esbuild plugin: support for
jsr:
specifiers. - New
Lume.Loader
type. - New
afterLoad
event, triggered just after all files are (re)loaded. - Show the error if a file cannot be copied.
- New option
theme
to download the theme CSS file automatically for theprism
andcode_highlight
plugins. - Metas plugin: allow to add custom metas #604, #608.
- BREAKING: Removed
lume/cms.ts
module. Use import maps instead. - The minimum Deno version supported is
1.43
. - For better predictability, the
_cache
folder is generated in the root folder, instead ofsrc
folder. - Simplified Esbuild plugin.
- Import
std
packages fromjsr
because they are not longer updated onland/x
. - The default port when lume build the site (not serving) is
80
or443
, depending whether the location protocol is http or https. Previously it was3000
.
liquid
plugin. It never worked well withsearch.pages()
#600.
- PostCSS plugin: Don't use nesting plugin by default since CSS nesting feature works across the latest devices and browser versions.
- Updated dependencies:
unocss
,liquid
,postcss-nesting
,terser
,xml
,react
,std
,sass
,preact
,esbuild
,svgo
,cms
,sheetjs
. - FFF plugin: fix
getGitDate
priority #603. - Esbuild plugin:
- Resolve bare specifiers mapped to
npm:
. - Renamed imports to
.js
when bundle isfalse
#594.
- Resolve bare specifiers mapped to
- Redirect plugin: resolve urls when site location has a subfolder #606.
- Bug merging options from CLI and _config file #607.
- The option
--port
no longer depends on--serve
.
2.1.4 - 2024-04-17
- Pagefind plugin: Updated the
ui
object with the new options introduced in v1.1.0.
init.ts
file.
esbuild
timeout #591.- Updated dependencies:
unocss
,pagefind
,postcss-nesting
,sass
,terser
,vento
,std
,preact
,unocss
,liquid
,react
types,sass
,tailwind
,magic-string
,lume_cms
,sharp
,esbuild
.
2.1.3 - 2024-03-28
- PostCSS plugin: new option
name
with the default valuepostcss
#582. - date plugin: new formats
HUMAN_SINCE
andHUMAN_SINCE_STRICT
exposeformatDistanceToNow
andformatDistanceToNowStrict
in the date-fns package, so you can refer to the amount of time that has passed since the an article was last written/modified, rather than just the date it was written #589.
- Do not ignore the
/.well-known
folder by default #585.
- Reload site on rename/delete file.
- Updated dependencies:
std
,esbuild
,lightningcss
,unocss
,date-fns
,cms
,eta
,katex
,liquid
,markdown-it
,postcss
,postcss-import
,autoprefixer
,preact
,sharp
,tailwindcss
,terser
,vento
.
2.1.2 - 2024-03-14
transform_images
plugin: added the.webp
extension to the default options.vento
plugin: New optionplugins
to use Vento plugins.- Added
vento
andaddVentoPlugin
hooks.
- UnoCSS plugin: the async process of adding
<style>
elements is not awaited #578. - Updated dependencies:
std
,terser
,cms
,postcss
,react
types,unocss
,vento
,date-fns
,sass
,terser
. - Replace Sharp with
svg2png
as the library to convert svg to png. - Init script creates always the
_cms.ts
file.
2.1.1 - 2024-03-01
- Bug on init command generating the _cms.ts file #575
- Updated dependencies:
lightningcss
,terser
,cms
,postcss
,postcss-nesting
,std
,vento
,react
types.
2.1.0 - 2024-02-22
- Support
x-default
for unmatched languages #528 & #532multilanguage
pluginsitemap
plugin
- New plugin:
fff
#529. - New plugin:
redirects
#534. - New plugin:
og_images
#534. - New plugin:
robots
#570. - New command
lume cms
. onDemand
plugin: support async extraData function #560, #561.- Core:
lume:*
global events. - Core:
lume.getWatcher()
function.
- BREAKING: Removed deprecated
--unstable
flag to the defaultlume
task. Use theunstable
configuration indeno.json
. - BREAKING: Upgrade
date-fns
dependency to version 3 #541. This affects to how to import locales in the _config file:// Old import gl from "npm:date-fns/locale/gl"; // New import { gl } from "npm:date-fns/locale/gl";
- Allow to get value from attribute in CSS query of
getDataValue()
function #556, #558. Seemetas
plugin for a clear example. favicon
plugin: #562- Default ico size changed to 48.
- Add
sizes="any"
to the svg icon. - Place the svg icon at end.
- logging:
deno task lume upgrade
removes thedeno.lock
file #527.transform_images
plugin: don't enlarge images by default #530.
- Pages filtered with
filter_pages
plugin are exported to the sitemap. - Ensure
site.options.server.middlewares
array is always defined. - Updated dependencies:
std
,date-fns
,lightningcss
,vento
,terser
,autoprefixer
,esbuild
,sass
,unocss
,deno-dom
,esbuild
,postcss
,postcss-import
,preact
,preact-render-to-string
,mdx
,terser
,liquid
,react
types. site.hooks.addMarkdownItPlugin
accepts multiple optionscli
commands are loaded dynamically.- Added missing
Lume.Data.nav
variable #567. - BREAKING:
slugify_urls
plugin only slugify.html
files by default. The reason is to avoid unexpected behaviors like renaming the_headers
file #569. Useextensions
option to add more file extensions. - Bug in
multilanguage
plugin that add non-html pages in the list of alternates.
2.0.3 - 2024-01-12
metas
&feed
plugins: Suppport for functions to configure the data fields.mdx
plugin: Newmdx
filter #550.
md
filter fromremark
plugin is async.
- esbuild plugin: Fix support for subextensions added to JSX files.
For example:
file.client.jsx
. - Conflict between
jsx
and esbuild plugin withjsx
#547. - Don't break if env variables are not granted #551.
- Nested components doesn't work in Vento #552
- Updated deps:
std
,unocss
,svgo
,sass
,postcss
,postcss-import
,vento
,tailwindcss
,react
types,remark
,sharp
.
2.0.2 - 2024-01-01
- Add critical log on rare case where developer forget to export the Site instance in the
_config.ts
decap_cms
plugin: Add a script in the homepage to redirect to /admin/ when an invite token or recovery token is detected from netlify identity.getOptionsFromCli
is moved frommod.ts
toutils/cli_options.ts
#535, #540.
sitemap
plugin: Add thexmlns
namespace for localized urls.- Files with all caps extensions are ignored #542.
multilanguage
plugin:- Fix error of two pages with the same id, type and lang.
- Fix the error of a page with lang, but undefined id.
- Removed unused
imagick
dependency. - Added
Lume.PaginateResult
type. - Apply merge data strategies between multiple _data files/folders in the same folder.
- Date recovery from Git repositories #544.
- Updated dependencies:
std
,esbuild
,liquid
,postcssNesting
,react-dom
types,sharp
,svgo
,vento
,tailwindcss
,minify_html
,unocss
,sass
.
2.0.1 - 2023-12-10
mdx
plugin: NewrehypeOptions
option #517
lightningcss
plugin: use the correct includes folder #523.mdx
andremark
plugins: improved types.- Lume needs Deno >= 1.38.
- Type of
Lume.Data.results
. - Improved log messages of empty and ondemand pages #525.
picture
plugin using the wrong attribute name #526.- Updated deps:
markdown-it
,preact
,terser
,esbuild
.
2.0.0 - 2023-12-08
- New plugin
unocss
, to replacewindi_css
. - New plugin
transform_images
, to replaceimagick
. - New option
server.root
toSite
. - New
basename
variable to change the final name of files/directories. #494 - New function
site.getOrCreatePage()
. - Allow to copy files/directories inside ignored directories #520
- Added generics to
search
functions. For example:search.pages<PageType>()
. - New environment variable
LUME_NOCACHE
to disable the cache of the remote files. - TOML plugin: New option
pageSubExtension
with the default value.page
. - YAML plugin: New option
pageSubExtension
. - JSX plugin: New option
pageSubExtension
. - JSON plugin: New option
pageSubExtension
. - Eta plugin: New option
pageSubExtension
. - Liquid plugin: New option
pageSubExtension
. - Nunjucks plugin: New option
pageSubExtension
. - Pug plugin: New option
pageSubExtension
. - Vento plugin: New option
pageSubExtension
. - Markdown plugin: New option
useDefaultPlugins
that it'strue
by default. - Postcss plugin: new option
useDefaultPlugins
that it'strue
by default. - Module plugin:
- New option
pageSubExtension
. - New option
includes
- New option
- MDX plugin:
- New option
useDefaultPlugins
that it'strue
by default. - New option
recmaPlugins
#521. - New option
includes
- New option
- JSX Preact plugin
- New option
pageSubExtension
. - New
precompile
option for faster jsx transform.
- New option
- Pagefind plugin: New option
highlightParam
. - Not found middleware: Added default options.
- Remark plugin:
- Revamp of types.
- Removed
core.ts
and createdtypes.ts
. - New global namespace
Lume
. - Use the lib
dom
anddom.iterable
types instead ofdeno-dom
.
- Removed
- Changed the signature of
process
andpreprocess
to behave likeprocessAll
andpreprocessAll
. - Changed the signature of
Page.create()
. It has a single argument with an object with the page content. - Renamed the interface method
Engine.renderSync
toEngine.renderComponent
. - Changed the
Format
interface. - Pretty URLs option doesn't affect to the
/404.html
page by default. - Replace
fn-date
withTemporal
polyfill to convert dates. - Refactor of
Server
class to work withDeno.serve()
API #501. - Renamed
core/filesystem.ts
tocore/file.ts
. - Picture plugin: Renamed the attribute
imagick
totransform-images
. - TOML plugin:
- is installed by default
- Changed
extensions
option type tostring[]
.
- Slugify URL: Slugify static files by default. #447
- JSX plugin:
- Removed
window.React
#332. - Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Removed
- NetlifyCMS plugin:
- Renamed to
decap_cms
. - Changed
netlifyIdentity
option toidentity: "netlify"
- Renamed to
- Markdown plugin: Disable indented code blocks by default #376
- Postcss plugin: The
includes
folder is automatically ignored. - MDX plugin:
- Updated to MDX v3.
- The
includes
folder is automatically ignored.
- Module plugin
- Changed
extensions
option type tostring[]
. - Replaced
.tmpl
subextension with.page
. - The
includes
folder is automatically ignored.
- Changed
- Eta plugin
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Changed
- JSON plugin
- Changed
extensions
option type tostring[]
. - Replaced
.tmpl
subextension with.page
.
- Changed
- JSX Preact plugin
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Changed
- Liquid plugin
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Changed
- Nunjucks plugin
- Disabled by default
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Pug plugin
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Changed
- Vento plugin
- Enabled by default
- Changed
extensions
option type tostring[]
. - The
includes
folder is automatically ignored.
- Multilanguage plugin
- Apply the default language to all pages with undefined language.
- Removed the ability to insert translations in the middle of the data object.
- The uniqueness of a page is defined by the combination of id + type.
- SASS plugin: The
includes
folder is automatically ignored. - LightningCSS plugin: The
includes
folder is automatically ignored. - Feed plugin
- Renamed the option
info.date
toinfo.published
; - Renamed the option
item.date
toitem.published
; - New option
item.updated
;
- Renamed the option
- Removed plugin
windi_css
. Useunocss
instead. - Removed plugin
imagick
. Usetransform_images
instead. - Removed output extension detection in the filename: #430
- Removed
processAll
andpreprocessAll
. - Removed
Page.dest
property #290. - Removed
Page.updateDest
function. - Removed
Page.src.lastModified
andPage.src.created
because they are already inPage.src.entry
. - Removed
Page.src.remote
because it's already inPage.src.entry
. - Removed
Page.src.slug
because it's already inPage.data.basename
. - Removed
--dev
mode #244, #201. Use the env variableLUME_DRAFTS=true
to output draft pages. - Removed
--quiet
argument Use the env variableLUME_LOGS=DEBUG|INFO|WARNING|ERROR|CRITICAL
. - Removed
site.includes()
function. - Renamed
site.searcher
tosite.search
. - The
pageSubExtension
is used only to load pages, but not for layouts, components, etc. - Removed
site.loadComponents()
. It's included insite.loadPages()
options. - Removed
site.engine()
. It's included insite.loadPages()
options. - Removed
site.cacheFile()
- Removed
Entry.setContent()
- Removed message to upgrade Lume.
- Removed
Error
class to print the errors.Deno.inspect()
is used instead. - Removed
lume/core/utils.ts
and moved all utilities to different files under/lume/core/utils/
folder. - Search plugin:
- Removed
returnPageData
option. Pages always return thedata
object #251 - Removed
search.tags()
function. Usesearch.values("tags")
. - Removed
data
filter.
- Removed
- YAML plugin: Changed
extensions
option type tostring[]
. - Removed WindiCSS plugin.
- Markdown plugin: removed
keepDefaultPlugins
- Postcss plugin: removed
keepDefaultPlugins
- MDX plugin:
- Removed
overrideDefaultPlugins
- Removed
pragma
option.
- Removed
- Remark plugin: Removed
overrideDefaultPlugins
option
- Updated dependencies:
std
,deno_dom
,eta
,lightningcss
,liquidjs
,nunjucks types
,pagefind
,preact
,react types
,pug
,svgo
,esbuild
,svgo
,terser
,unocss
,vento
,xml
,postcss
,markdown-it-defllist
.