Skip to main content

A powerful static website generator and lightweight CMS.

Project description

PieCrust is a static website generator and lightweight CMS that’s all managed with text files. No complex setup, databases, or administrative panels. Simple, beautiful, and yummy.

For more information, along with the complete documentation, visit the official website.

PyPI: the Python Package Index PyPI: the Python Package Index Travis CI: continuous integration status

Quickstart

If you want to quickly give it a spin:

pip install piecrust
chef init mywebsite
cd mywebsite
chef serve

It should create a new empty site in a mywebsite folder, and start a small web server to preview it. You can then point your browser to localhost:8080 to see the default home page.

Use chef prepare page and chef prepare post to create pages and posts, and edit those in your favorite text editor.

When you’re happy, run chef bake to generate the final static website, which you’ll find in _counter. At this point you can upload the contents of _counter to your server.

Changes

Check out the CHANGELOG file for new features, bug fixes and breaking changes. You can see it online here.

Installation

You can install PieCrust like any other package:

pip install piecrust

For more options to get PieCrust on your machine, see the INSTALL file. You can see it online here.

CHANGELOG

This is the changelog for PieCrust.

1. PieCrust 2.0.0rc1 (2016-06-09)

1.0 Commands
  • init: Use a better config template when creating websites.
  • themes: Simplify themes command.
  • themes: Expand ~ paths, fix error message.
  • bake: Fix some crashes with new blog archive/taxonomy for incremental bakes.
  • admin: Add support for .well-known folder.
  • admin: Fix crash when previewing a website.
  • serve: Fix some problems with trailing slashes.
  • routes: Show the route template function.
  • purge: Delete the whole cache directory, not just the current sub-cache.
  • bake: Add blog archives generator.
  • bake: Add the timestamp of the page to each record entry.
  • bake: Fix some bugs with taxonomy combinations.
  • bake: Replace hard-coded taxonomy support with “generator” system.
  • themes: Add support for loading from a library of themes.
  • bake: Don’t clean the baker cache on a force bake.
  • bake: Some more optimizations.
  • showrecord: Don’t print the record when you just want the stats.
  • bake: Re-enable faster serialization between processes.
  • bake: Add stat about aborted jobs
  • bake: Use threads to read/write from/to the main arbitrator process.
  • bake: Show more stats.
  • bake: Use standard pickle and queue for now to fix some small issues.
  • bake: Fix a crash when a rendering error occurs.
  • chef: Fix --debug-only argument.
  • bake: Change show-timers to show-stats , add stats.
  • serve: Fix some crashes introduced by recent refactor.
  • admin: Fix crash when running FoodTruck as a standalone web app.
  • themes: Add support for a --theme argument to chef .
  • admin: Add support for Git source-control.
  • admin: Fix OS-specific new line problems when editing pages.
  • admin: Show a more classic blog post listing in FoodTruck.
  • admin: run an asset processing loop in the background.
  • admin: Run the asset pipeline before showing the admin panel.
1.1 Core
  • data: Make the blog provider give usable data to the year archive routes.
  • templating: Make the ‘categories’ taxonomy use a ‘pccaturl’ function again.
  • internal: Remove threading stuff we don’t need anymore.
  • 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.
  • bug: Also look for format changes when determining if a page needs parsing.
  • internal: Update the cache version to force re-gen the configuration settings.
  • routing: Cleanup URL routing and improve page matching.
  • internal: Remove unused code.
  • rendering: Use fastpickle serialization before JSON.
  • internal: Prevent crash because of missing logger.
  • internal: Fix some bugs with the fastpickle module.
  • debug: Pass the exceptions untouched when debugging.
  • debug: Show more stuff pertaining to data providers in the debug window.
  • data: Support both objects and dictionaries in MergedMapping .
  • internal: Remove exception logging that shouldn’t happen. Better message.
  • internal: Remove unused piece of code.
  • templating: Use HTTPS URLs for a couple things.
  • internal: Don’t run regexes for the 99% case of pages with no segments.
  • internal: Fix compatibility with older Python 3.x.
  • internal: Remove unused import.
  • render: Change how we store render passes info.
  • formatting: Don’t import hoedown until we need it.
  • formatting: Add a hoedown formatter.
  • internal: Fix incorrect check for cache times.
  • internal: More work/fixes on how default/theme/user configs are merged.
  • internal: Bump cache version.
  • internal: Refactor config loading some more.
  • internal: Improve how theme configuration is validated and merged.
  • internal: Get rid of the whole “sub cache” business.
  • internal: Fix a bug with registering taxonomy terms that are not strings.
  • internal: Move some basic FoodTruck SCM code to the base.
