Year and month in URL. Issue #145

This commit is contained in:
mviera 2011-07-27 01:35:06 +02:00
commit 068a3d2f1d
4 changed files with 18 additions and 1 deletions

View file

@ -61,6 +61,10 @@ Setting name (default value) what does it do?
on the output path "static". By default,
pelican will copy the 'images' folder to the
output folder.
`PERMALINK_STRUCTURE` (``'/%Y/%m/'``) Allows to render URLs for articles sorted by date,
in case you specify a format as specified in the
example. Also, you can specify any other word
that you want.
================================================ =====================================================

View file

@ -7,6 +7,7 @@ from collections import defaultdict
import os
import math
import random
import urlparse
from jinja2 import Environment, FileSystemLoader, PrefixLoader, ChoiceLoader
from jinja2.exceptions import TemplateNotFound
@ -159,6 +160,17 @@ class ArticlesGenerator(Generator):
# in writer, articles pass first
article_template = self.get_template('article')
for article in chain(self.translations, self.articles):
add_to_url = u''
if self.settings.has_key('PERMALINK_STRUCTURE'):
permalink_structure = self.settings.get('PERMALINK_STRUCTURE')
permalink_structure = permalink_structure.lstrip('/')
try:
add_to_url = article.date.strftime(permalink_structure)
except:
pass
article.url = urlparse.urljoin(add_to_url, article.url)
article.save_as = urlparse.urljoin(add_to_url, article.save_as)
write(article.save_as,
article_template, self.context, article=article,
category=article.category)

View file

@ -42,6 +42,7 @@ _DEFAULT_CONFIG = {'PATH': None,
'DEFAULT_METADATA': (),
'FILES_TO_COPY': (),
'DEFAULT_STATUS': 'published',
'PERMALINK_STRUCTURE': ''
}
def read_settings(filename):

View file

@ -3,7 +3,7 @@
{% block content %}
<section id="content" class="body">
<article>
<header> <h1 class="entry-title"><a href="{{ article.url }}"
<header> <h1 class="entry-title"><a href="{{ pagename }}"
rel="bookmark" title="Permalink to {{ article.title }}">{{ article.title
}}</a></h1> {% include 'twitter.html' %} </header>
<div class="entry-content">