view docs/pages/support/changelog.md @ 1173:5f9f411a109e 3.3.0

cm: Regenerate the CHANGELOG.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 04 Oct 2019 11:48:18 -0700
parents 3516759ea1b2
children
line wrap: on
line source

---
title: Changelog
layout: simple
---

# Changelog


## 1. PieCrust 3.3.0 (2019-10-04)


### 1.0 Commands

* admin: Improvements to micropub endpoint's photo handling.
* bake: Don't crash if a source doesn't implement related items.
* prepare: Add micro-blogging template.
* sources: Add ability to force a realm on a source.

### 1.1 Core

* config: Add setting for enabling baking or serving posts in the future.
* config: Allow tweaking the configuration of default routes.
* config: Support environment variables in theme directories.
* data: Allow combining different data providers.
* routing: Fix breakages with routing on some versions of Python.
* routing: For some reason, escaping percents isn't happening anymore.

### 1.3 Project

* cm: Add mock to test dependencies.
* cm: Add new pytest cache dirs to hgignore.
* cm: Update dependencies and fix imports of Flask plugins.
* cm: Update dependencies.
* cm: Update gulp/npm stuff.
* cm: Update hgignore.
* cm: Upgrade Jinja2 version.
* tests: Add ability to test different expected outputs based on Python version.
* tests: Fix YAML warning in tests.

### 1.4 Miscellaneous

* copyasset: Add `copyasset` command.
* core: Remove deprecation warning about collections.abc.
* core: Remove more YAML deprecation warnings.
* core: Remove yaml deprecation warning.
* less: Fix issues moving the map file on Windows. Again.

## 2. PieCrust 3.2.1 (2018-06-05)


### 2.0 Commands

* bake: Give unique source specs to each taxonomy or blog archive page.
* serve: Fix an issue where false positive matches were rendered as the requested page.

### 2.1 Core

* internal: Cleanup in the paginator's code.

### 2.3 Project

* cm: Regenerate the CHANGELOG.
* tests: Improve servings tests' error reporting.

## 3. PieCrust 3.2.0 (2018-05-20)


### 3.0 Commands

* bake: Disable `uglifyjs` and `cleancss` by default.
* bake: Optimize cache handling for the baking process.

### 3.1 Core

* templating: Fix Inukshuk `paginate` function.

### 3.3 Project

* cm: Regenerate the CHANGELOG.
* cm: Update npm modules.
* tests: Don't use flow style for generated YAML markup.

### 3.4 Miscellaneous

* fix: Correctly invalidate pages that use dirtied sources.
* showrecords: Tiny cosmetic change for the output.
* url: New `url` command to get the URL of a page from its path.

## 4. PieCrust 3.1.1 (2018-02-28)


### 4.0 Commands

* chef: Support special tokens in the `chef/env` setting.
* prepare: Fix crash when preparing new pages.
* theme: Fix quickstart message formatting.

### 4.3 Project

* cm: Regenerate the CHANGELOG.
* tests: Improve failure reporting, improve CLI tests.

## 5. PieCrust 3.1.0 (2018-02-27)


### 5.0 Commands

* admin: Early version of webmention endpoint.
* admin: Fix another root URL issue for the admin panel.
* admin: Fix possible crash in the edit page.
* admin: Upgrade login screen to new Bootstrap classes.
* bake: Fix bug on Windows where shim scripts of NodeJS tools couldn't run.
* chef: Add new `chef/env` config section.
* help: Add new help topics on routes.
* routes: Make help topic names consistent.
* serve: Do some more useful debug logging when serving assets.
* serve: Indicate where to find the admin panel in the console output.
* serve: Only tell about the admin panel if needed.

### 5.1 Core

* config: Report error if a non-asset source has no URL route.
* data: Fix bug with page family data not returning correct `is_dir` value.
* data: Let the `asset` endpoint load JSON data into the template engine.
* data: Rename JSON-ifier function.
* data: Use the root URL for the debugger assets.
* internal: Disable macOS file-system wrappers.
* internal: PEP8.
* internal: Remove unnecessary imports.
* routing: Fix URL generation bug with ugly URLs and index pages in sub-folders.

### 5.3 Project

* cm: Add pipenv stuff.
* cm: Ignore temp test files.
* cm: Regenerate the CHANGELOG.
* cm: Simpler, better `Pipfile`.
* docs: Add more information about the administration panel.
* docs: Add some information about setting up the micropub endpoint.
* tests: Better error reporting for serving tests.
* tests: Fix assetor tests.
* tests: Fix pipeline test after having added new processors.
* tests: Make internal test stuff not get picked up by pytest.

### 5.4 Miscellaneous

* formatter: Fix the regex used to find page segments.
* tasks: Add new `tasks` command and infrastructure, with `mention` task.

## 6. PieCrust 3.0.2 (2018-02-16)


### 6.0 Commands

* sources: Update prose source to correctly use the new source API.

### 6.1 Core

* data: Fix recently introduced bug with blog data provider.

### 6.3 Project

* cm: Regenerate the CHANGELOG.

### 6.4 Miscellaneous

* page: Let sources like prose override the title.

## 7. PieCrust 3.0.1 (2018-02-15)


### 7.0 Commands

* serve: Fix debug rendering for page iterators.
* serve: Show debug info, report errors when debug info isn't available.
* sources: Fix index page slug for ordered page source.
* sources: Fix some invalid relationship name.

### 7.1 Core

* data: Fix debug rendering of the blog data provider.
* data: Fix debug rendering of the family data.

### 7.3 Project

* cm: Ignore documentation counter.
* cm: Regenerate the CHANGELOG.
* docs: Add information about common file-system sources' configurations.
* docs: Add some information about migrating from v2 to v3.
* docs: Cosmetic improvements to the navigation bar.
* docs: Fix default formatter.
* docs: Make the "code" section show up correctly in navigation.
* docs: Tweak CSS style for block quotes.

## 8. PieCrust 3.0.0 (2018-02-13)


### 8.0 Commands

* admin: Handle multiple photo uploads in the micropub endpoint.
* admin: Make tumbnails when posting photos, commit to SCM.
* admin: Upgrade Bootstrap, switch icons to Open-Iconic, remove Bower.
* bake: Add `--sources` argument.
* bake: Add support for Browserify.
* bake: Allow specifying which asset processors to use on a per-source basis.
* bake: Better performance stats, and add callback to preload templates.
* bake: Do template caching in a background job if possible.
* bake: Don't add outputs as dependencies, duh.
* bake: Don't cheat when profiling.
* bake: Don't ignore errors reported on things that are not yet in the records.
* bake: Fix bug with postponed pages due to them using other sources.
* bake: Fix exception verbose reporting for bake worker errors.
* bake: Fix overriding issues between theme and user pages for index pages.
* bake: Fix totally broken page baking caused by previous commit.
* bake: Fix where the Browserify processor outputs things.
* bake: Load pages in parallel again.
* bake: Make `batch-size` option work again.
* bake: More detailed stats, and fix a problem with some error reporting.
* bake: Only cache templates for the default template engine.
* bake: Optimize Browserify dependency handling.
* bake: Remove superfluous debug message.
* bake: Simplify output.
* chef: Fix crash for commands run outside of a website.
* serve: Don't spam the output when hitting CTRL+C while processing assets.
* serve: Fix crash when editing `config.yml` while serving.
* serve: Fix crash with `serve --admin`.
* serve: Fix crash with autoconfig source pages when serving.
* serve: Fix infinite loop in asset processing when a change is detected.
* serve: Fix problems with assets disappearing between servings.
* serve: Re-enable baking assets when running the server.
* serve: Use `watchdog` for a more efficient monitoring of assets files.
* sources: Adds support for whitelist filtering to file-system sources.
* sources: Fix ordering and filename confusion in the "ordered" source.
* sources: Improve error message when trying to get children pages on a group.