1.2 Project
  • docs: Write about generators and data providers, update all related topics.
  • cm: Add generation of online changelog to the release task.
  • docs: Add changelog page.
  • cm: Add generation of Mardown changelog suitable for the online documentation.
  • tests: the PageBaker now needs to be shutdown.
  • cm: Fix setup.py script.
  • docs: Use HTTPS version of Google Fonts.
  • tests: Add some tests for blog archives and multi-blog features.
  • tests: Add more tests for merged mappings.
  • cm: Ignore bdist output directory.
  • cm: Fix a packaging bug, update package metadata.
  • tests: Add another app config test.
  • cm: It’s fun to send typos to Travis-CI.
  • cm: Don’t raise an exception when no version file exists.
  • cm: Make Travis-CI test packaging.
  • cm: Don’t always generation the version when running setuptools .
  • tests: Add ability to run tests with a theme site.
  • tests: Improve failure reporting.
  • cm: Add AppVeyor support.
  • cm: Also test Python 3.5 with Travis.
  • cm: Improve documentation generation script.
  • cm: Ignore py.test cache.
  • docs: Use new config variants format.
  • tests: Fix logic for making time-based tests not fail randomly.
  • docs: Add information on more global chef options.
1.3 Miscellaneous
  • Merge changes.
  • Merge changes.
  • jinja: Add md5 filter.
  • Fix 404 broken link

2. PieCrust 2.0.0b5 (2016-02-16)

2.0 Commands
  • admin: Remove settings view.
  • admin: Don’t require bcrypt for running FoodTruck with chef .
2.1 Core
  • internal: Remove SyntaxWarning from MacOS wrappers.
2.2 Project
  • cm: Regenerate the CHANGELOG.
  • cm: Tweaks to the release script.
  • cm: Fix CHANGELOG newlines on Windows.
  • cm: Update npm modules and bower packages before making a release.
  • cm: Fixes and tweaks to the documentation generation task.
  • cm: Update node module versions.
  • cm: Update the node modules before building the documentation.
  • 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: Exclude the correct directories from vim-gutentags.
  • cm: Fix categorization of CHANGELOG entries for new commands.
  • cm: Regenerate the CHANGELOG.

3. PieCrust 2.0.0b4 (2016-02-09)

