Factorize hooks management (only overwrite)
Manage link attribute for title tag Update copyright and CSS
This commit is contained in:
parent
7ea8fd9280
commit
e31795efb2
|
@ -24,11 +24,7 @@ class Archive(Index):
|
|||
def generate(self, blog, src, output):
|
||||
from dynastie.models import Post, Blog
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'navigation' : self.createNavigation,
|
||||
'archive' : self.createArchive,
|
||||
'tags' : self.createTags,
|
||||
'replace' : self.createReplace}
|
||||
self.hooks['archive'] = self.createArchive
|
||||
|
||||
dom = self.parseTemplate(blog, src, output, 'archive', 'archive')
|
||||
if dom is None: return self.report
|
||||
|
|
|
@ -24,11 +24,7 @@ class Category(Index):
|
|||
def generate(self, blog, src, output):
|
||||
from dynastie.models import Post, Blog, Category
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'navigation' : self.createNavigation,
|
||||
'category' : self.createCategory,
|
||||
'tags' : self.createTags,
|
||||
'replace' : self.createReplace}
|
||||
self.hooks['category'] = self.createCategory
|
||||
|
||||
dom = self.parseTemplate(blog, src, output, 'category', 'category')
|
||||
if dom is None: return self.report
|
||||
|
|
|
@ -11,11 +11,22 @@ class Index(DynastieGenerator):
|
|||
cur_page = 0
|
||||
nb_pages = 0
|
||||
cur_post = 0
|
||||
cur_post_obj = None
|
||||
posts_per_page = 0
|
||||
filename = 'index'
|
||||
dirname = ''
|
||||
blog = None
|
||||
|
||||
def __init__(self, hash_posts=None):
|
||||
DynastieGenerator.__init__(self, hash_posts)
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'title' : self.createTitle,
|
||||
'navigation' : self.createNavigation,
|
||||
'recents' : self.createRecents,
|
||||
'tags' : self.createTags,
|
||||
'replace' : self.createReplace}
|
||||
|
||||
def createReplace(self, posts, dom, root, replace_elem):
|
||||
if not replace_elem.hasAttribute('div_name'):
|
||||
self.addError('No attribute div_name for a replace tag')
|
||||
|
@ -82,9 +93,20 @@ class Index(DynastieGenerator):
|
|||
|
||||
return res
|
||||
|
||||
def createPost(self, post, dom, post_elem, root):
|
||||
def createTitle(self, posts, dom, root, title_elem):
|
||||
create_link = (title_elem.getAttribute('link') == '1')
|
||||
post = self.cur_post_obj
|
||||
if create_link == True:
|
||||
node = self.createElement(dom, 'title')
|
||||
node.appendChild(self.createLinkElem(dom, post.getPath(), post.title))
|
||||
else:
|
||||
node = self.createElement(dom, 'title', post.title)
|
||||
|
||||
root.replaceChild(node, title_elem)
|
||||
|
||||
def createPost(self, posts, dom, post_elem, root):
|
||||
post = self.cur_post_obj
|
||||
values = {}
|
||||
values['title'] = self.createLinkElem(dom, post.getPath(), post.title)
|
||||
values['author'] = post.author.first_name + ' ' + post.author.last_name
|
||||
values['date'] = post.creation_date.strftime('%A, %d %B %Y %H:%m')
|
||||
values['post_content'] = ''
|
||||
|
@ -108,9 +130,9 @@ class Index(DynastieGenerator):
|
|||
|
||||
while True:
|
||||
start = post_content.find('<dyn:code')
|
||||
end = post_content.find('</dyn:code>')
|
||||
|
||||
if start == -1: break
|
||||
end = post_content.find('</dyn:code>')
|
||||
|
||||
if end < start:
|
||||
self.addError('Invalid <dyn:code> tags in ' + filename)
|
||||
|
@ -138,12 +160,15 @@ class Index(DynastieGenerator):
|
|||
|
||||
def createPosts(self, posts, dom, root, node):
|
||||
posts_elem = self.createElement(dom, 'posts')
|
||||
create_link = (node.getAttribute('link') == '1')
|
||||
for i in range(0, self.posts_per_page):
|
||||
post_elem = self.createElement(dom, 'post')
|
||||
if len(posts) > self.cur_post:
|
||||
self.createPost(posts[self.cur_post], dom, post_elem, node)
|
||||
self.cur_post_obj = posts[self.cur_post]
|
||||
self.createPost(posts, dom, post_elem, node)
|
||||
else:
|
||||
post_elem = self.createElement(dom, '', '<b>No posts yet</b>')
|
||||
self.cur_post_obj = None
|
||||
posts_elem.appendChild(post_elem)
|
||||
|
||||
# Parse inner HTML
|
||||
|
@ -344,13 +369,6 @@ class Index(DynastieGenerator):
|
|||
def generate(self, blog, src, output):
|
||||
from dynastie.models import Post, Blog
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'navigation' : self.createNavigation,
|
||||
'recents' : self.createRecents,
|
||||
'tags' : self.createTags,
|
||||
'replace' : self.createReplace}
|
||||
|
||||
|
||||
dom = self.parseTemplate(blog, src, output, 'index')
|
||||
if dom is None: return self.report
|
||||
|
||||
|
|
|
@ -120,7 +120,9 @@ class Post(Index):
|
|||
def _createPost(self, post, dom, post_elem, root):
|
||||
import sys, traceback
|
||||
|
||||
self.createPost(post, dom, post_elem, root)
|
||||
self.cur_post_obj = post
|
||||
posts = [post]
|
||||
self.createPost(posts, dom, post_elem, root)
|
||||
|
||||
# Post are appended by index. Remove template
|
||||
post_nodes = dom.getElementsByTagNameNS(self.URI, 'post')
|
||||
|
@ -139,11 +141,12 @@ class Post(Index):
|
|||
|
||||
def _generate(self, blog, src, output, posts):
|
||||
import xml
|
||||
self.hooks = {'post' : self._createPost,
|
||||
'meta' : self.createMetas,
|
||||
'comments' : self.createComments,
|
||||
'replace' : self.createReplace,
|
||||
'tags' : self.createTags}
|
||||
|
||||
self.hooks['post'] = self._createPost
|
||||
self.hooks['meta'] = self.createMetas
|
||||
self.hooks['comments'] = self.createComments
|
||||
self.hooks['replace'] = self.createReplace
|
||||
del self.hooks['navigation']
|
||||
|
||||
self.blog = blog
|
||||
name = 'post'
|
||||
|
@ -217,6 +220,7 @@ class Post(Index):
|
|||
def preview(self, src, values):
|
||||
from dynastie.models import Blog
|
||||
|
||||
# Override all hooks
|
||||
self.hooks = {'post' : self.createPreview,
|
||||
'tags' : self.createTags}
|
||||
|
||||
|
|
|
@ -17,9 +17,6 @@ class Search(Index):
|
|||
|
||||
self.blog = blog
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'replace' : self.createReplace}
|
||||
|
||||
if not os.path.exists(src + '/_search.html'):
|
||||
self.addError('No _search.html found, exiting')
|
||||
return self.report
|
||||
|
|
|
@ -24,11 +24,7 @@ class Tag(Index):
|
|||
def generate(self, blog, src, output):
|
||||
from dynastie.models import Post, Blog, Tag
|
||||
|
||||
self.hooks = {'posts' : self.createPosts,
|
||||
'navigation' : self.createNavigation,
|
||||
'tag' : self.createTag,
|
||||
'tags' : self.createTags,
|
||||
'replace' : self.createReplace}
|
||||
self.hooks['tag'] = self.createTag
|
||||
|
||||
dom = self.parseTemplate(blog, src, output, 'tag', 'tag')
|
||||
if dom is None: return self.report
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Copyright © 2010-2012 Grégory Soutadé.<br/>
|
||||
Copyright © 2010-2013 Grégory Soutadé.<br/>
|
||||
All Rights Reserved.
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
Copyright © 2010-2012 Grégory Soutadé.<br/>
|
||||
Copyright © 2010-2013 Grégory Soutadé.<br/>
|
||||
All Rights Reserved.
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<dyn:base file="_base.html" block="content" xmlns:dyn="http://indefero.soutade.fr/p/dynastie">
|
||||
<dyn:posts limit="5">
|
||||
<div class="post_header">
|
||||
<dyn:title/>
|
||||
<dyn:title link="1"/>
|
||||
<div class="post_sub_header">
|
||||
<dyn:date/> | <div class="author_icon"> Écrit par <dyn:author/> </div>
|
||||
</div>
|
||||
|
|
|
@ -167,6 +167,28 @@ div.post > div.post_header
|
|||
padding-bottom:5px;
|
||||
}
|
||||
|
||||
div.post > div.post_header > div.title
|
||||
{
|
||||
display:block;
|
||||
text-decoration:none;
|
||||
margin: 0.2em 0;
|
||||
padding: 0;
|
||||
font-weight:normal;
|
||||
font-style:normal;
|
||||
letter-spacing:normal;
|
||||
word-spacing:normal;
|
||||
font-variant:normal;
|
||||
text-decoration:none;
|
||||
font-variant:normal;
|
||||
text-transform:none;
|
||||
text-align:left;
|
||||
text-indent:0;
|
||||
line-height:inherit;
|
||||
font-family: Verdana, Geneva, Arial, Helvetica, Sans-Serif;
|
||||
font-size: 26px;
|
||||
color: #181B0D;
|
||||
}
|
||||
|
||||
div.post > div.post_header > div.title > a
|
||||
{
|
||||
display:block;
|
||||
|
|
Loading…
Reference in New Issue
Block a user