### 8.1 Core

* data: Add new properties and folder support to the `family` data endpoint.
* data: Fix a bug when listing a blog's posts twice on a page.
* data: Make `family` properties return lists instead of generators.
* data: Properly order month names in blog archives.
* formatting: Fix Smartypants option for hoedown.
* formatting: Replace `python-hoedown` with `misaka`.
* internal: Don't profile the Inukshuk engine by default, duh.
* internal: Remove debug logging for the cache class.
* internal: Remove unused parameter.
* templating: Add Inukshuk template engine.

### 8.3 Project

* cm: Add Python 3.6 to Travis-CI.
* cm: Bump Inukshuk to `0.1.2`, regenerate `requirements.txt`.
* cm: Bump cache version ahead of v3 release.
* cm: Include Bootstrap dependencies in `package.json`.
* cm: Regenerate the CHANGELOG.
* cm: Separate `requirements` from what `setup.py` wants.
* cm: Update Inukshuk for Python 3.4 compatibility.
* cm: Update `garcon`'s documentation script to work with latest toolchain.
* cm: Upgrade Jinja2 to `2.10`, remove `dev-requirements.txt`.
* cm: Upgrade invoke, add hoedown to requirements.
* cm: Upgrade release script.
* docs: Style tweaks.
* docs: Update documentation on sources and pipelines.
* docs: Upgrade to Bootstrap 4 and Sass.
* tests: Add plugin tests.
* tests: Fix determinism bug in linker test.
* tests: Fix path comparison in a test on Windows.
* tests: LOL
* tests: Prevent conflicts in later `pytest` versions.

### 8.4 Miscellaneous

* formatters: Remove Hoedown formatter, split it off to a pluging.
* markdown: Use either the `hoedown` or `markdown` config section.
* sass: Make sure `load_paths` are relative to the website's root.

## 9. PieCrust 2.1.2 (2017-11-21)


### 9.0 Commands

* admin: Regenerate FoodTruck assets.
* bake: Big pass on bake performance.
* bake: Fix bugs introduced by bake optimizations, of course.
* bake: Fix crash when trying to report a deployment error.
* plugins: Support multiple customizable plugins directories.
* prepare: Fix a crash when preparing a new post.
* sources: Respect the "abort source use" setting when iterating on a source.

### 9.1 Core

* data: Optimize page data so cheapest accessors are tried first.
* pagination: Fix bad bug where all pages triggered pagination.

### 9.2 Bugfixes

* bug: Fix crash on Python 3.6.

### 9.3 Project

* cm: Fix crashes when page assets deployment fails.
* cm: Generate CHANGELOG from the current branch instead of always master. Fix encoding problems.
* cm: Make the release script commit changed FoodTruck assets if needed.
* cm: Only commit admin assets if they have changed.
* cm: Regenerate the CHANGELOG.
* cm: Regenerate the CHANGELOG.
* cm: Regenerate the CHANGELOG.
* cm: Upgrade Garcon tasks to the latest PyInvoke version.
* tests: Fix non-determinism in linker tests.

### 9.4 Miscellaneous

* fix: Compatibility for Python 3.4.
* showrecords: Sort records by name.

## 10. PieCrust 2.1.0 (2017-10-29)


### 10.0 Commands

* admin: Add a "rebake preview assets" button to the dashboard.
* admin: Add a Micropub endpoint.
* admin: Add icon to publish button.
* admin: Add proper link to touch icon.
* admin: Add touch icons.
* admin: Better micropub request handling.
* admin: Fix bug on the publish view.
* admin: Fix more URL prefix issues, improve publishing.
* admin: Fix old API calls and bugs when creating new pages.
* admin: Fix old API calls and bugs when editing pages.
* admin: Fix some UI spacing on the publishing page.
* admin: Fix the site preview by editing the WSGI environment.
* admin: Get the admin panel working again.
* admin: Improve support for Micropub.
* admin: Lots of fixes for running the admin panel in a WSGI server.
* admin: Make the admin panel work under a non-rooted URL.
* admin: Micropub improvements.
* admin: Move 404 debugging into a separate function.
* admin: Read an optional Flask-app configuration file.
* admin: Remove site switcher UI.
* admin: Show flashed messages on edit and publish pages.
* admin: Show more info from the publishing process.
* admin: The link to the panel's dashboard works when we are not at the root.
* admin: Use URL routes for static assets.
* admin: When there's no post title, make a title from the first few words.
* bake: Add ability to specify pipelines to exclude during the bake.
* bake: Add performance timers for pipeline jobs.
* bake: Correctly setup unbaked entries for taxonomy pages.
* bake: Don't create bake jobs for overriden pages.
* bake: Fix typo in one of the performance timers.
* bake: Keep track of which pages were aborted for using other pages.
* bake: Rename "pass" to "step" and make the page pipeline use different steps.
* bake: Support the `draft` setting.
* bake: Use the basic Python queue again.
* chef: Allow multiple config variants to be applied.
* chef: Optimize startup time a little bit.
* chef: Optimize startup time.
* plugins: Add support for "ad-hoc" local plugins.
* plugins: Fix a crash bug when the plugins directory doesn't exist.
* plugins: The command works on an empty site too.
* prepare: Fix old API calls.
* prepare: Make drafts by default.
* publish: Add more options for logging, better feedback when it fails.
* publish: Fix publishers API and add a simple "copy" publisher.
* publish: Fix shell publisher crash, log `stderr` too.
* serve: Add `--admin` option to run the administration panel.
* serve: Add mime type for mp4 video.
* serve: Admin dashboard improvements.
* serve: Disable Werkzeug's debugger PIN.
* serve: Don't start the admin panel SSE until the window is ready.
* serve: Fix asset processing loop.
* serve: Fix crash when displaying empty dictionaries in the debug info.
* serve: Fix error admin panel error message page.
* serve: Fix post editing when the post has assets.
* serve: Fix previewing articles from the administration panel.
* serve: Fix the notifications when publishing a site from the admin panel.
* serve: Optionally run the admin panel with the server.
* serve: Re-bake admin panel's static files.
* showrecord: Don't show empty records when filtering.
* showrecord: Don't show records that don't match the given filters.
* showrecord: Don't show the records if we just want to see a manifest.
* showrecord: Fix bug when filtering output paths.
* showrecord: Prevent a crash.
* sources: Add `findContentFromPath` API.
* sources: Change argument name in default source's `createContent`.
* sources: Changes in related contents management.
* sources: File-system sources accept all `open` arguments.
* sources: Give better exception messages when a class is missing a method.
* sources: Posts source accepts more arguments for creating a post.
* themes: Allow keeping local overrides when copying a theme locally.

### 10.1 Core

* config: Better generate route function names to prevent collisions.
* config: Properly pass the merge mode to the `merge_dicts` function.
* data: Add access to route metadata in the templating data.
* data: Delay loading page configuration and datetimes.
* data: Don't add route functions or data providers that happen to be null.
* data: Improve pagination filters code, add `defined` and `not_empty`.
* data: Make the `Assetor` more into a `dict` than a `list`.
* data: Optimize page data creation.
* debug: Raise Jinja template exceptions the same way in both render passes.
* formatting: Remove segment parts, you can use template tags instead.
* internal: Check that the `Assetor` has an asset URL format to work with.
* internal: Clean up baker code.
* internal: Fix caching issues with config variants.
* internal: Give better exception messages when splitting URIs.
* internal: Include the number of fixup callback in the cache key.
* internal: Make `createContent` use a dictionary-like object.
* internal: Make the page serializer thread daemon.
* internal: PEP8
* internal: PEP8
* internal: Remove unnecessary timer, add timer for lazy data building.
* internal: Remove unused file.
* internal: Sources can cache their pages in addition to their items.
* internal: The processing loop for the server is now using the baker.
* internal: Use pickle for caching things on disk.
* internal: Worker pool improvements
* pagination: Prevent a possible crash when paginating things without a current page.
* routing: Properly order routes by pass when matching them to the request.
* templating: Template engines can now load extensions directly from plugins.