3.0 Commands
  • chef: Fix the --config-set option.
  • admin: Make the publish UI handle new kinds of target configurations.
  • admin: Fix crashes when creating a new page.
  • admin: Fix responsive layout.
  • admin: Use HGPLAIN for the Mercurial VCS provider.
  • publish: Add option to change the source for the rsync publisher.
  • publish: Change the shell config setting name for the command to run.
  • publish: Add the rsync publisher.
  • publish: Polish/refactor the publishing workflows.
  • admin: Make the sidebar togglable for smaller screens.
  • admin: Change the default admin server port to 8090, add --port option.
  • admin: Improve publish logs showing as alerts in the admin panel.
  • publish: Make the shell log update faster by flushing the pipe.
  • publish: Add publish command.
  • chef: Add --pid-file option.
  • admin: Use the app directory, not the cwd, in case of --root .
  • admin: Configuration changes.
  • admin: Fix “Publish started” message showing up multiple times.
  • admin: Show the install page if no secret key is available.
  • admin: Prompt the user for a commit message when committing a page.
  • admin: Fix creating pages.
  • admin: Better UI for publishing websites.
  • admin: Better error reporting, general clean-up.
  • admin: Fix constructor for Mercurial SCM.
  • admin: Set the DEBUG flag before the app runs so we can read it during setup.
  • admin: Ability to configure SCM stuff per site.
  • admin: Better production config for FoodTruck, provide proper first site.
  • admin: Make sure we have a valid default site to start with.
  • admin: Dashboard UI cleaning, re-use utility function for page summaries.
  • admin: Add summary of page in source listing.
  • admin: New admin command to manage FoodTruck-related things.
  • admin: Add “FoodTruck” admin panel from the side experiment project.
  • bake: Add new performance timers.
  • bake: Add support for a “known” page setting that excludes it from the bake.
  • bake: Add option to bake assets for FoodTruck. This is likely temporary.
  • sources: Add method to get a page factory from a path.
  • sources: Add code to support “interactive” metadata acquisition.
  • serve: Make it possible to preview pages with a custom root URL.
  • serve: Fix corner cases where the pipeline doesn’t run correctly.
  • showconfig: Don’t crash when the whole config should be shown.
  • bake: Don’t re-setup logging for workers unless we’re sure we need it.
  • serve: Fix error reporting when the background pipeline fails.
  • chef: Add --debug-only option to only show debug logging for a given logger.
  • routes: Add better support for taxonomy slugification.
  • serve: Improve reloading and shutdown of the preview server.
  • serve: Don’t crash when looking at the debug info in a stand-alone window.
  • serve: Improve debug information in the preview server.
  • serve: Refactor the server to make pieces usable by the debugging middleware.
  • serve: Fix timing information in the debug window.
  • serve: Extract some of the server’s functionality into WSGI middlewares.
  • serve: Rewrite of the Server-Sent Event code for build notifications.
  • serve: Werkzeug docs say you need to pass a flag with wrap_file .
  • bake: Add a flag to know which record entries got collapsed from last run.
  • bake: Set the flags, don’t combine.
3.1 Core
  • debug: Fix debug window CSS.
  • debug: Don’t show parentheses on redirected properties.
  • debug: Fix how the linker shows children/siblings/etc. in the debug window.
  • internal: Some fixes to the new app configuration.
  • internal: Refactor the app configuration class.
  • cli: More proper argument parsing for the main/root arguments.
  • cli: Add --no-color option.
  • internal: Rename raw_content to segments since it’s what it is.
  • bug: Fix a crash when some errors occur during page rendering.
  • data: Fix a crash bug when no parent page is set on an iterator.
  • bug: Correctly handle root URLs with special characters.
  • debug: Fix a crash when rendering debug info for some pages.
3.2 Project
  • docs: Make FoodTruck screenshots the proper size.
  • cm: Add script to generate documentation.
  • docs: Add documentation about FoodTruck.
  • docs: Add raw files for FoodTruck screenshots.
  • docs: Add documentation about the publish command.
  • cm: Add some pretty little icons in the README.
  • tests: Add unicode tests for case-sensitive file-systems.
  • cm: Merge the 2 foodtruck folders, cleanup.
  • cm: Fix Gulp config.
  • docs: Fix broken link.
  • cm: Put Bower/Gulp/etc. stuff all at the root.
  • cm: Add requirements for FoodTruck.
  • cm: Ignore more stuff for CtrlP or Gutentags.
  • tests: Fix (hopefully) time-sensitive tests.
  • cm: CHANGELOG generator can handle future versions.
  • docs: Remove LessCSS dependencies in the tutorial, fix typos.
  • tests: Fix broken unit test.
  • tests: Fix another broken test.
  • docs: Add reference entry about the site/slugify_mode setting.
  • tests: Fix broken test.
  • tests: Print more information when a bake test fails to find an output file.

4. PieCrust 2.0.0b3 (2015-08-01)

4.0 Commands
  • import: Correctly convert unicode characters in site configuration.
  • import: Fix the PieCrust 1 importer.
  • import: Add some debug logging.
