def show_post_by_pid(self, pid): rst = RstParser() if pid < 1 or pid > len(self.posts): self.show_pages() return self.text += '<h2><a class="permalink" href="/blog/cleanurl/' + str( self.posts[pid - 1].cleanurl) + '">' self.text += self.posts[pid - 1].title + "</a></h2>\n" self.text += "<i>" + self.posts[pid - 1].date + "</i>\n" self.text += rst.parse(self.posts[pid - 1].text) self.text += """<div class="pages"><ul>""" if pid > 1: self.text += '<li><a href="/blog/id/1"><<</a></li>' self.text += '<li><a href="/blog/id/' + str(pid - 1) + '"><</a></li>' if pid < len(self.posts): self.text += '<li><a href="/blog/id/' + str(pid + 1) + '">></a></li>' self.text += '<li><a href="/blog/id/' + str(len( self.posts)) + '">>></a></li>' self.text += '<li><a href="/blog/all">all posts</a></li>' self.text += '<li><a href="/blog/rss.xml">rss</a></li>' self.text += """</ul></div>"""
def show_rss(self): rst = RstParser() item_template_string = """ <item> <title>${title}</title> <link>${url}</link> <guid>${guid}</guid> <pubDate>${date}</pubDate> <description> ${text} </description> </item> """ item_template = Template(item_template_string) items = [] i = 1 for post in self.posts: post_dict = {} post_dict['title'] = post.title # post_dict['text'] = rst.parse(post.text).replace("”", # """).replace("“", """) post_dict['text'] = post.abstract post_dict['date'] = post.date post_dict['url'] = CONFIG_DOMAIN + "blog/cleanurl/" + post.cleanurl post_dict['guid'] = CONFIG_DOMAIN + "blog/id/" + str(i) item_text = item_template.safe_substitute(post_dict) items.append(item_text) i += 1 self.text += "\n".join(reversed(items))
def show_post_by_cleanurl(self, url): rst = RstParser() post = filter(lambda p: url == p.cleanurl, self.posts) if not post: self.show_pages() else: self.show_post_by_pid(post[0].pid)
def show_pages(self, p=1): rst = RstParser() i = 0 first = (p-1)*self.page_limit last = p*self.page_limit for post in reversed(self.posts): if first <= i and i < last: self.text += '<h2><a class="permalink" href="/blog/cleanurl/' self.text += post.cleanurl + '">' + post.title + '</a></h2>\n' self.text += "<i>" + post.date + "</i>\n" self.text += rst.parse(post.text) else: pass i += 1 pages = (len(self.posts)+1)/self.page_limit self.text += """<div class="pages">Pages:<ul>""" if p != 1: self.text += '<li><a href="/blog/page/1"><<</a></li>' self.text += '<li><a href="/blog/page/' self.text += str(p-1) self.text += '"><</a></li>' for x in range(pages+1)[1:]: if x == p: self.text += "<li><b>" + str(x) + "</b></li>" else: self.text += """<li><a href="/blog/page/""" self.text += str(x) self.text += '">' + str(x) + '</a></li>' if p < pages: self.text += '<li><a href="/blog/page/' self.text += str(p+1) self.text += '">></a></li>' self.text += '<li><a href="/blog/page/' self.text += str(pages) self.text += '">>></a></li>' self.text += '<li><a href="/blog/all">all posts</a></li>' self.text += '<li><a href="/blog/rss.xml">rss</a></li>' self.text += """</ul></div>"""
def show_pages(self, p=1): rst = RstParser() i = 0 first = (p - 1) * self.page_limit last = p * self.page_limit for post in reversed(self.posts): if first <= i and i < last: self.text += '<h2><a class="permalink" href="/blog/cleanurl/' self.text += post.cleanurl + '">' + post.title + '</a></h2>\n' self.text += "<i>" + post.date + "</i>\n" self.text += rst.parse(post.text) else: pass i += 1 pages = (len(self.posts) + 1) / self.page_limit self.text += """<div class="pages">Pages:<ul>""" if p != 1: self.text += '<li><a href="/blog/page/1"><<</a></li>' self.text += '<li><a href="/blog/page/' self.text += str(p - 1) self.text += '"><</a></li>' for x in range(pages + 1)[1:]: if x == p: self.text += "<li><b>" + str(x) + "</b></li>" else: self.text += """<li><a href="/blog/page/""" self.text += str(x) self.text += '">' + str(x) + '</a></li>' if p < pages: self.text += '<li><a href="/blog/page/' self.text += str(p + 1) self.text += '">></a></li>' self.text += '<li><a href="/blog/page/' self.text += str(pages) self.text += '">>></a></li>' self.text += '<li><a href="/blog/all">all posts</a></li>' self.text += '<li><a href="/blog/rss.xml">rss</a></li>' self.text += """</ul></div>"""
def show_post_by_pid(self, pid): rst = RstParser() if pid < 1 or pid > len(self.posts): self.show_pages() return self.text += '<h2><a class="permalink" href="/blog/cleanurl/' + str(self.posts[pid-1].cleanurl) + '">' self.text += self.posts[pid-1].title + "</a></h2>\n" self.text += "<i>" + self.posts[pid-1].date + "</i>\n" self.text += rst.parse(self.posts[pid-1].text) self.text += """<div class="pages"><ul>""" if pid > 1: self.text += '<li><a href="/blog/id/1"><<</a></li>' self.text += '<li><a href="/blog/id/' + str(pid-1) + '"><</a></li>' if pid < len(self.posts): self.text += '<li><a href="/blog/id/' + str(pid+1) + '">></a></li>' self.text += '<li><a href="/blog/id/' + str(len(self.posts)) + '">>></a></li>' self.text += '<li><a href="/blog/all">all posts</a></li>' self.text += '<li><a href="/blog/rss.xml">rss</a></li>' self.text += """</ul></div>"""