### 10.3 Project

* cm: Regenerate the CHANGELOG.
* cm: Update Werkzeug.
* tests: Big push to get the tests to pass again.
* tests: First pass on making unit tests work again.

### 10.4 Miscellaneous

* assets: Fix bug in assetor.
* cache: Bump the cache version.
* clean: PEP8.
* clean: Remove unused code.
* core: Continue PieCrust3 refactor, simplify pages.
* core: Keep refactoring, this time to prepare for generator sources.
* core: Start of the big refactor for PieCrust 3.0.
* fix: Don't crash during some iterative builds.
* jinja: Remove Twig compatibility, add timer, improve code.
* jinja: Use the extensions performance timer.
* optimize: Don't load Jinja unless we need to.
* optimize: Only load some 3rd party packages when needed.
* page: Default to an empty title instead of 'Untitled Page'.
* pep8: Fix indenting.
* pep8: Fix indenting.
* refactor: Fix a few more pieces of code using the old APIs.
* refactor: Fix some issues with record/cache entry collisions, add counters.
* refactor: Fix some last instance of using the old API.
* refactor: Fixing some issues with baking assets.
* refactor: Get the page assets to work again in the server.
* refactor: Get the processing loop in the server functional again.
* refactor: Get the taxonomy support back to a functional state.
* refactor: Improve pagination and iterators to work with other sources.
* refactor: Make the blog archives functional again.
* refactor: Make the data providers and blog archives source functional.
* refactor: Make the linker work again.
* server: Fix crash when serving temp files like CSS maps.
* wsgi: Add admin panel to WSGI helpers.

## 11. PieCrust 2.0.0 (2017-02-19)


### 11.0 Commands

* admin: Add ability to upload page assets.
* admin: Add quick links in sidebar to create new posts/pages.
* admin: Bigger text for the site summary.
* admin: Don't have the static folder for the app collide with the blueprint's.
* admin: Fix crash when running `admin run` outside of a website.
* bake: Don’t swallow generic errors during baking
* bake: Show bake stats in descending order of time.
* showrecord: Add `show-manifest` argument.

### 11.1 Core

* config: Cleanup config loading code. Add support for a `local.yml` config.
* data: Allow page generators to have an associated data provider
* internal: Don't check for a page repository, there's always one.
* internal: Import things in the builtin plugin only when needed.
* internal: Keep things out of the `PieCrust` class, and other clean-ups.
* internal: Make `posts` sources cache their list of pages.
* internal: PEP8 fixup for admin panel code.
* rendering: Separate performance timers for renering segments and layouts.
* templating: Put the routing functions in the data, not the template engine.

### 11.2 Bugfixes

* bug: Fix crashes for commands run outside of a website.

### 11.3 Project

* cm: Add setup.cfg file for flake8.
* cm: Allow generating documentation from inside the virtualenv.
* cm: Fix MANIFEST file for packaging.
* cm: Fix `gulpfile` for FoodTruck.
* cm: Regenerate the CHANGELOG.
* docs: Add missing quote in example
* docs: Add space before link
* docs: Correct typos
* docs: Fix line-end / new-line issues
* docs: Invalid yaml in example
* docs: Repair some broken links
* tests: Fix for time comparisons.

### 11.4 Miscellaneous

* Allow PageSource to provide a custom assetor
* Allow an individual page to override pretty_urls in it config
* Allow page source to post-process page config at the end of page loading
* Assetor is now responsible for copying assets, to allow customization
* Don’t swallow generic errors during baking
* Fixed call to Assetor.copyAssets
* Land assets in the correct directory for pages with no pretty_urls override
* Refactored Assetor into Assetor and AssetorBase
* Removed pointless page argument from copyAssets
* Renamed buildPageAssetor to buildAssetor
* Use assetor provided by page source when paginating
* assets: Fix crash when a page doesn't have assets.

## 12. PieCrust 2.0.0rc2 (2016-09-07)


### 12.0 Commands

* admin: Correctly flush loggers before exiting.
* admin: Don't crash when the site isn't in a source control repository.
* admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
* admin: Fix crash when running the `admin` command.
* admin: Fix various crashes caused by incorrect Blueprint setup.
* admin: Fixes for the Git support.
* admin: Make the whole FoodTruck site into a blueprint.
* bake: Add the list of deleted files to the bake/processing records.
* bake: Fix how slugified taxonomy terms are handled.
* bake: Print slightly better debug information.
* chef: Don't crash when running `chef` outside of a website.
* chef: Make all the commands descriptions fit in one line.
* plugins: Abort the command if there's no site.
* plugins: Don't crash when running the `chef plugins` command outside a site.
* prepare: Add ablity to run an editor program after creating the page file.
* prepare: Use the same convention as other commands with sub-commands.
* publish: Add SFTP publisher.
* publish: Add support for `--preview` for the SFTP publisher.
* publish: Fix crash.
* publish: Fix stupid typo.
* publish: Make publisher more powerful and better exposed on the command line.
* showrecord: Fix some crashes and incorrect information.
* themes: No parameters shoudl make the help text show up.

### 12.1 Core

* config: Fix how we parse the root URL to allow for absolute and user URLs.
* data: Fix debug information for the blog data provider.
* internal: Add missing timer scope.
* internal: Add missing timer scope.
* internal: Don't strip the trailing slash when we get the root URL exactly.
* internal: Move admin panel code into the piecrust package.
* routing: Add some backwards compatibility support for parameter types.
* routing: Don't mistakenly raise errors about incorrect variadic parameters.
* routing: Simplify how route functions are declared and handled.
* routing: Simplify how routes are defined.

### 12.2 Bugfixes

* bug: Fix possible crash with overlapping pages.

### 12.3 Project

* cm: Add a "Bugfixes" section to the CHANGELOG and order things alphabetically.
* cm: Declare PieCrust as a Python 3 only package.
* cm: Regenerate the CHANGELOG.
* docs: Add documentation about the SFTP publisher.
* docs: Fix outdated routing in the configuration file.
* docs: Tutorial chapter about adding pages.
* docs: Update documentation on routing.
* tests: Add more `showconfig` tests.
* tests: Add tests for publishers.
* tests: Fix crash when reporting 404 errors during server tests.
* tests: Fix some CLI tests.
* tests: Make it possible to run FoodTruck tests.
* tests: Try and finally fix the time-based tests.

## 13. PieCrust 2.0.0rc1 (2016-06-09)


### 13.0 Commands