4.1 Core
  • internal: Fix a severe bug with the file-system wrappers on OSX.
  • templating: Make more date functions accept ‘now’ as an input.
4.2 Project
  • cm: Update changelog.
  • cm: Changelog generator script.
  • cm: Add a Gutentags config file for ctags generation.
  • tests: Check accented characters work in configurations.
  • cm: Ignore Rope cache.

5. PieCrust 2.0.0b2 (2015-07-29)

5.0 Commands
  • prepare: More help about scaffolding.
5.1 Core
  • bug: Fix crash running chef help scaffolding outside of a website.

6. PieCrust 2.0.0b1 (2015-07-29)

6.0 Commands
  • prepare: Fix the RSS template.
  • serve: Improve Jinja rendering error reporting.
  • serve: Don’t show the same error message twice.
  • serve: Say what page a rendering error happened in.
  • serve: Improve error reporting when pages are not found.
  • bake: Add a processor to generate a Pygments style CSS file.
  • bake: Fix logging configuration for multi-processing on Windows.
  • themes: Improve CLI, add deactivate command.
  • themes: Don’t fixup template directories, it’s actually better as-is.
  • serve: Try to serve taxonomy pages after all normal pages have failed.
  • serve: Fix a crash when matching taxonomy URLs with incorrect URLs.
  • bake: Fix random crash with the Sass processor.
  • themes: Add a link sub-command to install a theme via a symbolic link.
  • themes: Add config paths to the cache key.
  • themes: Proper template path fixup for the theme configuration.
  • bake: Set the worker ID in the configuration. It’s useful.
  • themes: Fix crash when invoking command with no sub-command.
6.1 Core
  • templating: Add now global to Jinja, improve date error message.
  • bug: Of course I broke something. Some exceptions need to pass through Jinja.
  • bug: Fix file-system wrappers for non-Mac systems.
  • bug: Forgot to add a new file like a big n00b.
  • config: Make sure site/auto_formats has at least html .
  • internal: Return None instead of raising an exception when finding pages.
  • internal: Improve handling of taxonomy term slugification.
  • formatting: Add support for Markdown extension configs.
  • templating: highlight_css can be passed the name of a Pygments style.
  • bug: Fix a crash with the ordered page source when sorting pages.
  • internal: Fix some edge-cases for splitting sub-URIs.
  • internal: Fix timing info.
  • templating: Make Jinja support arbitrary extension, show warning for old stuff.
  • internal: Correctly split sub URIs. Add unit tests.
6.2 Project
  • tests: Help the Yaml loader figure out the encoding on Windows.
  • cm: Re-fix Mac file-system wrappers.
  • cm: Add unidecode to requirements.
  • tests: Fix processing test after adding PygmentsStyleProcessor .
  • docs: Use fenced code block syntax.
  • docs: Add some syntax highlighting to tutorial pages.
  • docs: Make code prettier :)
  • docs: Always use Pygments styles. Use the new CSS generation processor.
  • docs: Configure fenced code blocks in Markdown with Pygments highlighting.
  • docs: Add some API documentation.
  • docs: Start a proper “code/API” section.
  • cm: Error in .hgignore . Weird.
  • docs: No need to specify the layout here.
  • docs: Make the “deploying” page consistent with “publishing”.
  • docs: More generic information about baking and publishing.
  • tests: Fix the Mustache tests on Windows.
  • tests: Fix find tests on Windows.
  • tests: Fix processing tests on Windows.
  • tests: Normalize test paths using the correct method.
  • cm: Fix benchmark website generation on Windows.
  • cm: Ignore .egg-info stuff.
6.3 Miscellaneous
  • bake/serve: Improve support for unicode, add slugification options.
  • cosmetic: Remove debug print here too.
  • cosmetic: Remove debug printing.
  • sass: Overwrite the old map file with the new one always.
  • less: Fix issues with the map file on Windows.
  • jinja: Support .j2 file extensions.

7. PieCrust 2.0.0a13 (2015-07-14)

7.0 Commands
  • bake: Fix a bug with copying assets when pretty_urls are disabled.
7.1 Core
  • bug: Fix copying of page assets during the bake.
  • bug: Correctly setup the environment/app for bake workers.

8. PieCrust 2.0.0a12 (2015-07-14)

8.0 Commands
  • bake: Pass the config variants and values from the CLI to the baker.
  • bake: Add CLI argument to specify job batch size.
  • bake: Use batched jobs in the worker pool.
  • bake: Correctly use the num_worers setting.
  • bake: Abort “render first” jobs if we start using other pages.
  • bake: Don’t pass the previous record entries to the workers.
  • bake: Optimize the bake by not using custom classes for passing info.
  • serve: Use Werkzeug’s HTTP exceptions correctly.
  • serve: Fix bug with creating routing metadata from the URL.
  • bake: Commonize worker pool code between html and asset baking.
  • bake: Tweaks to the sitemap processor. Add tests.
  • bake: Pass the sub-cache directory to the bake workers.
  • bake: Improve performance timers reports.
  • serve: Fix crash on start.
  • bake: Improve bake record information.
  • bake: Make pipeline processing multi-process.
  • bake: Enable multiprocess baking.
8.1 Core
  • bug: Fix CLI crash caused by configuration variants.
  • internal: Handle data serialization more under the hood.
  • internal: Add support for fake pickling of date/time structures.
  • internal: Just use the plain old standard function.
  • rendering: Truly skip formatters that are not enabled.
  • templating: Let Jinja2 cache the parsed template for page contents.
  • internal: Add a fastpickle module to help with multiprocess serialization.
  • bug: Fix infinite loop in Jinja2 rendering.
  • performance: Only use Jinja2 for rendering text if necessary.
  • performance: Use the fast YAML loader if available.
  • performance: Add profiling to the asset pipeline workers.
  • internal: Remove unnecessary import.
  • performance: Refactor how data is managed to reduce copying.
  • bug: Fix routing bug introduced by 21e26ed867b6.
  • bug: Fix a crash when errors occur while processing an asset.
  • reporting: Print errors that occured during pipeline processing.
  • templating: Add modification time of the page to the template data.
  • reporting: Better error messages for incorrect property access on data.
  • internal: Floats are also allowed in configurations, duh.
  • internal: Create full route metadata in one place.
  • templating: Workaround for a bug with Pystache.
  • templating: Fix Pystache template engine.
  • performance: Compute default layout extensions only once.
  • performance: Quick and dirty profiling support for bake workers.
  • internal: Fix caches being orphaned from their directory.
  • render: Lazily import Textile package.
  • internal: Remove unnecessary code.
  • internal: Optimize page data building.
  • internal: Optimize page segments rendering.
  • internal: Add utility function for incrementing performance timers.
  • internal: Move MemCache to the cache module, remove threading locks.
  • internal: Register performance timers for plugin components.
  • internal: Allow re-registering performance timers.
  • debug: Fix serving of resources now that the module moved to a sub-folder.
  • debug: Better debug info output for iterators, providers, and linkers.
  • debug: Add support for more attributes for the debug info.
  • debug: Log error when an exception gets raised during debug info building.
  • linker: Add ability to return the parent and ancestors of a page.
8.2 Project
  • cm: Fix wrong directory for utilities.
  • cm: Add script to generate benchmark websites.
  • cm: Use Travis CI’s new infrastructure.
  • tests: Fix Jinja2 test.
  • cm: Move build directory to util to avoid conflicts with pip.
  • tests: Fix crash in processing tests.
  • tests: Add pipeline processing tests.
  • docs: Add the --pre flag to pip install while PieCrust is in beta.
8.3 Miscellaneous
  • Fixed ‘bootom’ to ‘bottom’
  • markdown: Cache the formatter once.

9. PieCrust 2.0.0a11 (2015-05-18)

