Add the ability to sort categories.

generator.categories is now a list of (category, articles) instead of a dict. This
is to avoid using ordered dicts that have been introduces in python 2.7, so we stay
as much as possible compatible with older versions.

This fixes #62. Thanks to Bruno for the report.
This commit is contained in:
Alexis Metaireau 2011-02-01 01:57:39 +00:00
commit d0ec18f4db
5 changed files with 12 additions and 3 deletions

1
THANKS
View file

@ -10,3 +10,4 @@ bugs or giving ideas. Thanks to them !
- David Kulak
- Arnaud Bos
- nblock (Florian)
- Bruno Bord

View file

@ -54,6 +54,8 @@ Setting name what it does ?
documents. You will need to install `rst2pdf`.
`REVERSE_ARCHIVE_ORDER` Reverse the archives order. (True makes it in
descending order: the newer first)
`REVERSE_CATEGORY_ORDER` Reverse the category order. (True makes it in
descending order, default is alphabetically)
`SITEURL` base URL of your website.
`SITENAME` Your site name,
`STATIC_PATHS` The static paths you want to have accessible on the

View file

@ -94,7 +94,7 @@ class ArticlesGenerator(Generator):
writer.write_feed(self.articles, self.context,
self.settings['FEED_RSS'], feed_type='rss')
for cat, arts in self.categories.items():
for cat, arts in self.categories:
arts.sort(key=attrgetter('date'), reverse=True)
writer.write_feed(arts, self.context,
self.settings['CATEGORY_FEED'] % cat)
@ -149,9 +149,9 @@ class ArticlesGenerator(Generator):
write('tag/%s.html' % tag, templates['tag'], self.context,
tag=tag, articles=articles)
for cat in self.categories:
for cat, articles in self.categories:
write('category/%s.html' % cat, templates['category'], self.context,
category=cat, articles=self.categories[cat])
category=cat, articles=articles)
def generate_context(self):
"""change the context"""
@ -200,6 +200,10 @@ class ArticlesGenerator(Generator):
self.dates.sort(key=attrgetter('date'),
reverse=self.context['REVERSE_ARCHIVE_ORDER'])
# and generate the output :)
# order the categories per name
self.categories = list(self.categories.items())
self.categories.sort(reverse=self.settings.get('REVERSE_CATEGORY_ORDER'))
self._update_context(('articles', 'dates', 'tags', 'categories'))
def generate_output(self, writer):

View file

@ -18,6 +18,7 @@ _DEFAULT_CONFIG = {'PATH': None,
'FALLBACK_ON_FS_DATE': True,
'CSS_FILE': 'main.css',
'REVERSE_ARCHIVE_ORDER': False,
'REVERSE_CATEGORY_ORDER': False,
'KEEP_OUTPUT_DIRECTORY': False,
'CLEAN_URLS': False, # use /blah/ instead /blah.html in urls
'RELATIVE_URLS': True,

View file

@ -6,6 +6,7 @@ SITEURL = 'http://blog.notmyidea.org'
GITHUB_URL = 'http://github.com/ametaireau/'
DISQUS_SITENAME = "blog-notmyidea"
PDF_GENERATOR = False
REVERSE_CATEGORY_ORDER = True
LINKS = (('Biologeek', 'http://biologeek.org'),
('Filyb', "http://filyb.info/"),