All notable changes to Bridgetown will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- New GitHub Pages configurations will deploy a production build
- Add better error message for YAML parse error around Symbols
- Remove unnecessary
excerpt_separator
configuration default - New docs: a guide how to migrate from Jekyll #594 (jaredcwhite)
- Improved default Liquid layout
- Fix PurgeCSS configuration so it works with esbuild
- Provide URL helpers to Roda #583 (jaredcwhite)
- Support kwargs-only method calls for
partial
#582 (jaredcwhite) - Switch from
rack-indifferent
to Roda'sindifferent_params
plugin #586 (jaredcwhite) with thanks to @jeremyevans - Thanks to work-leonid for docs improvements
- Fix: apply Inspectors to Generated Pages as well
- Breaking change from beta2
- Update Gemfile template with nokogiri commented out (helps with the Inspectors API) #574 (andrewmcodes)
- Fix migrate-from-webpack process #573 (katafrakt)
- Ensure gem-based Builders are part of priority sorting #567 (jaredcwhite)
- Add
fill: "forwards"
to improve Turbo transition states
- Update Webpack 5 default config to switch to native asset loaders (no more
file-loader
needed)
- New bundled configurations: Lit, Shoelace, Ruby2JS, Open Props #553 (jaredcwhite)
- NOTE: "frontend component files" (aka
.js
/.css
files within thesrc/_components
folder) will now be ignored by the build process watcher, thus allowing the frontend bundling refresh to trigger a dev reload
- NOTE: "frontend component files" (aka
- Improve Roda error handling and update static error pages #565 (jaredcwhite)
- Always make sure
:en
is at the end of the I18n fallback chain - Support
.rb
and.json
for translation files - Support front matter defaults for multi locale
- Update
in_locale
to support filtering resources - Add
t
Liquid filter, allow I18n fallbacks - Allow
.multi
suffix on files names for multi locales - feat: add rb files to the Tailwind content glob #564 (andrewmcodes)
- Fix default custom collection permalink so it includes the locale prefix
- Add link to configuration options documentation in the default
bridgetown.config.yml
#563 (andrewmcodes) - Simplify the Roda boot process, add more route tests #562 (jaredcwhite)
- Add Sass support for esbuild, update frontend dependency versions #542 (jaredcwhite)
- Add ability to configure file filter for PostCSS plugin
- Fix PostCSS esbuild watch bug & remove easy-import
- Update Tailwind config so jit-refresh.css is git ignored #559 (jaredcwhite)
- Ensure future-dated resources import only when expected #558 (jaredcwhite)
- Inherit generator priority from builder
- BREAKING CHANGE: (maybe) The exact order multiple generators will run in may be subtly different than before. Use Builder priorities to resolve
- Add HTML & XML Inspectors API using Nokogiri #546 (jaredcwhite) & (andrewmcodes)
- Add default locale prefixing config option,
in_locale
template filter/helper #540 (jaredcwhite) - Add Markdown support to convert
==
/::
to<mark>
#551 (jaredcwhite) - Apply default theme for syntax highlighting #516 (jaredlt)
- Add site
server_shutdown
hook via Puma - Allow route classes to be prioritized to adjust run order #538 (jaredcwhite)
- Fix: ensure capturing helpers use dedicated component context
- Fix typo in "Core Principles": focsued → focused #541 (das-g)
- Allow finding and linking to alternate locale pages #522 (jaredcwhite)
- Issue warning when a Rails-style extension is used (like .html.erb) #523 (jaredcwhite)
- Fix Roda serving bug when index.html is missing
- Re-run SSR setup block on live reload
- Trigger pre/post-read hooks on SSR reload
- BREAKING CHANGE: (maybe) If you had long-running code in a plugin
build
method or a hook, this might surprise you when you live reload in dev using dynamic routes. Usesite.ssr?
if you want to bypass code in SSR mode.
- BREAKING CHANGE: (maybe) If you had long-running code in a plugin
- Fix bug where sidecar aux process wasn't requiring bundler groups #532 (jaredcwhite)
- Add bundled configuration for GH pages #503 (ayushn21)
- Fix
base_path
issues with Roda and site templates #510 (jaredcwhite) - Many documentation tweaks
- Plus everything since v0.21!
- Project repo Gemfile cleanup
- Remove the Renderer class by merging into GeneratedPage #492 (jaredcwhite)
- Cleaner paginated page URL #491 (jaredcwhite)
- Documentation updates by fpsvogel and subsevenx
- Partials rendering speedup by nearly 8x (!) #489 (jaredcwhite)
- Map Stimulus controller filenames to identifiers as in the Stimulus docs #486 (fpsvogel)
- Fix for issue #482: don't load front matter defaults for data collection (jaredcwhite)
- Add bundled configuration for Vercel #483 (andrewmcodes)
- Descendants tracker fix for issue #484 (jaredcwhite)
- Brand new website and refreshed documentation. Yowza! Special thanks to @adrianvalenz for contributing refreshed branding and content enhancements and to Whitefusion for overall design & development of the new site.
- Native esbuild integration, default site template switched to use esbuild + postcss #461 (jaredcwhite)
- BREAKING CHANGE: you will need to run
bin/bridgetown webpack update
so the build process can find the relocated assets manifest file.
- BREAKING CHANGE: you will need to run
- New site template design along with ERB and Serbea support via CLI flags #475 (jaredcwhite)
- Refactor how Rake tasks are loaded or displayed (jaredcwhite)
- Clean up listener and watcher, resolves #467 (jaredcwhite)
- Update Stimulus and Turbo configurations to latest versions (jaredcwhite)
- Permit Rails 7 versions of Active Support & Active Model (jaredcwhite)
- Improve the display of build errors #479 (jaredcwhite)
- Remove the Swup bundled configuration and enhance Turbo instead #471 (jaredcwhite)
- Switch routes to path from absolute_path for Ruby 3.1 compatibility (jaredcwhite)
- Fix origins autoload issue in #472 (jaredcwhite)
- Add
.ruby-version
file to new sites (jaredcwhite)
- Allow saving of models with repo origin #452 (jaredcwhite)
- Normalize previous/next resource API between Ruby and Liquid #466 (jaredcwhite)
- Docs: Add a nginx section in deployment #447 (Eric-Guo)
- Switch to streaming/event source mechanism for live reload #458 (jaredcwhite)
- Hooks refactor & cleaning up SSR reload hook #457 (jaredcwhite)
- Add
BRIDGETOWN_ENV
to render config #460 (ayushn21) - Fix production ENV issue with Roda file-based routes
- Move
Collection#sort_resources!
to a public method
- Fix class duplication bug with reloads and
ActiveSupport::DescendantsTracker
#450 (jaredcwhite) - Remove extra space from plugins command output #449 (jacobherrington)
- Remove the Liquid Component gem dependency
- Add support for environment CLI flags (
-e production
or--environment=production
) - Integrate Serbea 1.0 into Bridgetown #440 (jaredcwhite)
- Add new console commands via ConsoleMethods mixin #439 (jaredcwhite
- Support long version form in CLI (
--version
) #445 (Eric-Guo)
- Skip the archived state in plugins. #443 (Eric-Guo)
- Update ruby2js as required by webpack loader #442 (Eric-Guo)
- Refactor builder DSL for Ruby 2.7 & 3.0 compatibility
- Update minimum Ruby requirement to 2.7
- Copy
bin/bridgetown
tobin/bt
after binstubs generation - Ensure Webpack error messages only display once
- Add bundled configuration for Cypress #339 (ayushn21)
- Use Zeitwerk for autoload/eager load paths (including plugins) #434 (jaredcwhite & ayushn21)
- Don't mutate bundler dependencies in place #433 (deivid-rodriguez)
- Add bundled configuration for Render #431 (ayushn21)
- Detect the presence of Puma a different way #430 (jaredcwhite)
- Fix netlify config to use native deploy command #429 (ayushn21)
- The deprecated
include
andinclude_relative
tags have been removed.
- Refactor and cleanup of routing gem for better maintainability #424 (jaredcwhite)
- Also adds
bin/bridgetown secret
which functions much like thebin/rails secret
to generate a long randomized hex token.
- Also adds
- Allow template engines to accept symbols via Ruby front matter #396 (JuanVqz)
- Add build callbacks to Builder plugins and allow arbitrary instantiation #422 (jaredcwhite)
- Upgrade the codebase to Rubocop 1.22 and use config from
rubocop-bridgetown
gem
NOTE: this is still considered experimental and largely undocumented. It's fine to use...just not recommended for production. =)
-
Strip out all of the legacy content engine #415 (jaredcwhite)
- Transition Page to GeneratedPage
- Resource content from plugins now supported
-
SSR & file-based dynamic routes in src/_routes #383 (jaredcwhite)
- includes adding Puma, Rack, Roda, and Rake!
- the previous WEBrick-based dev server is deprecated
- nearly all past Yarn commands are now available through
bin/bridgetown
add_resource
DSL now available for builders #419 (jaredcwhite)- Improve locale routing based on filenames or special front matter #414 (jaredcwhite)
- Enhance front matter DSL with nesting and lambda value eval #398 (jaredcwhite)
- Add debug message when saving static files
- Improve resource engine compatibility in link tag and url_for helper #389 (jaredcwhite)
- Prevent
.js
matches with any file likefoo.js.txt.bat.png
#399 (nachoal)
- Change single quotes in script folder #406 (JuanVqz)
- Return ordered results for belongs_to array #390 (jaredcwhite)
- Bumped minimum recommended Node requirement to v12 and updated the docs for Homebrew installation on macOS.
- Remove pry and use binding.irb in dev console script
- Remove incremental generation #388 (jaredcwhite)
- Allow symbols for use in pagination/prototype front matter #386 (jaredcwhite)
- Ensure the data collection is read first #373 (jaredcwhite)
- Strip out newlines in generated package.json and index.js #369 (eclectic-coding)
- Resolve postcss-focus-within to v4 #366 (ayushn21)
- Performance refactor of the Webpack helper #382 (jaredcwhite)
- Several documentation improvments thanks to JuanVqz and debashis-biswal
- Resource: switch from default proc to preemptive defaults #359 (jaredcwhite)
- Ensure there aren't double-slashes in pagination links (jaredcwhite)
- Ensure summary content is html safe (jaredcwhite)
- Add missing comma in package.json which broken install #354
- Resource extension API along with basic summary feature #344 (jaredcwhite) Read the Docs
- Unintentional overwriting of data when using the Resource content engine #343 (jaredcwhite)
- Bug where in Liquid the
next_resource
method would mistakenly return the previous resource
- Configure sites in subfolders via base_path, not baseurl #348 (jaredcwhite)
- Swap babel for ESBuild and upgrade to Webpack 5 #334 (ayushn21)
- Change postcss.config.js stage from 3 to 2 #349 (juhat) Read the Docs
- Various improvements to the new Webpack config documentation
Final release of 0.21.0! See below for full changelog.
- Configuration change to remove Webpack warning regarding Babel #314 (eclectic-coding)
- Memoization for caching templates in
Bridgetown::Component
#326 (jaredcwhite) layout
method inResource::Base
#324 (jaredcwhite)- Include Bridgetown version in Webpack defaults #322 (ayushn21)
- Confirmation for overwriting postcss config in tailwindcss and bt-postcss bundled configurations #317 (ayushn21)
- Create new config directory and move Webpack defaults into it #316 (ayushn21)
- Fix the Bridgetown logger and other test improvements #328 (ayushn21)
- NOTE: the
Configuration file
log message is now output with adebug
log level instead ofinfo
. This means you will no longer see the config path in your terminal/logs unless you use the--verbose
flag.
- NOTE: the
- Install required packages in Webpack enable postcss tool #319 (ayushn21)
- Update Babel configuration to prevent overt warning #314 (ayushn21)
- Resolve issue with zombie templates in Pagination/Prototype logic
- Locale files now reload when the site regenerates
- Switch to using a Keep a Changelog format.
- Switch
plugins new
command to use MiniTest from the sample plugin repo. - Make configure command use Thor's apply method directly #293 (ayushn21)
- Resources configured not to output to a destination are now transformed as expected.
- The
previous_resource
method now returns the proper resource. - Fix warnings in plugin tests by checking if an ivar was defined #296 (ayushn21)
- Ensure Netlify script is set to executable. #302 (ayushn21)
- Consider the default branch from the git config when creating a new site or plugin. #294 (ayushn21)
- A bunch of global config accessors on site (like
lsi
,keep_files
, etc.) - Remove safe_yaml gem in favour of using Psych which is in the stdlib. #303 (ayushn21)
- Refactor old TODOs and deprecations
- Remove deprecated
sassify
/scssify
filters, add html_safe to theobfuscate_link
helper - Fix dotfiles or multiple extension permalinks (for the resource content engine) #292 (jaredcwhite)
- End-to-end Ruby front matter, templates, and data files (jaredcwhite) #285
- New
Bridgetown::Component
class with a ViewComponent-inspired API #268 (jaredcwhite) Read the Docs- Breaking Change: ERB now uses an output safety buffer to escape HTML in strings, same as in Rails. Read the Docs
- Relations for resources (belongs_to, has_many, etc.) #261 (jaredcwhite) Read the Docs
- Migrate to dart-sass since node-sass is deprecated #279 (eclectic-coding)
- EXPERIMENTAL (and opt-in): the Great Resource Content Engine PR has been merged. 135 files changed. Holy guacamole! #243 (jaredcwhite) Read the Docs
- Further improved Webpack integration by allowing multiple entry points and loading any manifest item with webpack_path helper #247 (jaredcwhite) Docs
- Exclude current post from LSI-powered related posts #253 (katafrakt)
- The
inspect
string forBridgetown::Site
is now lean and clean. - The history bug with the
bridgetown console
has been fixed! Now pressing your up arrow after entering the console will pull up all previous commands entered. Up, up, and away! - Support added for upcoming gem
bridgetown-mdjs
which will allow inline JS code blocks in Markdown similar in purpose to MDX (but for web components and other HTML-native solutions). Stay tuned!
- Fix css-loader's resolving of
/path/to/file
type URLs #240 (jaredcwhite)- Add documentation to explain why this change was necessary and what it enables for the future regarding Webpack's bundling of images.
- Introducing bundled configurations! Now some popular automations, including enhanced PostCSS and Tailwind CSS setups, are available directly through the Bridgetown CLI rather than being in a separate automations repo. Documentation here. Thanks Ayush
- Upgrade to Liquid 5.0 and remove previous backported
render
tag #224 (jaredcwhite)- Breaking Change: when using the
where
filter, the literals""``,
blank, and
empty` are now all equivalent.
- Breaking Change: when using the
- New plugin generator now prefers
main
overmaster
for default branch name #225 (ayushn21) - Use
ActiveSupport::DescendantsTracker
for managing class hierarchies of plugins (converters, builders, and generators) #218 (jaredcwhite) - Lots of documentation improvements — thanks Juan, Taha, and Ayush.
-
Website: Fix a grammar error in the Jamstack.md page on Bridgetown website (taha)
-
Fix for issue #73 (less likely to hit ActiveSupport error when
bridgetown
command is run withoutbundle exec
prefixed)
- Improve our active ActiveSupport support =) #215 (jaredcwhite)
- Add
filters_scope
option to liquid_filter DSL #214 (jaredcwhite) - Deprecate
PageWithoutAFile
class. It will be removed in v0.20. - Specify Webrick as a gem dependency now that it's no longer in the stdlib in Ruby 3
- Website: documentation on how to install Bridgetown in Fedora (bkmgit)
- Add modules resolve paths to default webpack config #206 (ayushn21)
- Add an empty PostCSS configuration option to the "new" command #190 (ayushn21)
- Fix obfuscate link syntax #203 julianrubisch)
- Website: Fix class declaration keyword in liquid tags and helpers docs #198 (ayushn21)
- Website: The Great Unification (removing all div-ision-s) #191 (jaredcwhite)
- Website: Fix typo in generators page in docs #195 (ayushn21)
- Add mailto:--tag to generated footer #192 (pascalwengerter)
- Change the
name
attribute of the defaultpackage.json
to be inferred from the path passed tobridgetown new
#188 (ayushn21)
- Change the logging level for "Executing inline Ruby…" messages to the debug level #184 (ianbayne)
- Add yarn clean script to package.json #182 (andrewmcodes)
- Fix dash obfuscation in obfuscate filter #181 julianrubisch)
- Ensure HashWithDotAccess converts to Hash for Liquid templates
- Bugfix: use HashWithDotAccess when parsing JSON in the HTTP Builder DSL
- Bugfix: reset payload for each Liquid template conversion
- Change site.layouts hash to dot access
- Bugfix: For template engine converters, set template_engine frontmatter automatically #177 (jaredcwhite)
- Bugfix: Resolve bug in converter error notifications
- Bugfix: Use capture helper for liquid_render #174 (jaredcwhite)
- Configurable template engines on a per-site or per-document basis #157 (jaredcwhite)
- Set a
template_engine
key in your config file. The default is assumed to be liquid, but you can change it toerb
(or other things in the future as this gets rolled out). Once that is set, you don't even have to name all your ERB files with an.erb
extension—it will process even.html.
,.md
,.json
, etc. It also means Liquid won't try to "preprocess" any ERB files, etc. - Regardless of what is configured site-wide, you can also set the
template_engine
in front matter (whether that's in an individual file or using front matter defaults), allowing you to swap out template engines wherever it's needed. - Front matter defaults support setting
template_engine
to none or anything else for a part of the source tree. - Liquid pages/layouts with a
.liquid
extension are processed as Liquid even if the configured engine is something else. - Breaking change: previously it was possible in Liquid for a child layout to set a front matter variable and a parent layout to access the child layout's variable value, aka
{{ layout.variable_from_child_layout }}
. That's no longer the case now…each layout has access to only its own front matter data. - Breaking change: a few pre-render hooks were provided access to Liquid's global payload hash. That meant they could alter the hash and thus the data being fed to Liquid templates. The problem is that there was no visibility into those changes from any other part of the system. Plugins accessing actual page/layout/site/etc. data wouldn't pick up those changes, nor would other template engines like ERB. Now if a hook needs to alter data, it needs to alter actual Ruby model data, and Liquid's payload should always reflect that model data.
- Set a
- Add render method for Ruby templates #169 (jaredcwhite)
- Add Zeitwerk loaders for component folders (any
*.rb
file will now be accessible from Ruby templates). Note: Zeitwerk will not load classes from plugins if they're already present in the source folder, so if you want a component to "reopen" a class from a plugin, you'll need torequire
the plugin class explicitly in your local component. - Allow ERB capture to pass object argument to its block.
- Breaking change: the previous
<%|= output_block do %>…<%| end %>
block style is out in favor of:<%= output_block do %>…<% end %>
, so you don't have to change a thing coming from Rails. Note: if you're coming from Middleman where blocks output by default without<%=
, you'll need to switch to Rails-style block expressions. - Breaking change: the
markdownify
helper in ERB now just returns a string rather than directly outputting to the template, so use<%= markdownify do %>…<% end %>
.
- Add Zeitwerk loaders for component folders (any
- Site documents array should exclude static files #168 (jaredcwhite)
- Obfuscate link filter #167 (julianrubisch)
- Add link/url_for and link_to helpers #164 (jaredcwhite)
- False value in front matter is now supported to ensure no layout is rendered #163 (jaredcwhite)
- Support per-document locale permalinks and config #162 (jaredcwhite)
- This isn't yet documented because an even more comprehensive i18n solution and announcement is forthcoming.
- Add blank src/images folder #172 (jaredcwhite)
- chore: Prototype pages optimizations and improvements to YARD docs #171 (jaredcwhite)
- Use HashWithDotAccess::Hash for all data/config hashes #158 (jaredcwhite)
- Add view reference to template helpers object #153 (jaredcwhite)
- Support a _pages folder in the source tree #151 (jaredcwhite)
- Add reading_time filter/helper #150 (jaredcwhite)
- Rename pager variable to paginator #148 (ParamagicDev & jaredcwhite)
- Add Class Map helper and usage info in docs #147 (jaredcwhite)
- Helper DSL for plugins (similar to the Liquid Filter DSL) #135 (jaredcwhite)
- Process data cascade for folder-based frontmatter defaults #139 (jaredcwhite)
- Execute block-based filters within object scope #142 (jaredcwhite)
- Provide a Liquid find tag as easier alternative to where_exp #101 (jaredcwhite)
- First pass at implementing site locales and translations #131 (jaredcwhite)
- Add international character slug improvements #138 (jaredcwhite & swanson)
- Switch to processing Ruby front matter by default #136 (jaredcwhite)
- Switch from AwesomePrint to AmazingPrint #127 (jaredcwhite)
- Fix filter plugin doc #130 (julianrubisch)
- Try out a couple of improvements for Lighthouse score #128 (jaredcwhite)
- Adding netlify.toml to add caching & hint headers #112 (MikeRogers0)
- Final release of 0.16! Yipee yay! Keep reading for what's new since 0.15.
(0-16-stable
branch)
- Fix the "add_yarn_for_gem" action #114 (jaredcwhite)
- Call GitHub API to determine default branch name #115 (jaredcwhite)
- Add capture helper to ERB templates
- Switch to Erubi for ERB template parsing
- Move webpack parsing code to the Utils module and enable for ERB templates #105 (jaredcwhite)
(0-16-stable
branch)
- Improve handling of Webpack manifest errors #96 (ParamagicDev)
- Add a class_map Liquid tag #99 (ParamagicDev)
- Update pagination documentation #98 (andrewmcodes)
- Add ERB template support (with Slim/Haml coming as additional plugins) #79 (jaredcwhite)
- Add/update Yard documentation for Site concerns #85 (ParamagicDev)
- Resolve deprecation warnings for Ruby 2.7 #92 (jaredcwhite)
- Switched the default branch from master to main
- Remove the Convertible concern and refactor into additional concerns #80 (jaredcwhite)
- Reducing animation for users who prefer reduced motion #84 (MikeRogers0)
- Final release of 0.15! Woo hoo! Keep reading for what's new since 0.14
(0-15-stable
branch)
- Add documentation for Cypress testing #75 (ParamagicDev)
- Add missing related_posts to Document drop #78 (jaredcwhite)
- Use AwesomePrint gem for console #76 (jaredcwhite)
(0-15-stable
branch)
- New documentation on plugin development (including
bridgetown plugins new
), themes, automations, Liquid components, etc. now on beta website. Beta site also showcases the upcoming quick search plugin which will be made available to all site devs. - Optimizations made internally to the Bridgetown test suite.
- Bridgetown website experiment with test suite #69 (jaredcwhite)
- Fix for GitHub branch URLs in automations #66 (ParamagicDev)
- Migrate CLI from Mercenery to Thor and Enable Automations #56 (jaredcwhite)
- First implementation of Liquid Components as well as a preview tool on the Bridgetown website #26 (jaredcwhite)
- Deprecate the include tag and standardize around the render tag #46 (jaredcwhite)
- Patch to fix PluginManager
yarn add
bug when there is nodependencies
key inpackage.json
- Use
liquid-render-tag
backport gem and remove references to temporary GitHub fork of Liquid #52 (jaredcwhite) - Refactor
Bridgetown::Site
into multiple Concerns #51 (jaredcwhite) - Fix for
start.js
to eliminate junk terminal characters (jaredcwhite) - New Unified Plugins API with Builders, Source Manifests, and Autoreload #41 (jaredcwhite)
- Add a Posts page to the new site template #39 (andrewmcodes)
- Add
titleize
Liquid filter and improveslugify
filter description #38 (jaredcwhite) - Add Bundler cache to the build GH action to improve test speed #40 (andrewmcodes)
- Bump minimum Node requirement to 10.13 (jaredcwhite)
- Configurable setting to allow executable Ruby code in Front Matter #9
- Honor the configured site encoding when loading Liquid components #33
- Allow configuration file as well as site metadata file to pull YAML options out of an environment specific block #34
- Add Faraday to the default set of gems that get installed with Bridgetown #30
- Add blank favicon.ico file to prevent error when generating a new site for the first time #32 (jaredmoody)
- Update the minimum Ruby version requirement to 2.5
- Add Concurrently and Browsersync for live reload, plus add new Yarn scripts #21
- Add some color to terminal output
- Add code name for minor SemVer version updates
- Add components source folder to sass-loader include paths
- Include missing commit from PR #14
- Add a git init step to
bridgetown new
command #18 - Update sass-loader webpack config to support .sass #14 (jaredmoody)
- Add customizable permalinks to Prototype Pages (aka
/path/to/:term/and/beyond
). Use hooks and in-memory caching to speed up Pagination. Inspired by use cases like this… #12
Prototype Pages
You can now create a page, say categories/category.html
, and add a prototype
config
to the Front Matter:
layout: default
title: Posts in category :prototype-term
prototype:
term: category
And then all the site's different categories will have archives pages at this location
(e.g. categories/awesome-movies
, categories/my-cool-vacation
, etc.) It enables
pagination automatically, so you'd just use paginator.documents
to loop through the
posts. See the docs here.
Automatic Yarn Step for New Plugins
Now with Gem-based plugins for Bridgetown, all you need to do is add yarn-add
metadata matching the NPM package name and keep the version the same as the Gem
version. For example:
spec.metadata = { "yarn-add" => "my-awesome-plugin@#{MyAwesomePlugin::VERSION}" }
With that bit of metadata, Bridgetown will know always to look for that package in
the users' package.json
file when they load Bridgetown, and it will trigger a
yarn add
command if the package and exact version number isn't present.
Add {% webpack_path [js|css] }
tag which pulls in the Webpack manifest and finds
the hashed output bundles. Also works in concert with the Watcher so every time
Webpack rebuilds the bundles, Bridgetown regenerates the site.
Switch gears on experimental component functionality.
Going with a new rendercontent
tag instead of component
. It is based on
Shopify's new Render tag which recently got introduced to Liquid. Note that the
feature hasn't been officially released via the Liquid gem, so we need to use the
master branch that's been forked on GitHub with a higher version number).
- Update table styling in Documentation
- Now showing the plugins_dir in log output if it's present
- With the Posts Reader changes, now you can add a Front Matter Default of
_posts/drafts
havingpublished: false
, put a bunch of draft posts in_posts/drafts
and you're done! - New
-U
flag makes it easier to specify generatingpublished: false
docs. - The Posts Reader has been reworked so that files with valid front matter can
be read in even if there's no YYYY-MM-DD- at the beginning. In addition, static
files are also supported, which means if you can create a folder (
inlinefiles
), drop a post in along with a bunch of images, and use![alt](some-image.jpg)
relative paths, it'll work! Big improvement to Markdown authoring. (You'll need to use a permalink in a specific manner though, e.g.permalink: /inlinefiles/:title:output_ext
) If you need a static file not to get copied to the destination, just add an_
at the beginning and it'll get ignored. - Collections no longer allow displaying a full server file path via Liquid.
{{ page.collection }}
now returns a CollectionDrop, not the label of the collection. Using thejsonify
filter on a document however still returns just the label for thecollection
key.- Add favicon to website
- Add mobile improvements to website
- Add back working feature tests for basic pagination
- Convert to Ruby 1.9+
symbol: value
hash syntax - Add Swup to website for some slick transitions
- Add "where_query" feature to Paginate. For example. specify
where_query: [author, sandy]
in the pagination YAML to filter by that front matter key. - Update the Jamstack page in the docs.
- Fix bug where paginator wouldn't properly convert Markdown templates
- Add Bridgetown::Paginate gem to monorepo
- Add CI build workflow via GitHub actions
- Clean up Rake tasks
- Add documentation around gem releases and contributing PRs
- Moved the default plugins folder from
src/_plugins
to simplyplugins
- Remove
gems
andplugins
keys from configuration - Move the cache and metadata folders to the root dir
- Define a default data file for site metadata:
src/_data/site_metdata.yml
that's accessible via{{ site.metadata.title }}
(for example) - Add relevant changes to site template for
bridgetown new
- Continue work on repo cleanup and documentation
- Add
bridgetown console
command to invoke IRB with the current site (similar to the Rails console command). Plugins, gems, will be loaded, etc.
- Remove
em-websocket
dependency. - Change _config.yml to bridgetown.config.yml (but _config.yml will still work for compatibility purposes).
- New Bridgetown logo and further Bridgetown URL updates.
- Many new and improved docs.
- Added a
component
Liquid tag which extends the functionality of include tags. - Added a new
bridgetown-website
project to the repo, which of course is a Bridgetown site and will house the homepage, documentation, etc.
- Moved all Bridgetown code to
bridgetown-core
, the idea being this will now be a monorepo housing Core plus a few other official gems/projects as time goes on. Users will install thebridgetown
gem which in turns installsbridgetown-core
as a dependency.
- Completed comprehensive code audio and changed or removed features no longer required for the project. Fixed and successfully ran test suite accordingly.
- First version after fork from pre-released Jekyll 4.1