9.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.
9.1 Core
  • linker: Fix linker returning the wrong value for is_dir in some situations.
  • linker: Fix error when trying to list non-existing children.
  • pagination: Fix regression bug with previous/next posts.
  • data: Fix regression bug with accessing page metadata that doesn’t exist.
9.2 Project
  • tests: More accurate marker position for diff’ing strings.
  • tests: Fail bake tests with a proper error message when bake fails.
  • tests: Move all bakes/cli/servings tests files to have a YAML extension.
  • tests: Also mock open in Jinja to be able to use templates in bake tests.
  • tests: Add support for testing the Chef server.
9.3 Miscellaneous
  • jinja: Look for html extension first instead of last.

10. PieCrust 2.0.0a10 (2015-05-15)

10.2 Project

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

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

11.0 Commands
  • serve: Add a generic WSGI app factory.
  • serve: Compatibility with mod_wsgi .
  • serve: Add a WSGI utility module for easily getting a default app.
  • serve: Add ability to suppress the debug info window programmatically.
  • serve: Split the server code in a couple modules inside a serving package.
11.1 Core
  • internal: Make it possible to pass argv to the main Chef function.
  • data: Fix problems with using non-existing metadata on a linked page.
  • routing: Fix bugs with matching URLs with correct route but missing metadata.
11.2 Project
  • tests: Add a Chef test for the find command.
  • tests: Add support for “Chef tests”, which are direct CLI tests.
  • docs: Add lame bit of documentation on publishing your website.
  • docs: Add documentation for deploying as a dynamic CMS.
  • tests: Fix serving unit-tests.
  • setup: Keep the requirements in sync between setuptools and pip .

12. PieCrust 2.0.0a8 (2015-05-03)

12.0 Commands
  • theme: Fix link to PieCrust documentation.
  • serve: Giant refactor to change how we handle data when serving pages.
  • sources: Default source lists pages in order.
  • serve: Refactoring and fixes to be able to serve taxonomy pages.
  • sources: Fix how the autoconfig source iterates over its structure.
  • bake: Fix crash when handling bake errors.
12.1 Core
  • caching: Use separate caches for config variants and other contexts.
  • linker: Don’t put linker stuff in the config.
  • 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.
12.2 Project
  • tests: Changes to output report and hack for comparing outputs.
12.3 Miscellaneous
  • Update development requirements.txt , add code coverage tools.
  • Update requirements.txt .

13. PieCrust 2.0.0a7 (2015-04-20)

13.0 Commands
  • import: Use the proper baker setting in the Jekyll importer.
  • serve: Don’t access the current render pass info after rendering is done.
  • chef: Fix pre-parsing.
  • chef: Add a --config-set option to set ad-hoc site configuration settings.
  • find: Don’t change the pattern when there’s none.
  • 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.
  • showrecord: Add ability to filter on the output path.
  • serve: Fix crash on URI parsing.
13.1 Core
  • data: Also expose XML date formatting as xmldate in Jinja.
  • pagination: Make pagination use routes to generate proper URLs.
  • internal: Remove unused code.
  • config: Add default_page_layout and default_post_layout settings.
  • internal: Template functions could potentially be called outside of a render.
  • internal: Fix stupid routing bug.
  • internal: Use hashes for cache paths.
  • internal: Try handling URLs in a consistent way.
13.2 Project
  • docs: Add documentation for importing content from other engines.
  • build: Put dev-only lib requirements into a dev-requirements.txt file.
  • docs: Add “active page” style for the navigation menu.
  • tests: Improve bake tests output, add support for partial output checks.
  • tests: Add more utility functions to the mock file-system.
  • docs: Add new site configuration settings to the reference documentation.
  • tests: Support for YAML-based baking tests. Convert old code-based ones.
  • tests: Remove debug output.
  • tests: Add os.rename to the mocked functions.
  • tests: Fix test.
  • tests: Raise an exception instead of crashing rudely.
13.3 Miscellaneous
  • cleancss: Fix stupid bug.

14. PieCrust 2.0.0a6 (2015-03-30)

