Customize Your Site
There are three ways you can configure your Bridgetown site and customize aspects of its build process or server infrastructure.
- Using command line options (via the CLI)
- Using the
bridgetown.config.ymlYAML config file
- Using the
config/initializers.rbfile, which is the most expressive way and provides deterministic support for loading in gem-based plugins.
CLI: When you use a command line option, it looks something like this:
$ bin/bridgetown build --future
This tells the build process to include posts and other resources which are future-dated.
You can read Bridgetown’s command line usage documentation here.
YAML: When you use the
bridgetown.config.yml file, it looks something like this:
url: "https://www.bridgetownrb.com" permalink: simple timezone: America/Los_Angeles template_engine: serbea collections: docs: output: true permalink: "/:collection/:path.*" sort_by: order name: Documentation pagination: enabled: true # Environment-specific settings development: unpublished: true
You can learn more about the various configuration options in the links below.
Initializers: When you use the
config/initializers.rb file, it looks something like this:
Bridgetown.configure do |config| init :dotenv config.autoload_paths << "jobs" permalink "pretty" timezone "America/Los_Angeles" only :server do init :mail, password: ENV["SENDGRID_API_KEY"] end end
The initializer-style config is the most powerful, because you can configure different options for different contexts (static, server, console, rake), as well as interact with environment variables and other system features via full Ruby code. You can also initialize gem-based plugins and configure them in a single pass. And you can write your own initializers which may be called from the main
Take a Deep Dive #
- Configuration Options
- Markdown Options
- Liquid Options
- Puma Configuration (docs coming soon)
Beyond configuration, the way you’ll enhance and extend your site is through writing your own custom plugins. Continue reading for information on how to get started writing your first plugin or installing third-party plugins.