コード例 #1
0
ファイル: test_article.py プロジェクト: AcrDijon/henet
    def test_end_of_line(self):

        # we want to make sure we don't generate windows-style EOL
        article = Article()
        article.set_metadata("title", u"ok")
        article["body"] = u"hey\r\nyou"

        result = article.render()
        self.assertTrue(u"\r\n" not in result)
        self.assertTrue(u"hey\nyou" in result)
コード例 #2
0
ファイル: article.py プロジェクト: AcrDijon/henet
def create_article_or_page():
    data = dict(request.POST.decode())
    category = u'resultats'
    page = None

    for key, val in data.items():
        if key.startswith(u'cat_add_'):
            category = key[len(u'cat_add_'):]
            break
        if key.startswith(u'page_add_'):
            page = key[len(u'page_add_'):]
            break

    title = data.get('title', u'').strip()
    if len(title) == 0:
        # nope
        app.add_alert(_('A title is required.'))
        if page is None:
            redirect('/category/%s' % category)
        else:
            redirect('/page/%s' % page)
        return

    article = Article()
    article['title'] = data['title']
    article['body'] = data.get('content', DEFAULT_BODY)
    date = datetime.datetime.now()
    article.set_metadata('date', date)

    if page is None:
        # it's an article
        cat_info = dict(app.vars['categories'])[category]
        article.set_metadata('category', cat_info['title'])
        path = cat_info['path']
    else:
        # it's a page
        path = dict(app.vars['pages'])[page]['path']

    # XXX we might want to put it under the year directory
    i = 1
    filename = slugify(article['title'])
    fullfilename = os.path.join(path, filename)
    while os.path.exists(fullfilename + '.rst'):
        fullfilename += str(i)
        i += 1

    with open(fullfilename + '.rst', 'w') as f:
        f.write(article.render().encode('utf8'))

    emit(EVENT_CREATED_CONTENT, article_path=fullfilename)
    if page is None:
        redirect('/category/%s/%s' % (category, filename + '.rst'))
    else:
        redirect('/page/%s/%s' % (page, filename + '.rst'))