14.0 Commands
  • import: Wordpress importer puts drafts in a draft folder. Ignore other statuses.
  • plugins: Remove unused API endpoints.
  • plugins: Fix crash for sites that don’t specify a site/plugins setting.
  • plugins: Change how plugins are loaded. Add a plugins command.
  • import: Show help if no sub-command was specified.
  • plugins: First pass for a working plugin loader functionality.
  • import: Make the Wordpress importer extendable, rename it to wordpressxml .
  • import: Add an XML-based Wordpress importer.
  • sources: Make sure page sources have some basic config info they need.
  • import: Put importer metadata on the class, and allow return values.
  • import: Upgrade more settings for the PieCrust 1 importer.
  • serve: Don’t crash when a post URL doesn’t match our expectations.
  • serve: Correctly show timing info even when not in debug mode.
  • theme: Fix the default theme’s templates after changes in Jinja’s wrapper.
  • themes: Add the chef themes command
  • sources: Generate proper slugs in the autoconfig and ordered sources.
  • bake: Don’t store internal config values in the bake record.
  • sources: Use posts_* and items_* settings more appropriately.
  • serve: Use Etags and 304 responses for assets.
  • sources: The ordered source returns names without prefixes in listPath .
  • sources: Fix a bug where the posts source wasn’t correctly parsing URLs.
  • sources: Refactor autoconfig source, add OrderedPageSource .
  • bake: Don’t include the site root when building output paths.
  • serve: Fix a bug where empty route metadata is not the same as invalid route.
  • serve: Print nested exception messages in the dev server.
  • serve: Keep the ?!debug when generating URLs if it is enabled.
  • serve: Fix exiting the server with CTRL+C when the SSE response is running.
  • serve: Don’t expose the debug info right away when running with --debug .
  • bake: Fix processing record bugs and error logging for external processes.
  • bake: Change arguments to selectively bake to make them symmetrical.
  • serve: Add server sent events for showing pipeline errors in the debug window.
  • showrecord: Show the overall status (success/failed) of the bake.
  • bake: Better error handling for site baking.
  • bake: Better error handling for the processing pipeline.
  • serve: Don’t have 2 processing loops running when using --use-reloader .
  • theme: Updated “quickstart” text shown for new websites.
  • serve: Run the asset pipeline asynchronously.
  • bake: Changes in how assets directories are configured.
  • serve: Correctly pass on the HTTP status code when an error occurs.
  • bake: Remove --portable option until it’s (maybe) implemented.
  • showrecord: Also show the pipeline record.
  • showrecord: Show relative paths.
  • serve: Make the server find assets generated by external tools.
  • prepare: Add user-defined scaffolding templates.
  • sources: Pass any current mode to _populateMetadata when finding pages.
14.1 Core
  • data: Better error message for old date formats, add emaildate filter.
  • pagination: Add support for site/default_pagination_source .
  • config: Assign correct data endpoint for blogs to be v1-compatible.
  • internal: Add utility function to get a page from a source.
  • internal: Be more forgiving about building Taxonomy objects. Add setting_name .
  • config: Make sure site/plugins is transformed into a list.
  • internal: Remove mentions of plugins directories and sources.
  • config: Make YAML consider omap structures as normal maps.
  • data: Fix incorrect next/previous page URLs in pagination data.
  • data: Temporary hack for asset URLs.
  • data: Don’t nest filters in the paginator – nest clauses instead.
  • data: Correctly build pagination filters when we know items are pages.
  • internal: Re-use the cached resource directory.
  • routing: Better generate URLs according to the site configuration.
  • data: Add a top level wrapper for Linker .
  • internal: Code reorganization to put less stuff in sources.base .
  • internal: Fix bug with the default source when listing / path.
  • data: Linker refactor.
  • internal: Add support for “wildcard” loader in LazyPageConfigData .
  • internal: Removing some dependency of filters and iterators on pages.
  • internal: Make the simple page source use slug everywhere.
  • data: Fix typos and stupid errors.
  • data: Make the Linekr use the new getSettingAccessor API.
  • data: Add ability for IPaginationSource s to specify how to get settings.
  • data: Only expose the family linker.
  • internal: Bump the processing record version.
  • internal: Remove the (unused) new_only flag for pipeline processing.
  • data: Improve the Linker and RecursiveLinker features. Add tests.
  • internal: A bit of input validation for source APIs.
  • internal: Add ability to get a default value if a config value doesn’t exist.
  • 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.
