### Navigation

- index
- modules |
- next |
- previous |
- PyBlosxom 1.5.2 documentation »

# pycategories - Builds a list of categories....

## Summary

Walks through your blog root figuring out all the categories you have and how many entries are in each category. It generates html with this information and stores it in the `$(categorylinks)` variable which you can use in your head or foot templates.

## Install

This plugin comes with Pyblosxom. To install, do the following:

1. Add `Pyblosxom.plugins.pycategories` to the `load_plugins` list in your `config.py` file.
2. Add `$(categorylinks)` to your head and/or foot templates.

## Configuration

You can format the output by setting `category_begin`, `category_item`, and `category_end` properties.

Categories exist in a hierarchy. `category_start` starts the category listing and is only used at the very beginning. The `category_begin` property begins a new category group and the `category_end` property ends that category group. The `category_item` property is the template for each category item. Then after all the categories are printed, `category_finish` ends the category listing.

For example, the following properties will use `<ul>` to open a category, `</ul>` to close a category and `<li>` for each item:

    py["category_start"] = "<ul>"
    py["category_begin"] = "<li><ul>"
    py["category_item"] = (
        r'<li><a href="%(base_url)s/%(category_urlencoded)sindex">'
        r'%(category)s</a></li>')
    py["category_end"] = "</li></ul>"
    py["category_finish"] = "</ul>"

Another example, the following properties don’t have a begin or an end but instead use indentation for links and displays the number of entries in that category:

    py["category_start"] = ""
    py["category_begin"] = ""
    py["category_item"] = (
        r'%(indent)s<a href="%(base_url)s/%(category_urlencoded)sindex">'
        r'%(category)s</a> (%(count)d)<br />')
    py["category_end"] = ""
    py["category_finish"] = ""

There are no variables available in the `category_begin` or `category_end` templates.

Available variables in the category_item template:

variable | example | datatype
--- | --- | ---
base_url | http://joe.com/blog/ | string
fullcategory_urlencoded | ‘dev/pyblosxom/status/’ | string
fullcategory | ‘dev/pyblosxom/status/’ | string (urlencoded)
category | ‘status/’ | string
category_urlencoded | ‘status/’ | string (urlencoed)
flavour | ‘html’ | string
count | 70 | int
indent | ‘&nbsp;&nbsp;&nbsp;&nbsp;’ | string

## License

Plugin is distributed under license: MIT

### Navigation

- index
- modules |
- next |
- previous |
- PyBlosxom 1.5.2 documentation »