def save_post(file, category=''): class HighlighterRenderer(HtmlRenderer): def blockcode(self, text, lang): if not lang: return '\n<pre><code>{}</code></pre>\n'.format( houdini.escape_html(text.strip())) lexer = get_lexer_by_name(lang, stripall=True) formatter = HtmlFormatter() return highlight(text, lexer, formatter) if category == '': print('No tag! Abort.') return rndr = HighlighterRenderer() md = Markdown(rndr, MARKDOWN_EXTENSIONS) with open(file, 'r', encoding='utf-8') as f: title = '' for line in f: title = line[1:] break content_html = (md(f.read())) blog_id = PurePosixPath(file).stem # use the filename without the extension as the blog_id new_blog = BlogPost(title, category, content_html, blog_id) old = BlogPost.query_by_id(blog_id) if isinstance(old, BlogPost): print("The same blog id already exists. \nOverwriting......") old.delete() else: print("New blog. Posting...") new_blog.save() print("Successfully posted.") return
def blogpost(blog_id): blog_post = BlogPost.query_by_id(blog_id) template = TEMPLATE_ENV.get_template('post.html') return template.render(post=blog_post)