* admin: Add support for Git source-control.
* admin: Add support for `.well-known` folder.
* admin: Fix OS-specific new line problems when editing pages.
* admin: Fix crash when previewing a website.
* admin: Fix crash when running FoodTruck as a standalone web app.
* admin: Run the asset pipeline before showing the admin panel.
* admin: Show a more classic blog post listing in FoodTruck.
* admin: run an asset processing loop in the background.
* bake: Add blog archives generator.
* bake: Add stat about aborted jobs
* bake: Add the timestamp of the page to each record entry.
* bake: Change `show-timers` to `show-stats`, add stats.
* bake: Don't clean the `baker` cache on a force bake.
* bake: Fix a crash when a rendering error occurs.
* bake: Fix some bugs with taxonomy combinations.
* bake: Fix some crashes with new blog archive/taxonomy for incremental bakes.
* bake: Re-enable faster serialization between processes.
* bake: Replace hard-coded taxonomy support with "generator" system.
* bake: Show more stats.
* bake: Some more optimizations.
* bake: Use standard pickle and queue for now to fix some small issues.
* bake: Use threads to read/write from/to the main arbitrator process.
* chef: Fix `--debug-only` argument.
* init: Use a better config template when creating websites.
* purge: Delete the whole cache directory, not just the current sub-cache.
* routes: Show the route template function.
* serve: Fix some crashes introduced by recent refactor.
* serve: Fix some problems with trailing slashes.
* showrecord: Don't print the record when you just want the stats.
* themes: Add support for a `--theme` argument to `chef`.
* themes: Add support for loading from a library of themes.
* themes: Expand `~` paths, fix error message.
* themes: Simplify `themes` command.

### 13.1 Core

* data: Make the blog provider give usable data to the year archive routes.
* data: Support both objects and dictionaries in `MergedMapping`.
* debug: Pass the exceptions untouched when debugging.
* debug: Show more stuff pertaining to data providers in the debug window.
* formatting: Add a `hoedown` formatter.
* formatting: Don't import `hoedown` until we need it.
* internal: Bump cache version.
* internal: Don't run regexes for the 99% case of pages with no segments.
* internal: Fix a bug with registering taxonomy terms that are not strings.
* internal: Fix compatibility with older Python 3.x.
* internal: Fix incorrect check for cache times.
* internal: Fix some bugs with the `fastpickle` module.
* internal: Get rid of the whole "sub cache" business.
* internal: Improve how theme configuration is validated and merged.
* internal: More work/fixes on how default/theme/user configs are merged.
* internal: Move some basic FoodTruck SCM code to the base.
* internal: Prevent crash because of missing logger.
* internal: Refactor config loading some more.
* internal: Remove exception logging that shouldn't happen. Better message.
* internal: Remove threading stuff we don't need anymore.
* internal: Remove unused code.
* internal: Remove unused import.
* internal: Remove unused piece of code.
* internal: Update the cache version to force re-gen the configuration settings.
* render: Change how we store render passes info.
* rendering: Use `fastpickle` serialization before JSON.
* routing: Cleanup URL routing and improve page matching.
* routing: Correctly call the underlying route template function from a merged one.
* routing: Fix problems with route functions.
* templating: Make blog archives generator expose more templating data.
* templating: Make the 'categories' taxonomy use a 'pccaturl' function again.
* templating: Use HTTPS URLs for a couple things.

### 13.2 Bugfixes

* bug: Also look for format changes when determining if a page needs parsing.

### 13.3 Project

* cm: Add AppVeyor support.
* cm: Add generation of Mardown changelog suitable for the online documentation.
* cm: Add generation of online changelog to the release task.
* cm: Also test Python 3.5 with Travis.
* cm: Don't always generation the version when running `setuptools`.
* cm: Don't raise an exception when no version file exists.
* cm: Fix `setup.py` script.
* cm: Fix a packaging bug, update package metadata.
* cm: Ignore `py.test` cache.
* cm: Ignore bdist output directory.
* cm: Improve documentation generation script.
* cm: It's fun to send typos to Travis-CI.
* cm: Make Travis-CI test packaging.
* cm: Regenerate the CHANGELOG.
* docs: Add changelog page.
* docs: Add information on more global `chef` options.
* docs: Use HTTPS version of Google Fonts.
* docs: Use new config variants format.
* docs: Very basic theme documentation.
* docs: Write about generators and data providers, update all related topics.
* tests: Add ability to run tests with a theme site.
* tests: Add another app config test.
* tests: Add more tests for merged mappings.
* tests: Add some tests for blog archives and multi-blog features.
* tests: Fix logic for making time-based tests not fail randomly.
* tests: Improve failure reporting.
* tests: the `PageBaker` now needs to be shutdown.

### 13.4 Miscellaneous

* Fix 404 broken link
* jinja: Add `md5` filter.

## 14. PieCrust 2.0.0b5 (2016-02-16)


### 14.0 Commands

* admin: Don't require `bcrypt` for running FoodTruck with `chef`.
* admin: Remove settings view.

### 14.1 Core

* internal: Remove SyntaxWarning from MacOS wrappers.

### 14.3 Project

* cm: Exclude the correct directories from vim-gutentags.
* cm: Fix CHANGELOG newlines on Windows.
* cm: Fix categorization of CHANGELOG entries for new commands.
* cm: Fixes and tweaks to the documentation generation task.
* cm: Get a new version of pytest-cov to avoid a random multiprocessing bug.
* cm: Ignore more things for pytest.
* cm: Move all scripts into a `garcon` package with `invoke` support.
* cm: Regenerate the CHANGELOG.
* cm: Regenerate the CHANGELOG.
* cm: Tweaks to the release script.
* cm: Update node module versions.
* cm: Update npm modules and bower packages before making a release.
* cm: Update the node modules before building the documentation.

## 15. PieCrust 2.0.0b4 (2016-02-09)


### 15.0 Commands

* admin: Ability to configure SCM stuff per site.
* admin: Add "FoodTruck" admin panel from the side experiment project.
* admin: Add summary of page in source listing.
* admin: Better UI for publishing websites.
* admin: Better error reporting, general clean-up.
* admin: Better production config for FoodTruck, provide proper first site.
* admin: Change the default admin server port to 8090, add `--port` option.
* admin: Configuration changes.
* admin: Dashboard UI cleaning, re-use utility function for page summaries.
* admin: Fix "Publish started" message showing up multiple times.
* admin: Fix constructor for Mercurial SCM.
* admin: Fix crashes when creating a new page.
* admin: Fix creating pages.
* admin: Fix responsive layout.
* admin: Improve publish logs showing as alerts in the admin panel.
* admin: Make sure we have a valid default site to start with.
* admin: Make the publish UI handle new kinds of target configurations.
* admin: Make the sidebar togglable for smaller screens.
* admin: New `admin` command to manage FoodTruck-related things.
* admin: Prompt the user for a commit message when committing a page.
* admin: Set the `DEBUG` flag before the app runs so we can read it during setup.
* admin: Show the install page if no secret key is available.
* admin: Use `HGPLAIN` for the Mercurial VCS provider.
* admin: Use the app directory, not the cwd, in case of `--root`.
* bake: Add a flag to know which record entries got collapsed from last run.
* bake: Add new performance timers.
* bake: Add option to bake assets for FoodTruck. This is likely temporary.
* bake: Add support for a "known" page setting that excludes it from the bake.
* bake: Don't re-setup logging for workers unless we're sure we need it.
* bake: Set the flags, don't combine.
* chef: Add `--debug-only` option to only show debug logging for a given logger.
* chef: Add `--pid-file` option.
* chef: Fix the `--config-set` option.
* publish: Add option to change the source for the `rsync` publisher.
* publish: Add publish command.
* publish: Add the `rsync` publisher.
* publish: Change the `shell` config setting name for the command to run.
* publish: Make the `shell` log update faster by flushing the pipe.
* publish: Polish/refactor the publishing workflows.
* routes: Add better support for taxonomy slugification.
* serve: Don't crash when looking at the debug info in a stand-alone window.
* serve: Extract some of the server's functionality into WSGI middlewares.
* serve: Fix corner cases where the pipeline doesn't run correctly.
* serve: Fix error reporting when the background pipeline fails.
* serve: Fix timing information in the debug window.
* serve: Improve debug information in the preview server.
* serve: Improve reloading and shutdown of the preview server.
* serve: Make it possible to preview pages with a custom root URL.
* serve: Refactor the server to make pieces usable by the debugging middleware.
* serve: Rewrite of the Server-Sent Event code for build notifications.
* serve: Werkzeug docs say you need to pass a flag with `wrap_file`.
* showconfig: Don't crash when the whole config should be shown.
* sources: Add code to support "interactive" metadata acquisition.
* sources: Add method to get a page factory from a path.

### 15.1 Core

* cli: Add `--no-color` option.
* cli: More proper argument parsing for the main/root arguments.
* data: Fix a crash bug when no parent page is set on an iterator.
* debug: Don't show parentheses on redirected properties.
* debug: Fix a crash when rendering debug info for some pages.
* debug: Fix debug window CSS.
* debug: Fix how the linker shows children/siblings/etc. in the debug window.
* internal: Refactor the app configuration class.
* internal: Rename `raw_content` to `segments` since it's what it is.
* internal: Some fixes to the new app configuration.

### 15.2 Bugfixes

* bug: Correctly handle root URLs with special characters.
* bug: Fix a crash when some errors occur during page rendering.

### 15.3 Project

* cm: Add requirements for FoodTruck.
* cm: Add script to generate documentation.
* cm: Add some pretty little icons in the README.
* cm: CHANGELOG generator can handle future versions.
* cm: Fix Gulp config.
* cm: Ignore more stuff for CtrlP or Gutentags.
* cm: Merge the 2 foodtruck folders, cleanup.
* cm: Put Bower/Gulp/etc. stuff all at the root.
* docs: Add documentation about FoodTruck.
* docs: Add documentation about the `publish` command.
* docs: Add raw files for FoodTruck screenshots.
* docs: Add reference entry about the `site/slugify_mode` setting.
* docs: Fix broken link.
* docs: Make FoodTruck screenshots the proper size.
* docs: Remove LessCSS dependencies in the tutorial, fix typos.
* tests: Add unicode tests for case-sensitive file-systems.
* tests: Fix (hopefully) time-sensitive tests.
* tests: Fix another broken test.
* tests: Fix broken test.
* tests: Fix broken unit test.
* tests: Print more information when a bake test fails to find an output file.

## 16. PieCrust 2.0.0b3 (2015-08-01)


### 16.0 Commands

* import: Add some debug logging.
* import: Correctly convert unicode characters in site configuration.
* import: Fix the PieCrust 1 importer.

### 16.1 Core

* internal: Fix a severe bug with the file-system wrappers on OSX.
* templating: Make more date functions accept 'now' as an input.

### 16.3 Project

* cm: Add a Gutentags config file for `ctags` generation.
* cm: Changelog generator script.
* cm: Ignore Rope cache.
* cm: Update changelog.
* tests: Check accented characters work in configurations.

## 17. PieCrust 2.0.0b2 (2015-07-29)


### 17.0 Commands

* prepare: More help about scaffolding.

### 17.2 Bugfixes

* bug: Fix crash running `chef help scaffolding` outside of a website.

## 18. PieCrust 2.0.0b1 (2015-07-29)


### 18.0 Commands

* bake: Add a processor to generate a Pygments style CSS file.
* bake: Fix logging configuration for multi-processing on Windows.
* bake: Fix random crash with the Sass processor.
* bake: Set the worker ID in the configuration. It's useful.
* prepare: Fix the RSS template.
* serve: Don't show the same error message twice.
* serve: Fix a crash when matching taxonomy URLs with incorrect URLs.
* serve: Improve Jinja rendering error reporting.
* serve: Improve error reporting when pages are not found.
* serve: Say what page a rendering error happened in.
* serve: Try to serve taxonomy pages after all normal pages have failed.
* themes: Add a `link` sub-command to install a theme via a symbolic link.
* themes: Add config paths to the cache key.
* themes: Don't fixup template directories, it's actually better as-is.
* themes: Fix crash when invoking command with no sub-command.
* themes: Improve CLI, add `deactivate` command.
* themes: Proper template path fixup for the theme configuration.

### 18.1 Core

* config: Make sure `site/auto_formats` has at least `html`.
* formatting: Add support for Markdown extension configs.
* internal: Correctly split sub URIs. Add unit tests.
* internal: Fix some edge-cases for splitting sub-URIs.
* internal: Fix timing info.
* internal: Improve handling of taxonomy term slugification.
* internal: Return `None` instead of raising an exception when finding pages.
* templating: Add `now` global to Jinja, improve date error message.
* templating: Make Jinja support arbitrary extension, show warning for old stuff.
* templating: `highlight_css` can be passed the name of a Pygments style.

### 18.2 Bugfixes

* bug: Fix a crash with the `ordered` page source when sorting pages.
* bug: Fix file-system wrappers for non-Mac systems.
* bug: Forgot to add a new file like a big n00b.
* bug: Of course I broke something. Some exceptions need to pass through Jinja.

### 18.3 Project

* cm: Add `unidecode` to requirements.
* cm: Error in `.hgignore`. Weird.
* cm: Fix benchmark website generation on Windows.
* cm: Ignore `.egg-info` stuff.
* cm: Re-fix Mac file-system wrappers.
* docs: Add some API documentation.
* docs: Add some syntax highlighting to tutorial pages.
* docs: Always use Pygments styles. Use the new CSS generation processor.
* docs: Configure fenced code blocks in Markdown with Pygments highlighting.
* docs: Make code prettier :)
* docs: Make the "deploying" page consistent with "publishing".
* docs: More generic information about baking and publishing.
* docs: No need to specify the layout here.
* docs: Start a proper "code/API" section.
* docs: Use fenced code block syntax.
* tests: Fix `find` tests on Windows.
* tests: Fix processing test after adding `PygmentsStyleProcessor`.
* tests: Fix processing tests on Windows.
* tests: Fix the Mustache tests on Windows.
* tests: Help the Yaml loader figure out the encoding on Windows.
* tests: Normalize test paths using the correct method.

### 18.4 Miscellaneous

* bake/serve: Improve support for unicode, add slugification options.
* cosmetic: Remove debug print here too.
* cosmetic: Remove debug printing.
* jinja: Support `.j2` file extensions.
* less: Fix issues with the map file on Windows.
* sass: Overwrite the old map file with the new one always.

## 19. PieCrust 2.0.0a13 (2015-07-14)


### 19.0 Commands

* bake: Fix a bug with copying assets when `pretty_urls` are disabled.

### 19.2 Bugfixes

* bug: Correctly setup the environment/app for bake workers.
* bug: Fix copying of page assets during the bake.

## 20. PieCrust 2.0.0a12 (2015-07-14)


### 20.0 Commands

* bake: Abort "render first" jobs if we start using other pages.
* bake: Add CLI argument to specify job batch size.
* bake: Commonize worker pool code between html and asset baking.
* bake: Correctly use the `num_worers` setting.
* bake: Don't pass the previous record entries to the workers.
* bake: Enable multiprocess baking.
* bake: Improve bake record information.
* bake: Improve performance timers reports.
* bake: Make pipeline processing multi-process.
* bake: Optimize the bake by not using custom classes for passing info.
* bake: Pass the config variants and values from the CLI to the baker.
* bake: Pass the sub-cache directory to the bake workers.
* bake: Tweaks to the `sitemap` processor. Add tests.
* bake: Use batched jobs in the worker pool.
* serve: Fix bug with creating routing metadata from the URL.
* serve: Fix crash on start.
* serve: Use Werkzeug's HTTP exceptions correctly.

### 20.1 Core

* debug: Add support for more attributes for the debug info.
* debug: Better debug info output for iterators, providers, and linkers.
* debug: Fix serving of resources now that the module moved to a sub-folder.
* debug: Log error when an exception gets raised during debug info building.
* internal: Add a `fastpickle` module to help with multiprocess serialization.
* internal: Add support for fake pickling of date/time structures.
* internal: Add utility function for incrementing performance timers.
* internal: Allow re-registering performance timers.
* internal: Create full route metadata in one place.
* internal: Fix caches being orphaned from their directory.
* internal: Floats are also allowed in configurations, duh.
* internal: Handle data serialization more under the hood.
* internal: Just use the plain old standard function.
* internal: Move `MemCache` to the `cache` module, remove threading locks.
* internal: Optimize page data building.
* internal: Optimize page segments rendering.
* internal: Register performance timers for plugin components.
* internal: Remove unnecessary code.
* internal: Remove unnecessary import.
* linker: Add ability to return the parent and ancestors of a page.
* performance: Add profiling to the asset pipeline workers.
* performance: Compute default layout extensions only once.
* performance: Only use Jinja2 for rendering text if necessary.
* performance: Quick and dirty profiling support for bake workers.
* performance: Refactor how data is managed to reduce copying.
* performance: Use the fast YAML loader if available.
* render: Lazily import Textile package.
* rendering: Truly skip formatters that are not enabled.
* reporting: Better error messages for incorrect property access on data.
* reporting: Print errors that occured during pipeline processing.
* templating: Add modification time of the page to the template data.
* templating: Fix Pystache template engine.
* templating: Let Jinja2 cache the parsed template for page contents.
* templating: Workaround for a bug with Pystache.

### 20.2 Bugfixes

* bug: Fix CLI crash caused by configuration variants.
* bug: Fix a crash when errors occur while processing an asset.
* bug: Fix infinite loop in Jinja2 rendering.
* bug: Fix routing bug introduced by 21e26ed867b6.

### 20.3 Project

* cm: Add script to generate benchmark websites.
* cm: Fix wrong directory for utilities.
* cm: Move build directory to util to avoid conflicts with pip.
* cm: Use Travis CI's new infrastructure.
* docs: Add the `--pre` flag to `pip install` while PieCrust is in beta.
* tests: Add pipeline processing tests.
* tests: Fix Jinja2 test.
* tests: Fix crash in processing tests.

### 20.4 Miscellaneous

* Fixed 'bootom' to 'bottom'
* markdown: Cache the formatter once.

## 21. PieCrust 2.0.0a11 (2015-05-18)


### 21.0 Commands

* bake: Return all errors from a bake record entry when asked for it.
* serve: Fix bug where `?!debug` doesn't get appending correctly.
* serve: Remove development assert.

### 21.1 Core

* data: Fix regression bug with accessing page metadata that doesn't exist.
* linker: Fix error when trying to list non-existing children.
* linker: Fix linker returning the wrong value for `is_dir` in some situations.
* pagination: Fix regression bug with previous/next posts.

### 21.3 Project

* tests: Add support for testing the Chef server.
* tests: Also mock `open` in Jinja to be able to use templates in bake tests.
* tests: Fail bake tests with a proper error message when bake fails.
* tests: More accurate marker position for diff'ing strings.
* tests: Move all bakes/cli/servings tests files to have a YAML extension.

### 21.4 Miscellaneous

* jinja: Look for `html` extension first instead of last.

## 22. PieCrust 2.0.0a10 (2015-05-15)


### 22.3 Project

* setup: Add `requirements.txt` to `MANIFEST.in` so it can be used by the setup.

## 23. PieCrust 2.0.0a9 (2015-05-11)


### 23.0 Commands

* serve: Add a WSGI utility module for easily getting a default app.
* serve: Add a generic WSGI app factory.
* serve: Add ability to suppress the debug info window programmatically.
* serve: Compatibility with `mod_wsgi`.
* serve: Split the server code in a couple modules inside a `serving` package.

### 23.1 Core

* data: Fix problems with using non-existing metadata on a linked page.
* internal: Make it possible to pass `argv` to the main Chef function.
* routing: Fix bugs with matching URLs with correct route but missing metadata.

### 23.3 Project

* docs: Add documentation for deploying as a dynamic CMS.
* docs: Add lame bit of documentation on publishing your website.
* setup: Keep the requirements in sync between `setuptools` and `pip`.
* tests: Add a Chef test for the `find` command.
* tests: Add support for "Chef tests", which are direct CLI tests.
* tests: Fix serving unit-tests.

## 24. PieCrust 2.0.0a8 (2015-05-03)


### 24.0 Commands

* bake: Fix crash when handling bake errors.
* serve: Giant refactor to change how we handle data when serving pages.
* serve: Refactoring and fixes to be able to serve taxonomy pages.
* sources: Default source lists pages in order.
* sources: Fix how the `autoconfig` source iterates over its structure.
* theme: Fix link to PieCrust documentation.

### 24.1 Core

* caching: Use separate caches for config variants and other contexts.
* config: Add method to deep-copy a config and validate its contents.
* internal: Return the first route for a source if no metadata match is needed.
* linker: Don't put linker stuff in the config.

### 24.3 Project

* tests: Changes to output report and hack for comparing outputs.

### 24.4 Miscellaneous

* Update `requirements.txt`.
* Update development `requirements.txt`, add code coverage tools.

## 25. PieCrust 2.0.0a7 (2015-04-20)


### 25.0 Commands

* bake: Improve render context and bake record, fix incremental bake bugs.
* bake: Several bug taxonomy-related fixes for incorrect incremental bakes.
* bake: Use a rotating bake record.
* chef: Add a `--config-set` option to set ad-hoc site configuration settings.
* chef: Fix pre-parsing.
* find: Don't change the pattern when there's none.
* import: Use the proper baker setting in the Jekyll importer.
* serve: Don't access the current render pass info after rendering is done.
* serve: Fix crash on URI parsing.
* showrecord: Add ability to filter on the output path.

### 25.1 Core

* config: Add `default_page_layout` and `default_post_layout` settings.
* data: Also expose XML date formatting as `xmldate` in Jinja.
* internal: Fix stupid routing bug.
* internal: Remove unused code.
* internal: Template functions could potentially be called outside of a render.
* internal: Try handling URLs in a consistent way.
* internal: Use hashes for cache paths.
* pagination: Make pagination use routes to generate proper URLs.

### 25.3 Project

* build: Put dev-only lib requirements into a `dev-requirements.txt` file.
* docs: Add "active page" style for the navigation menu.
* docs: Add documentation for importing content from other engines.
* docs: Add new site configuration settings to the reference documentation.
* tests: Add `os.rename` to the mocked functions.
* tests: Add more utility functions to the mock file-system.
* tests: Fix test.
* tests: Improve bake tests output, add support for partial output checks.
* tests: Raise an exception instead of crashing rudely.
* tests: Remove debug output.
* tests: Support for YAML-based baking tests. Convert old code-based ones.

### 25.4 Miscellaneous

* cleancss: Fix stupid bug.

## 26. PieCrust 2.0.0a6 (2015-03-30)


### 26.0 Commands

* bake: Better error handling for site baking.
* bake: Better error handling for the processing pipeline.
* bake: Change arguments to selectively bake to make them symmetrical.
* bake: Changes in how assets directories are configured.
* bake: Don't include the site root when building output paths.
* bake: Don't store internal config values in the bake record.
* bake: Fix processing record bugs and error logging for external processes.
* bake: Remove `--portable` option until it's (maybe) implemented.
* import: Add an XML-based Wordpress importer.
* import: Make the Wordpress importer extendable, rename it to `wordpressxml`.
* import: Put importer metadata on the class, and allow return values.
* import: Show help if no sub-command was specified.
* import: Upgrade more settings for the PieCrust 1 importer.
* import: Wordpress importer puts drafts in a `draft` folder. Ignore other statuses.
* plugins: Change how plugins are loaded. Add a `plugins` command.
* plugins: First pass for a working plugin loader functionality.
* plugins: Fix crash for sites that don't specify a `site/plugins` setting.
* plugins: Remove unused API endpoints.
* prepare: Add user-defined scaffolding templates.
* serve: Add server sent events for showing pipeline errors in the debug window.
* serve: Correctly pass on the HTTP status code when an error occurs.
* serve: Correctly show timing info even when not in debug mode.
* serve: Don't crash when a post URL doesn't match our expectations.
* serve: Don't expose the debug info right away when running with `--debug`.
* serve: Don't have 2 processing loops running when using `--use-reloader`.
* serve: Fix a bug where empty route metadata is not the same as invalid route.
* serve: Fix exiting the server with `CTRL+C` when the SSE response is running.
* serve: Keep the `?!debug` when generating URLs if it is enabled.
* serve: Make the server find assets generated by external tools.
* serve: Print nested exception messages in the dev server.
* serve: Run the asset pipeline asynchronously.
* serve: Use Etags and 304 responses for assets.
* showrecord: Also show the pipeline record.
* showrecord: Show relative paths.
* showrecord: Show the overall status (success/failed) of the bake.
* sources: Fix a bug where the `posts` source wasn't correctly parsing URLs.
* sources: Generate proper slugs in the `autoconfig` and `ordered` sources.
* sources: Make sure page sources have some basic config info they need.
* sources: Pass any current mode to `_populateMetadata` when finding pages.
* sources: Refactor `autoconfig` source, add `OrderedPageSource`.
* sources: The ordered source returns names without prefixes in `listPath`.
* sources: Use `posts_*` and `items_*` settings more appropriately.
* theme: Fix the default theme's templates after changes in Jinja's wrapper.
* theme: Updated "quickstart" text shown for new websites.
* themes: Add the `chef themes` command

### 26.1 Core

* config: Assign correct data endpoint for blogs to be v1-compatible.
* config: Make YAML consider `omap` structures as normal maps.
* config: Make sure `site/plugins` is transformed into a list.
* data: Add a top level wrapper for `Linker`.
* data: Add ability for `IPaginationSource`s to specify how to get settings.
* data: Better error message for old date formats, add `emaildate` filter.
* data: Correctly build pagination filters when we know items are pages.
* data: Don't nest filters in the paginator -- nest clauses instead.
* data: Fix incorrect next/previous page URLs in pagination data.
* data: Fix typos and stupid errors.
* data: Improve the Linker and RecursiveLinker features. Add tests.
* data: Make the `Linekr` use the new `getSettingAccessor` API.
* data: Only expose the `family` linker.
* data: Temporary hack for asset URLs.
* data: `Linker` refactor.
* internal: A bit of input validation for source APIs.
* internal: Add ability to get a default value if a config value doesn't exist.
* internal: Add support for "wildcard" loader in `LazyPageConfigData`.
* internal: Add utility function to get a page from a source.
* internal: Be more forgiving about building `Taxonomy` objects. Add `setting_name`.
* internal: Bump the processing record version.
* internal: Code reorganization to put less stuff in `sources.base`.
* internal: Fix bug with the default source when listing `/` path.
* internal: Make the simple page source use `slug` everywhere.
* internal: Re-use the cached resource directory.
* internal: Remove mentions of plugins directories and sources.
* internal: Remove the (unused) `new_only` flag for pipeline processing.
* internal: Removing some dependency of filters and iterators on pages.
* pagination: Add support for `site/default_pagination_source`.
* render: Add support for a Mustache template engine.
* render: Don't always use a `.html` extension for layouts.
* render: When a template engine can't be found, show the correct name in the error.
* routing: Better generate URLs according to the site configuration.

### 26.3 Project

* build: Add `pystache` to `requirements.txt`.
* docs: A whole bunch of drafts for content model and reference pages.
* docs: Add a page explaining how PieCrust works at a high level.
* docs: Add documentation on making a plugin.
* docs: Add documentation on the asset pipeline.
* docs: Add embryo of a documentation website.
* docs: Add information about the asset pipeline.
* docs: Add some general information on `chef`.
* docs: Add the ability to use Pygments highlighting.
* docs: Add website configuration page.
* docs: Change docs' templates after changes in Jinja's wrapper.
* docs: Documentation for iterators and filtering.
* docs: Documentation on website structure.
* docs: Fix URLs to the docs source.
* docs: Fix link, add another link.
* docs: Fix missing link.
* docs: Last part of the tutorial.
* docs: More on creating websites.
* docs: More tutorial text.
* docs: Pagination and assets' documentation.
* docs: Properly escape examples with Jinja markup.
* docs: Quick support info page.
* docs: Still adding more pages.
* docs: Still more documentation.
* docs: Tutorial part 1.
* docs: Tutorial part 2.
* docs: Tweak CSS for boxed text.
* docs: Website configuration reference.
* tests: Add a blog data provider test.
* tests: Add help functions to get and render a simple page.
* tests: Add tests for Jinja template engine.
* tests: Add utility function to create multiple mock pages in one go.
* tests: Bad me, the tests were broken. Now they're fixed.
* tests: Fix linker tests.
* tests: Fix tests for base sources.
* tests: Fixes for running on Windows.
* tests: Patch `os.path.exists` and improve patching for `open`.
* tests: Remove debug output.

### 26.4 Miscellaneous

* Add bower configuration file.
* Merge code changes.
* Merge docs.
* Temporary root URL for publishing.
* Use the site root for docs assets.
* bake/serve: Fix how taxonomy index pages are setup and rendered.
* bake/serve: Make previewed and baked URLs consistent.
* builtin: Remove `plugins` command, it's not ready yet.
* cleancss: Add option to specify an output extension, like `.min.css`.
* cosmetic: Fix PEP8 spacing.
* cosmetic: Fix some PEP8 issues.
* cosmetic: Fix some PEP8 issues.
* cosmetic: PEP8 compliance.
* dataprovider: Use the setting name for a taxonomy to match page config values.
* jinja: Add a global function to render Pygments' CSS styles.
* jinja: Fix Twig compatibility for block trimming.
* jinja: Provide a more "standard" Jinja configuration by default.
* less: Generate a proper, available URL for the LESS CSS map file.
* logging: If an error doesn't have a message, print its type.
* markdown: Let the user specify extensions in one line.
* oops: Remove debug print.
* processing: Add Compass and Sass processors.
* processing: Add `concat`, `uglifyjs` and `cleancss` processors.
* processing: Add ability to specify processors per mount.
* processing: Add more information to the pipeline record.
* processing: Don't fail if an asset we want to remove has already been removed.
* processing: More powerful syntax to specify pipeline processors.
* processing: Use the correct full path for mounts.
* sitemap: Fix broken API call.
* sitemap: Fixed typo bug.

## 27. PieCrust 2.0.0a5 (2015-01-03)


### 27.0 Commands

* bake: Don't crash stupidly when there was no previous version.
* chef: Work around a bug in MacOSX where the default locale doesn't work.
* find: Fix the `find` command, add more options.
* paths: properly format lists of paths.
* prepare: Show a more friendly user message when no arguments are given.
* routes: Actually match metadata when finding routes, fix problems with paths.
* routes: Show regex patterns for routes.
* routes: When matching URIs, return metadata directly instead of the match object.
* serve: Add option to use the debugger without `--debug`.
* serve: Always force render the page being previewed.
* sources: Add `chef sources` command to list page sources.
* sources: Add an `IListableSource` interface for sources that can be listed.
* sources: Make the `SimplePageSource` more extensible, fix bugs in `prose` source.

### 27.1 Core

* linker: Actually implement the `Linker` class, and use it in the page data.

### 27.3 Project

* build: Add Travis-CI config file.
* setup: Make version generation compatible with PEP440.
* tests: Add unit tests for routing classes.
* tests: Fix serving test.

### 27.4 Miscellaneous

* Ability to output debug logging to `stdout` when running unit-tests.
* Add Textile formatter.
* Add `--log-debug` option.
* Add `autoconfig` page source.
* Add `compressinja` to install/env requirements.
* Add `ctrlpignore` file.
* Add `help` function, cleanup argument handling.
* Add `import` command, Jekyll importer.
* Add `sitemap` processor.
* Add a `BakeScheduler` to handle build dependencies. Add unit-tests.
* Add ability for the processing pipeline to only process new assets.
* Add packaging and related files.
* Add support for KeyboardInterrupt in bake process.
* Add support for Markdown extensions.
* Add the `paginate` filter to Jinja, activate `auto_reload`.
* Added requirements file for `pip`.
* Added unit tests (using `py.test`) for `Configuration`.
* Allow adding to the default content model instead of replacing it.
* Always use version generated by `setup.py`. Better version generation.
* Apparently Jinja doesn't understand `None` the way I thought.
* Better `prepare` command, with templates and help topics.
* Better combine user sources/routes with the default ones.
* Better date creation for blog post scaffolding.
* Better date/time handling for pages:
* Better error management and removal support in baking/processing.
* Better error reporting and cache validation.
* Better handling of Jinja configuration.
* Better support for times in YAML interop.
* Cache rendered segments to disk.
* Changes to `help` command and extendable commands:
* Changes to the asset processing pipeline:
* Check we don't give null values to the processing pipeline.
* Copy page assets to bake output, use correct slashes when serving assets.
* Correctly match skip patterns.
* Correctly set the `debug` flag on the app.
* Correctly set the current page on a pagination slicer.
* Cosmetic fix.
* Define page slugs properly, avoid recursions with debug data.
* Display page tags with default theme.
* Don't colour debug output.
* Don't complain about missing `pages` or `posts` directories by default.
* Don't fail if trying to clean up a file that has already been deleted.
* Don't look at theme sources in `chef prepare`.
* Don't look for tests inside the `build` directory.
* Don't recursively clean the cache.
* Don't stupidly crash in the RequireJS processor.
* Don't try to get the name of a source that doesn't have one.
* Don't use Werkzeug's reloader in non-debug mode unless we ask for it.
* Don't use file-system caching for rendered segments yet.
* Error out if `date` filter is used with PHP date formats.
* Exit with the proper code.
* First draft of the `prose` page source.
* Fix `setuptools` install.
* Fix a bug with page references in cases of failure. Add unit tests.
* Fix a bug with the posts source incorrectly escaping regex characters.
* Fix a crash when checking for timestamps on template files.
* Fix cache validation issue with rendered segments, limit disk access.
* Fix error reporting and counting of lines.
* Fix for pages listing pages from other sources.
* Fix generation of system messages.
* Fix how the `Paginator` gets the numer of items per page.
* Fix how we pass the out directory to the baking modules.
* Fix outdate information and bug in default theme's main page.
* Fix post sources datetimes by adding missing metadata when in "find" mode.
* Fix problems with asset URLs.
* Fix running `chef` outside of a website. Slightly better error reporting.
* Fix search for root folder. Must have been drunk when I wrote this originally.
* Fix some bugs with iterators, add some unit tests.
* Fix some indentation and line lengths.
* Fix stupid bug in default source, add some unit tests.
* Fix stupid bug.
* Fix stupid debug logging bug.
* Fix unit tests.
* Fixed a bug with the `shallow` source. Add unit tests.
* Fixed outdate information in error messages' footer.
* Fixes for Windows, make `findPagePath` return a ref path.
* Fixes to the `cache` Jinja tag.
* Forgot this wasn't C++.
* Get the un-paginated URL of a page early and pass that around.
* Gigantic change to basically make PieCrust 2 vaguely functional.
* Give the proper URL to `Paginator` in the `paginate` filter.
* Handle the case where the debug server needs to serve an asset created after it was started.
* I don't care what the YAML spec says, ordered maps are the only sane way.
* Ignore `setuptools` build directory.
* Ignore messages' counter.
* Improvements and fixes to incremental baking.
* Improvements to incremental baking and cache invalidating.
* In-place upgrade for PieCrust 1 sites.
* Initial commit.
* Jinja templating now has `spaceless`, `|keys` and `|values`.
* Make a nice error message when a layout hasn't been found.
* Make configuration class more like `dict`, add support for merging `dicts`.
* Make sure `.html` is part of auto-formats.
* Make template directories properly absolute.
* Make the `Assetor` iterate over paths.
* Match routes completely, not partially.
* Mock `os.path.isfile`, and fix a few other test utilities.
* More PieCrust 3 fixes, and a couple of miscellaneous bug fixes.
* More Python 3 fixes, modularization, and new unit tests.
* More installation information in the README file.
* More options for the `showrecord` command.
* More robust Markdown configuration handling.
* More unit tests for output bake paths.
* More unit tests, fix a bug with the skip patterns.
* Moved all installation instructions to a new `INSTALL` file.
* New site layout support.
* Oops.
* Optimize server for files that already exist.
* Pass date information to routing when building URLs.
* PieCrust 1 import: clean empty directories and convert some config values.
* Prepare the server to support background asset pipelines.
* Print the help by default when running `chef` with no command.
* Processors can match on other things than just the extension.
* Proper debug logging.
* Properly add the config time to a page's datetime.
* Properly escape HTML characters in the debug info, add more options.
* Properly override pages between realms.
* Properly use, or not, the debugging when using the chef server.
* Propertly create `OrderedDict`s when loading YAML.
* Property clean all caches when force baking, except the `app` cache.
* PyYAML supports sexagesimal notation, so handle that for page times.
* Quick fix for making the server correctly update referenced pages.
* Re-arranged modules to reduce dependencies to builtin stuff.
* Re-enable proper caching of rendered segments in server.
* Remove unneeded trace.
* Setup the server better.
* Simple importer for PieCrust 1 websites.
* Simplify `AutoConfigSource` by inheriting from `SimplePageSource`.
* Slightly better exception throwing in the processing pipeline.
* Slightly more robust dependency handling for the LESS processor.
* Split baking code in smaller files.
* Support for installing from Git.
* Switch the PieCrust server to debug mode with `?!debug` in the URL.
* The LESS compiler must be launched in a shell on Windows.
* The `date` filter now supports passing `"now"` as in Twig.
* Unused import.
* Update system messages.
* Update the `requirements` file.
* Upgrade system messages to the new folder structure.
* Upgrade to Python 3.
* Use `SafeLoader` instead of `BaseLoader` for Yaml parsing.
* Use cache paths that are easier to debug than hashes.
* Use ordered dictionaries to preserve priorities between auto-formats.
* Use properly formatted date components for the blog sources.
* Use the `OrderedDict` correctly when fresh-loading the app config.
* Use the item name for the `prepare` command.
* Use the same defaults as in PieCrust 1.
* Various fixes for the default page source:
* When possible, try and batch-load pages so we only lock once.
* cosmetic: pep8 compliance.