From 1d74de2559a96b48b05c4ebeab7fc13acc9f5302 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Tue, 21 Dec 2010 00:21:29 +0300 Subject: [PATCH] Added another option CLEAN_URLS, to use generated files with mod_rewrite and to show nice urls to the end user. --- pelican/contents.py | 13 ++++++++++--- pelican/generators.py | 4 ++-- pelican/settings.py | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/pelican/contents.py b/pelican/contents.py index cc869625..1ecced30 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -31,11 +31,18 @@ class Page(object): if not hasattr(self, 'slug'): self.slug = slugify(self.title) - if not hasattr(self, 'url'): + if not hasattr(self, 'save_as'): if self.in_default_lang: - self.url = '%s.html' % self.slug + self.save_as = '%s.html' % self.slug + clean_url = '%s/' % self.slug else: - self.url = '%s-%s.html' % (self.slug, self.lang) + self.save_as = '%s-%s.html' % (self.slug, self.lang) + clean_url = '%s-%s/' % (self.slug, self.lang) + + if settings.get('CLEAN_URLS', False): + self.url = clean_url + else: + self.url = self.save_as if filename: self.filename = filename diff --git a/pelican/generators.py b/pelican/generators.py index 59b3866e..88579c26 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -129,7 +129,7 @@ class ArticlesGenerator(Generator): write('category/%s.html' % cat, templates['category'], self.context, category=cat, articles=self.categories[cat]) for article in chain(self.translations, self.articles): - write('%s' % article.url, + write(article.save_as, templates['article'], self.context, article=article, category=article.category) @@ -211,7 +211,7 @@ class PagesGenerator(Generator): def generate_output(self, writer): templates = self.get_templates() for page in chain(self.translations, self.pages): - writer.write_file('pages/%s' % page.url, templates['page'], + writer.write_file('pages/%s' % page.save_as, templates['page'], self.context, page=page) diff --git a/pelican/settings.py b/pelican/settings.py index 9e294b05..dba11906 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -19,6 +19,7 @@ _DEFAULT_CONFIG = {'PATH': None, 'CSS_FILE': 'main.css', 'REVERSE_ARCHIVE_ORDER': False, 'KEEP_OUTPUT_DIRECTORY': False, + 'CLEAN_URLS': False, # use /blah/ instead /blah.html in urls } def read_settings(filename):