create a generic Extension mechanism, something that brings
configuratorsall under one roof.
add scaffolding, especially to help create a useful config.yaml file (which is, at this point, pretty much a necessity)
add CSS/JS compressor/minification/combinator support, probably as a tag.
CANCELED merge YAML/config using a DSL that allows arrays to be extended instead of replaced
TABLED table of contents
2012_06_05 - v4.5.9
- removed support for scss_ext and clevercss_ext, since no one was using them
anyway, the backwards support was unneeded. importing from
strange_case.extensions.shawill issue a warning
2012_05_09 - v4.5.6
misakafor markdown. Use it :-). Markdown2 has some serious bugs, and I have not heard anything from the developer about whether he will fix them or not... misaka is awesome, and fast. Or, keep using Markdown2, I'm leaving it in
2012_05_09 - v4.5.3
overrideconfigurator added so that I can set a folder of image titles to
2012_05_09 - v4.5.2
- no more
_ext.pyfiles, thanks to
- imports from config.py are now easy, so it is encouraged to use
config.yamlfor config, and config.py to create helpers (which are then imported into
- I can't emphasize how happy I am to have test coverage :-)
2012_05_09 - v4.4.0
- category extension now supports category-specific detail pages. just add
category: special categoryto the special category page, or
categories: [special, categories]if you want multiple categories to use that page. if you don't implement a category page, it will raise a
2012_05_09 - v4.2.0
2012_05_06 - v4.1.6
- Lots more tests, including entire site building tests.
- Lots of fixes - thanks, tests!
- configurator methods can now offer some special properties that are picked up
- defaults - a dictionary of configuration key/values
- require_before - a list of config keys that must be present when configuration starts
- require_after - a list of config keys that must be present when configuration ends
- on_start - a function that is called before the root node is created, it is passed the config dict
- on_finish - a function that is called after the site is generater, also handed the config dict
2012_04_27 - v4.0.10
- The configurators have been totally broken up into components, with some of
them being relegated to "extension" status (
created_at_from_name) and added some new ones (
- Opened up the #strangecase chat room on irc.freenode.com. Join us! :-)
iterable"detection" into configuration. However, there is still a
Node, which attaches the parent's url.
- Tests! Finally added a test framework, using py.test.
2012_03_13 - v3.0.3
refactored the extensions folder again. removed all the imports from
__init__.py. you WILL need to update your imports:
strange_case.extensions.Markdown2Extension => strange_case.extensions.markdown.MarkdownExtension strange_case.extensions.markdown => strange_case.extensions.markdown.markdown strange_case.extensions.date => strange_case.extensions.date.date strange_case.extensions.sha => strange_case.extensions.sha.sha strange_case.extensions.image_processor => strange_case.extensions.image strange_case.extensions.paginated_processor => strange_case.extensions.paginated strange_case.extensions.category_processor => strange_case.extensions.category strange_case.extensions.clevercss_processor => strange_case.extensions.clevercss_ext strange_case.extensions.scss_processor => strange_case.extensions.scss_ext
Thanks to this refactor, CleverCSS, PIL, markdown2, and PySCSS are now optional, not installed as part of
pip install StrangeCase
require_packagehelper to output error message when a package is not installed. Usage:
2012_03_13 - v3.0.3
refactored the extensions folder, but that shouldn't affect anyone
added 'default_type' config, used when
typeisn't set and no
file_typesmatch the file
2012_03_13 - v3.0.0
added scss_processor and clevercss_processor. They compile and save SCSS/CleverCSS into CSS.
moved all extensions into the strange_case.extensions module. processors, extensions, and filters are all imported from there.
refactored configurator to use the 'file_types' config, which is modified during startup by processors to associate file types with a default processor. this replaces the
updated README to reflect these changes
2012_03_11 - v2.4.0
paginatedprocessor. it will iterate through all the pages in the folder and create a
Pageobject that holds
paginated.limititems (default: 10). the first page will be named after the page that you assign
type: paginated. every page after that will be named "pageN.html", where N is one-indexed (and therefore starts at "2", since the first page is probably "index.html"). see the README or
processors/paginated.pyfile for more info
added favicon.ico to list of dont_process defaults
command-line options (
--exclude) to exclude folders from the
date configurator matches Y, Y-M, or Y-M-D. month and day default to 1.
2012_03_01 - v2.3.0
you can now specify the following configurations as command-line options:
key:value: any key/value
key: value: these don't have to be "touching"
These override any defaults, and any settings in config.py and config.yaml
You can now have python configuration front matter. Instead of dashes, use "```"s python configuration front matter is eval'd with the current
locals(), so any assignments you make in you front matter will be available in your template.
See README for more information
config_hook, so that you can assign configuration at the end of configuration. It is a callable that is passed one argument: the
You can use this to process configurations that are expected from the command line.
Fixed the file removal to use absolute paths when matching against
dont_remove, but outputs using
Terminal-formatted output, and writes messages to
Support error messages using
2012_03_01 - v2.2.0
"Stale" files are now automatically removed during generation! This can be controlled and disabled.
dont_removelist to config.
remove_stale_filesis true, all files that don't match patterns in
dont_removeand were not generated are removed.
dont_remove: ['.*'] # dotfiles
2012_02_29 - v2.1.4
- First submission to PyPi.
- Supports --watch using watchdog
- see README for all features