示例#1
0
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
示例#2
0
文件: app.py 项目: rim99/bottle-blog
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)