示例#1
0
def feed():
    """
    Generate atom feed
    """
    entries = parse_posts(0, C.feed_count)
    fg = FeedGenerator()
    fg.id(str(len(entries)))
    fg.title(C.title)
    fg.subtitle(C.subtitle)
    fg.language(C.language)
    fg.author(dict(name=C.author, email=C.email))
    fg.link(href=C.root_url, rel='alternate')
    fg.link(href=make_abs_url(C.root_url, 'feed'), rel='self')
    for entry in entries:
        fe = fg.add_entry()
        fe.id(entry.get('url'))
        fe.title(entry.get('title'))
        fe.published(entry.get('date'))
        fe.updated(entry.get('updated') or entry.get('date'))
        fe.link(href=make_abs_url(C.root_url, entry.get('url')), rel='alternate')
        fe.author(dict(name=entry.get('author'), email=entry.get('email')))
        fe.content(entry.get('body'))

    atom_feed = fg.atom_str(pretty=True)
    return atom_feed
示例#2
0
def feed():
    """
    Generate atom feed
    """
    entries = parse_posts(0, C.feed_count)
    fg = FeedGenerator()
    fg.id(str(len(entries)))
    fg.title(C.title)
    fg.subtitle(C.subtitle)
    fg.language(C.language)
    fg.author(dict(name=C.author, email=C.email))
    fg.link(href=C.root_url, rel='alternate')
    fg.link(href=make_abs_url(C.root_url, 'feed'), rel='self')
    for entry in entries:
        fe = fg.add_entry()
        fe.id(entry.get('url'))
        fe.title(entry.get('title'))
        fe.published(entry.get('date'))
        fe.updated(entry.get('updated') or entry.get('date'))
        fe.link(href=make_abs_url(C.root_url, entry.get('url')),
                rel='alternate')
        fe.author(dict(name=entry.get('author'), email=entry.get('email')))
        fe.content(entry.get('body'))

    atom_feed = fg.atom_str(pretty=True)
    return atom_feed
示例#3
0
def category(c):
    """
    Render category page
    """
    pg = {'category': c, 'entries': parse_posts(category=c)}
    if pg['entries']:
        return render_template('category.html', site=C, page=pg)
    else:
        return page_not_found()
示例#4
0
def tag(t):
    """
    Render tag page
    """
    pg = {'tag': t, 'entries': parse_posts(tag=t)}
    if pg['entries']:
        return render_template('tag.html', site=C, page=pg)
    else:
        return page_not_found()
示例#5
0
def category(c):
    """
    Render category page
    """
    pg = {
        'category': c,
        'entries': parse_posts(category=c)
    }
    if pg['entries']:
        return render_template('category.html', site=C, page=pg)
    else:
        return page_not_found()
示例#6
0
def tag(t):
    """
    Render tag page
    """
    pg = {
        'tag': t,
        'entries': parse_posts(tag=t)
    }
    if pg['entries']:
        return render_template('tag.html', site=C, page=pg)
    else:
        return page_not_found()
示例#7
0
def category(c):
    """
    Render category page
    """
    pg = {
        'archive_type': 'category',
        'archive_name': c,
        'entries': parse_posts(category=c, cut_by_read_more=C.get('support_read_more', False))
    }
    if pg['entries']:
        if should_return_json():
            return jsonify(dict(ok=True, site=C, page=pg))
        else:
            return render_template('category.html', site=C, page=pg)
    else:
        return page_not_found()
示例#8
0
def tag(t):
    """
    Render tag page
    """
    pg = {
        'archive_type': 'tag',
        'archive_name': t,
        'entries': parse_posts(tag=t, cut_by_read_more=C.get('support_read_more', False))
    }
    if pg['entries']:
        if should_return_json():
            return jsonify(dict(ok=True, site=C, page=pg))
        else:
            return render_template('tag.html', site=C, page=pg)
    else:
        return page_not_found()
示例#9
0
def post(year, month, day, name):
    """
    Render post
    """
    file_name = '-'.join((year, month, day, name))

    file_name_with_ext = file_name
    if os.path.exists(file_name + '.md') is not None:
        file_name_with_ext += '.md'
    elif os.path.exists(file_name + '.markdown') is not None:
        file_name_with_ext += '.markdown'
    else:
        return page_not_found()

    article = parse_posts(f_list=(file_name_with_ext,))[0]
    article['id_key'] = file_name
    article['absolute_url'] = make_abs_url(C.root_url, '/'.join(('post', year, month, day, name)))

    return render_template('post.html', site=C, page=article)
示例#10
0
def tag(t):
    """
    Render tag page
    """
    pg = {
        'archive_type':
        'tag',
        'archive_name':
        t,
        'entries':
        parse_posts(tag=t, cut_by_read_more=C.get('support_read_more', False))
    }
    if pg['entries']:
        if should_return_json():
            return jsonify(dict(ok=True, site=C, page=pg))
        else:
            return render_template('tag.html', site=C, page=pg)
    else:
        return page_not_found()
示例#11
0
def post(year, month, day, name):
    """
    Render post
    """
    file_name = '-'.join((year, month, day, name))

    ext = extension_of_markdown_file(os.path.join('posts', file_name))
    if ext is None:
        return page_not_found()

    file_name_with_ext = '.'.join((file_name, ext))

    article = parse_posts(f_list=(file_name_with_ext,))[0]
    article['id_key'] = file_name
    article['absolute_url'] = make_abs_url(C.root_url, '/'.join(('post', year, month, day, name)))

    if should_return_json():
        return jsonify(dict(ok=True, site=C, page=article))
    else:
        return render_template(article['layout'] + '.html', site=C, page=article)
示例#12
0
def post(year, month, day, name):
    """
    Render post
    """
    file_name = '-'.join((year, month, day, name))

    file_name_with_ext = file_name
    if os.path.exists(file_name + '.md') is not None:
        file_name_with_ext += '.md'
    elif os.path.exists(file_name + '.markdown') is not None:
        file_name_with_ext += '.markdown'
    else:
        return page_not_found()

    article = parse_posts(f_list=(file_name_with_ext, ))[0]
    article['id_key'] = file_name
    article['absolute_url'] = make_abs_url(
        C.root_url, '/'.join(('post', year, month, day, name)))

    return render_template('post.html', site=C, page=article)
示例#13
0
def category(c):
    """
    Render category page
    """
    pg = {
        'archive_type':
        'category',
        'archive_name':
        c,
        'entries':
        parse_posts(category=c,
                    cut_by_read_more=C.get('support_read_more', False))
    }
    if pg['entries']:
        if should_return_json():
            return jsonify(dict(ok=True, site=C, page=pg))
        else:
            return render_template('category.html', site=C, page=pg)
    else:
        return page_not_found()
示例#14
0
def post(year, month, day, name):
    """
    Render post
    """
    file_name = '-'.join((year, month, day, name))

    ext = extension_of_markdown_file(os.path.join('posts', file_name))
    if ext is None:
        return page_not_found()

    file_name_with_ext = '.'.join((file_name, ext))

    article = parse_posts(f_list=(file_name_with_ext, ))[0]
    article['id_key'] = file_name
    article['absolute_url'] = make_abs_url(
        C.root_url, '/'.join(('post', year, month, day, name)))

    if should_return_json():
        return jsonify(dict(ok=True, site=C, page=article))
    else:
        return render_template(article['layout'] + '.html',
                               site=C,
                               page=article)