14.2 Project
  • docs: Quick support info page.
  • tests: Add utility function to create multiple mock pages in one go.
  • tests: Add a blog data provider test.
  • tests: Bad me, the tests were broken. Now they’re fixed.
  • docs: Add documentation on making a plugin.
  • docs: Add documentation on the asset pipeline.
  • docs: Fix link, add another link.
  • docs: A whole bunch of drafts for content model and reference pages.
  • docs: Fix missing link.
  • docs: Documentation for iterators and filtering.
  • docs: Add the ability to use Pygments highlighting.
  • docs: Pagination and assets’ documentation.
  • tests: Fixes for running on Windows.
  • docs: Still more documentation.
  • docs: Properly escape examples with Jinja markup.
  • docs: Last part of the tutorial.
  • docs: More tutorial text.
  • docs: Tutorial part 2.
  • docs: Tweak CSS for boxed text.
  • docs: Change docs’ templates after changes in Jinja’s wrapper.
  • docs: Add information about the asset pipeline.
  • docs: Add a page explaining how PieCrust works at a high level.
  • docs: Still adding more pages.
  • tests: Fix linker tests.
  • docs: Website configuration reference.
  • docs: Add website configuration page.
  • docs: More on creating websites.
  • docs: Documentation on website structure.
  • docs: Add some general information on chef .
  • docs: Tutorial part 1.
  • docs: Fix URLs to the docs source.
  • docs: Add embryo of a documentation website.
  • tests: Fix tests for base sources.
  • tests: Remove debug output.
  • tests: Add tests for Jinja template engine.
  • build: Add pystache to requirements.txt .
  • tests: Patch os.path.exists and improve patching for open .
  • tests: Add help functions to get and render a simple page.
14.3 Miscellaneous
  • bake/serve: Fix how taxonomy index pages are setup and rendered.
  • dataprovider: Use the setting name for a taxonomy to match page config values.
  • cleancss: Add option to specify an output extension, like .min.css .
  • jinja: Add a global function to render Pygments’ CSS styles.
  • jinja: Fix Twig compatibility for block trimming.
  • sitemap: Fix broken API call.
  • jinja: Provide a more “standard” Jinja configuration by default.
  • logging: If an error doesn’t have a message, print its type.
  • Use the site root for docs assets.
  • Temporary root URL for publishing.
  • Add bower configuration file.
  • Merge docs.
  • cosmetic: PEP8 compliance.
  • bake/serve: Make previewed and baked URLs consistent.
  • oops: Remove debug print.
  • Merge code changes.
  • less: Generate a proper, available URL for the LESS CSS map file.
  • sitemap: Fixed typo bug.
  • cosmetic: Fix PEP8 spacing.
  • processing: Use the correct full path for mounts.
  • processing: Don’t fail if an asset we want to remove has already been removed.
  • processing: Add concat , uglifyjs and cleancss processors.
  • processing: More powerful syntax to specify pipeline processors.
  • markdown: Let the user specify extensions in one line.
  • processing: Add ability to specify processors per mount.
  • builtin: Remove plugins command, it’s not ready yet.
  • processing: Add Compass and Sass processors.
  • cosmetic: Fix some PEP8 issues.
  • cosmetic: Fix some PEP8 issues.
  • processing: Add more information to the pipeline record.

15. PieCrust 2.0.0a5 (2015-01-03)

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for PieCrust, version 2.0.0rc1
Filename, size File type Python version Upload date Hashes
Filename, size PieCrust-2.0.0rc1.tar.gz (954.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page