I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 8e09d84d authored by str4d's avatar str4d
Browse files

Reworked meta dict usage to make blog templates easier to understand

Displayed dates in the blog templates are now all taken from meta['date'],
which can be set by the 'date' metatag in the blog post but defaults to the
date obtained from the post's slug (i.e. what subfolder the post is in).
parent 7e68f038
Branches
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ from i2p2www import BLOG_DIR ...@@ -11,7 +11,7 @@ from i2p2www import BLOG_DIR
SUPPORTED_METATAGS = { SUPPORTED_METATAGS = {
'author': u'I2P devs', 'author': u'I2P devs',
'category': None, 'category': None,
'date': u'1970-01-01', 'date': None,
'excerpt': u'', 'excerpt': u'',
} }
...@@ -20,11 +20,11 @@ SUPPORTED_METATAGS = { ...@@ -20,11 +20,11 @@ SUPPORTED_METATAGS = {
# Blog helper methods # Blog helper methods
def get_blog_feed_items(num=0): def get_blog_feed_items(num=0):
posts = get_blog_posts(num) posts = get_blog_posts(num, True)
items = [] items = []
for post in posts: for post in posts:
meta = post[3] meta = post[1]
parts = post[4] parts = post[2]
a = {} a = {}
a['title'] = parts['title'] a['title'] = parts['title']
a['content'] = meta['excerpt'] if len(meta['excerpt']) > 0 else parts['fragment'] a['content'] = meta['excerpt'] if len(meta['excerpt']) > 0 else parts['fragment']
...@@ -33,7 +33,7 @@ def get_blog_feed_items(num=0): ...@@ -33,7 +33,7 @@ def get_blog_feed_items(num=0):
items.append(a) items.append(a)
return items return items
def get_blog_posts(num=0): def get_blog_posts(num=0, return_parts=False):
""" """
Returns the latest #num valid posts sorted by date, or all slugs if num=0. Returns the latest #num valid posts sorted by date, or all slugs if num=0.
""" """
...@@ -43,10 +43,13 @@ def get_blog_posts(num=0): ...@@ -43,10 +43,13 @@ def get_blog_posts(num=0):
parts = render_blog_post(slug) parts = render_blog_post(slug)
if parts: if parts:
meta = get_metadata_from_meta(parts['meta']) meta = get_metadata_from_meta(parts['meta'])
date = get_date_from_slug(slug) meta['date'] = meta['date'] if meta['date'] else get_date_from_slug(slug)
titlepart = slug.rsplit('/', 1)[1] titlepart = slug.rsplit('/', 1)[1]
title = ' '.join(titlepart.split('_')) meta['title'] = ' '.join(titlepart.split('_'))
posts.append((slug, date, title, meta, parts)) if return_parts:
posts.append((slug, meta, parts))
else:
posts.append((slug, meta))
return posts return posts
def get_blog_slugs(num=0): def get_blog_slugs(num=0):
......
...@@ -2,7 +2,7 @@ from flask import abort, render_template, request ...@@ -2,7 +2,7 @@ from flask import abort, render_template, request
from werkzeug.contrib.atom import AtomFeed from werkzeug.contrib.atom import AtomFeed
from i2p2www import BLOG_POSTS_PER_PAGE from i2p2www import BLOG_POSTS_PER_PAGE
from i2p2www.blog.helpers import get_blog_posts, get_blog_feed_items, get_metadata_from_meta, render_blog_post from i2p2www.blog.helpers import get_blog_posts, get_blog_feed_items, get_date_from_slug, get_metadata_from_meta, render_blog_post
from i2p2www.helpers import Pagination, get_for_page from i2p2www.helpers import Pagination, get_for_page
...@@ -23,6 +23,7 @@ def blog_post(slug): ...@@ -23,6 +23,7 @@ def blog_post(slug):
if parts: if parts:
meta = get_metadata_from_meta(parts['meta']) meta = get_metadata_from_meta(parts['meta'])
meta['date'] = meta['date'] if meta['date'] else get_date_from_slug(slug)
# now just pass to simple template file and we are done # now just pass to simple template file and we are done
return render_template('blog/post.html', parts=parts, title=parts['title'], body=parts['fragment'], slug=slug, meta=meta) return render_template('blog/post.html', parts=parts, title=parts['title'], body=parts['fragment'], slug=slug, meta=meta)
else: else:
......
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
{% block content %} {% block content %}
<p>Some descriptive text.</p> <p>Some descriptive text.</p>
<ul id="posts"> <ul id="posts">
{% for post in posts %} {% for (slug, post) in posts %}
<li> <li>
<article> <article>
<header> <header>
<a href="{{ url_for('blog_post', slug=post[0]) }}">{{ post[2] }}</a> <a href="{{ url_for('blog_post', slug=slug) }}">{{ post.title }}</a>
</header> </header>
{%- if post[3].excerpt %} {%- if post.excerpt %}
<p>{{ post[3].excerpt }}</p> <p>{{ post.excerpt }}</p>
{%- endif %} {%- endif %}
<footer> <footer>
<ul> <ul>
<li>{{ post[1] }}</li> <li>{{ post.date }}</li>
<li>{{ post[3].author }}</li> <li>{{ post.author }}</li>
</ul> </ul>
</footer> </footer>
</article> </article>
......
<ul> <ul>
{% for post in blog_posts -%} {% for slug, post in blog_posts -%}
<li>{{ post[1] }} - <a href="{{ url_for('blog_post', slug=post[0]) }}">{{ post[2] }}</a></li> <li>{{ post.date }} - <a href="{{ url_for('blog_post', slug=slug) }}">{{ post.title }}</a></li>
{%- endfor %} {%- endfor %}
<li><a href="{{ url_for('blog_index', lang=g.lang) }}"><em>More blog posts&hellip;</em></a></li> <li><a href="{{ url_for('blog_index', lang=g.lang) }}"><em>More blog posts&hellip;</em></a></li>
</ul> </ul>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment