What’s new in 1.5¶
What’s new in 1.5.3 (July 2013)¶
- Minor fixes
- Updated and improved documentation
- Several plugin fixes and updates including Tags, Pagination, and Ajax comments
- Improved tests
What’s new in 1.5.2 (December 2011)¶
Pertinent to users:
- Fixed a warning that pops up when doing
pip install pyblosxom
- Removed debug logging from pycategories
What’s new in 1.5.1 (December 2011)¶
Pertinent to users:¶
- Fixed a problem with the manifest so
python setup.py install
works again. - Fixed the WHATSNEW so it shows correct version and date for 1.5 release.
What’s new in 1.5 (December 2011)¶
Pertinent to users:¶
Renamed the project from PyBlosxom to Pyblosxom (no more CamelCase).
I moved all the plugins again in the git repository. This time, instead I moved them from
plugins/
toPyblosxom/plugins/
so that they’re in thePyblosxom.plugins
module.Because of this, you no longer have to copy core plugins into your plugins directory. Instead of copying core plugin files, refer to the plugins in your
config.py
file using their full Python path in the Pyblosxom package.For example, the pycalendar plugin is a core plugin that comes with Pyblosxom and is now located in
Pyblosxom/plugins/pycalendar.py
in git repository. Thus the module name isPyblosxom.plugins.pycalendar
. Yourconfig.py
file would look have this:py["load_plugins"] = [ ... "Pyblosxom.plugins.pycalendar", ... ]
To switch from having core plugins in your
plugin_dirs
directories to using the ones that come with Pyblosxom, all you need to do is:change the entries for plugins that are core plugins that come with Pyblosxom that are listed in the
load_plugins
list in yourconfig.py
from something like this:py["load_plugins"] = [ ... "pycalendar", ... ]
to something like this:
py["load_plugins"] = [ ... "Pyblosxom.plugins.pycalendar", ... ]
test to make sure your blog still works
remove the plugin files for plugins you changed in
load_plugins
from yourplugin_dirs
directories
To get a list of all plugins that come with Pyblosxom, see Part 2 in the Pyblosxom documentation.
If you make these changes, then the next time you upgrade PyBlosxom, core plugins will be upgraded automatically.
Further, documentation for core plugins is at the top of the individual plugin files, but also in the documentation. This includes a list of the plugins available in the core.
You can see the plugin documentation at Part 2: Core plugin documentation.
Plugins added: markdown_parser, readmore
Plugins changed:
pages
- Fixed documentation and error messages for
pagesdir
. - Fixed frontpage checking. Should catch / as well as /index now.
- Adds more examples to documentation.
tags
- Increased tag cloud range from 3 sizes to 5.
- Adds truncate support.
- Fixes problems with initialization when building tags so that it initializes plugins allowing them to do startup things. This fixes problems with plugins that augment entry parsers.
rst
- renamed it to rst_parser so it’s clearer what it is
pycategories
- fixed category_start/category_begin behavior for root category
- fixed the first example of settings in the documentation
the rest of the plugins: pep8 fixes and documentation updates
- Fixed documentation and error messages for
Plugins removed from Pyblosxom: commentAPI
Fixes error handling for loading plugins. When doing
pyblosxom-cmd test
and a plugin fails to load, it’ll now tell you. When using the debug renderer and a plugin fails to load, it’ll now tell you.Lot of work on simplifying and improving the documentation.
Added a
static_yearindexes
setting. Set it to True to generate year indexes and False to not generate year indexes.
Pertinent to developers¶
I removed all the extra infrastructure for testing plugins. Plugins that come with the core are now in the Pyblosxom package and their tests are in
Pyblosxom/tests/
.Adds generate subcommand to pyblosxom-cmd. This makes it easier to test blogs and plugins that do things with entries.
Renamed
PyBlosxomWSGIApp
class toPyblosxomWSGIApp
.Renamed
PyBlosxom
class toPyblosxom
.Moved the project from gitorious to github. The new git repository is at http://github.com/willkg/pyblosxom.
Removed
VERSION_DATE
andVERSION_SPLIT
. They’re kind of silly and don’t really help much.I moved the version to
Pyblosxom/_version.py
. Use it like this:from Pyblosxom import __version__ print __version__
I updated the documentation accordingly.
What’s new in 1.5 rc3 (June 2011)¶
Pertinent to users:¶
PyBlosxom shows an error page if it crashes rather than forcing you to go figure out what happened by finding the web server logs. This should make configuring and debugging much easier.
Bunch of fixes to the documentation. If you see errors or things that are unclear, let us know.
The documentation for the comments plugin still needs to be overhauled.
Bunch of other bug fixes.
Bunch of new plugins: magicword, pages, rst, check_nonhuman, and check_blacklist.
Bunch of fixes to the comments plugin, tags and pycalendar plugins.
Tags plugin gains tags cloud functionality.
Comments plugin gains comment_disable_after_x_days feature.
If you’re using them, update to the latest versions.
What’s new in 1.5 rc2 (August 2010)¶
Pertinent to users:¶
- The static renderer has a new command line.
- New entrytitle, acronym and paginate plugins.
- Fixed problems in yearmonths plugin. Please update to the latest version.
Pertinent to developers:¶
- New sortlist callback
What’s new in 1.5 rc1 (January 2010)¶
Pertinent to users:¶
Renamed
pyblcmd
topyblosxom-cmd
.PyBlosxom now requires Python 2.3. We’ve removed the _logging module that provided logging facilities to pre-Python 2.3 versions.
You can now install PyBlosxom on your system with pip or easy_install.
The
pyblosxom.cgi
file has changed significantly—if you’re using it you should grab the new one that comes with this distribution. We’ve gutted thepyblosxom.cgi
script and turned it into a stub. This will reduce the need for you to update yourpyblosxom.cgi
in the future when you upgrade PyBlosxom.pyblosxom-cmd now has an option to create the blog directory structure and skeleton files for you. This makes it much faster to get a new blog up and running. Syntax is this:
pyblosxom-cmd create <path>
Some examples:
pyblosxom-cmd create . pyblosxom-cmd create /home/joe/blog
Template variable syntax
$id_escaped
and$id_urlencoded
has been removed. Use$escape(id)
and$urlencode(id)
instead.Switched to using Python’s optparse module instead of our home-brewed one. There are some changes in command line syntax. Do
pyblosxom-cmd --help
for command line help.Changed around
INSTALL
,README
and addedUPGRADE
.Removed
blog_title_with_path
variable. If you were using this variable in your templates, replace it. i.e. instead of:$blog_title_with_path
do:
$blog_title : $pi_bl
Re-worked PyBlosxom so that it uses the same encoding throughout. This means you need to use the same encoding for all your data files and that encoding has to match the
blog_encoding
property inconfig.py
. This defaults to UTF-8.Re-worked documentation to use Sphinx. The end result is that the “source” for the docs is in
docs/source/
, there’s an HTML version that’s built by Sphinx indocs/build/html/
, and it’s a lot easier to read and use now. Thank you to the Sphinx team!Reworked the command line for static rendering. It now works like this:
pyblosxom-cmd staticrender \ [--config <path/to/config/file>] \ [--incremenal]
If the
config.py
file is in yourPYTHONPATH
, then you can skip the--config <path/to/config/file>
stuff.Removed portalocker code. This will cause any plugins using the locking code to fail. The only one I saw like this was the logstats plugin which had a lot of other problems.
Added a
--silent
flag to pyblcmd so that it quells all stdout. This is useful for cron jobs.Added
truncate_date
config variable. When set to True, it causes date-based archives to be truncated tonum_entries
entries. Defaults to False.Example:
py["truncate_date"] = True
Added
truncate_category
config variable. When set to True, it causes category-based archives to be truncated tonum_entries
entries. Defaults to True.Example:
py["truncate_category"] = True
Added
truncate_frontpage
config variable. When set to True, it causes the front pagenum_entries
entries. Defaults to True.Example:
py["truncate_frontpage"] = True
Plugins are included in the PyBlosxom source tarball again.
Templates in a flavourdir directory no longer require the flavour as the file extension. e.g. This will work fine:
blog/ |- flavourdir/ |- html.flav/ |- content_type |- head |- story |- ...
We moved the main PyBlosxom site to http://pyblosxom.github.com/ . There’s a “powered by pyblosxom” image at http://pyblosxom.github.com/images/pb_pyblosxom.gif
You should adjust your templates accordingly.
The following plugins have been added to the pyblosxom release tarball:
archives/
- pyarchives
- yeararchives (was wbgarchives)
categories/
- pycategories
comments/plugins/
- akismetcomments
- comments
- no_old_comments
- trackback
- xmlrpc_pingback
date/
- pycalendar
- firstdaydiv
- pyfilenamemtime
- w3cdate
display/
- paginate (was wbgpager)
- entrytitle
headers/
- conditionalhttp
tags/
- tags (was wbgtags)
text/
- acronyms
If you have older versions of these plugins, better to switch to the new versions.
Pertinent to developers:¶
Pyblosxom.tools.VariableDict
is no more.If you have template variables that end in
_urlencoded
and_escaped
, it’s better to instead calltools.escape_text(...)
andtools.urlencode_text(...)
or use filter functions$escape(var)
and$urlencode(var)
.The blosxom renderer has undergone a bunch of fixes. If you depended on functions that started with
_
, then you’ll probably need to rework your plugin. These functions were not intended for outside use.Additionally, we fixed the bug where the renderer was adding the contents of the config and data dicts to each entry when it was rendered as a story. Now the items in the entrylist are untouched during rendering.
Added a lot of tests and rewrote everything to ditch the nose requirement. Tests can be run with:
python setup.py test
Added a lot of documentation.
Removed the portalocker code so PyBlosxom no longer provides a way to lock/unlock text files.
Changed a lot of camel-case function/method names to PEP-8 versions. Camel case names are deprecated and will be removed in a future version:
tools.py
:- Walk -> walk
- getLogger -> get_logger
- generateRandStr -> generate_rand_str
pyblosxom/Pyblosxom.py
:- PyBlosxom: getRequest -> get_request
- PyBlosxom: getResponse -> get_response
- PyBlosxom: runCallback -> run_callback
- PyBlosxom: runRenderOne -> run_render_one
- PyBlosxom: runStaticRenderer removed
- Request: setResponse -> set_response
- Request: getResponse -> get_response
- Request: getForm -> get_form
- Request: getConfiguration -> get_configuration
- Request: getHttp -> get_http
- Request: getData -> get_data
- Request: addHttp -> add_http
- Request: addData -> add_data
- Request: addConfiguration -> add_configuration
- Response: setStatus -> set_status
- Response: addHeader -> add_header
- Response: getHeaders -> get_headers
- Response: sendBody -> send_body
- Response: sendHeaders -> send_headers
pyblosxom/renderers/base.py
:- RendererBase: addHeader -> add_header
- RendererBase: setContent -> set_content
- RendererBase: needsContentType -> needs_content_type
- RendererBase: showHeaders -> show_headers
pyblosxom/renderers/blosxom.py
:- BlosxomRenderer: renderContent -> render_content
- BlosxomRenderer: renderTemplate -> render_template
- BlosxomRenderer: getContent -> get_content
- BlosxomRenderer: outputTemplate -> output_template
Changed
add_header
in theResponse
class to take a key and value instead of a list of strings that it has to use * magic and then munge through.Added a commandline callback for allowing plugins to add to the command line.
Added a truncatelist callback allowing plugins to augment the truncate (
num_entries
) behavior.Added a sortlist callback allowing plugins to augment entrylist sorting behavior.