Ejemplo n.º 1
0
def articles_detail_internal(req, article, **kwargs):
    if article.format == FORMAT_RST:
        article.perex = rst2html(article.perex)
        article.body = rst2html(article.body)

    if article.data.get('discussion', True):
        discussion = ArticleComment.list(req, article.id, Pager(limit=-1))
    else:
        discussion = []

    qid = randint(0, len(robot_questions)-1)
    question, answer = robot_questions[qid]
    return generate_page(req, "articles_detail.html", article=article,
                         discussion=discussion,
                         question=question,  answer=answer, qid=hex(qid),
                         staticmenu=req.cfg.get_static_menu(req),
                         styles=('tiny-writer',), **kwargs)
Ejemplo n.º 2
0
def articles_rss(req):
    pager = Pager(limit=5, sort='desc', order='create_date')
    items = Article.list(req, pager, perex=True, public=1)
    for it in items:
        if it.format == FORMAT_RST:
            it.perex = rst2html(it.perex)
    return generate_page(req, "articles_rss.xml",
                         content_type="application/xml", pager=pager,
                         items=items, lang=get_lang(req), tzname=tzname,
                         webmaster=req.server_admin)
Ejemplo n.º 3
0
def articles_list_full(req, locale=None, tag=None):
    pager = Pager(limit=5, sort='desc', order='create_date')
    pager.bind(req.args)

    kwargs = {'locale': (locale, '')} if locale else {}
    items = Article.list(req, pager, perex=True, public=1, tag=tag, **kwargs)
    for it in items:
        if it.format == FORMAT_RST:
            it.perex = rst2html(it.perex)

    lang = locale if locale else get_lang(req)
    return generate_page(req, "articles_list.html", pager=pager, items=items,
                         lang=lang, staticmenu=req.cfg.get_static_menu(req))
Ejemplo n.º 4
0
def runtime_file(req):
    text = None
    if req.uri == '/':
        text = Page.text_by_name(req, 'index.html')
    elif req.uri.endswith('.html'):
        text = Page.text_by_name(req, req.uri[req.uri.rfind('/')+1:])
    else:       # without .html
        text = Page.text_by_name(req, req.uri[req.uri.rfind('/')+1:]+'.html')
    if text is None:
        text = Page.text_by_name(req, req.uri[req.uri.rfind('/')+1:]+'.rst')
        if text is None:
            raise SERVER_RETURN(state.HTTP_NOT_FOUND)
        text = rst2html(text)

    return generate_page(req, 'runtime_file.html', text=text, runtime=True)
Ejemplo n.º 5
0
    def regenerate(self, req):
        if req.cfg.pages_runtime:
            return              # not need where runtime is True
        with open(req.cfg.pages_source + '/' + self.name, 'r') as f:
            self.text = f.read().decode('utf-8')

        target = req.cfg.pages_out + '/' + self.name
        if self.format == FORMAT_RST:
            self.html = rst2html(self.text)
            target += '.html'

        with open(target + '.tmp', 'w+') as tmp:
            tmp.write(generate_page(
                req, "page_file.html", page=self,
                staticmenu=req.cfg.get_static_menu(req)).encode('utf-8'))
        rename(target + '.tmp', target)
Ejemplo n.º 6
0
    def save(self, req):
        source = req.cfg.pages_source + '/' + self.name
        with open(source + '.tmp', 'w+') as tmp:
            tmp.write(self.text.encode('utf-8'))
        if exists(source):      # backup old file
            backup = req.cfg.pages_history + '/' + self.name
            copyfile(source, backup + '.' + datetime.now().isoformat())
        rename(source + '.tmp', source)

        if req.cfg.pages_runtime:
            return              # not need when paeges are runtime generated

        target = req.cfg.pages_out + '/' + self.name
        if self.format == FORMAT_RST:
            self.html = rst2html(self.text)
            target += '.html'

        with open(target + '.tmp', 'w+') as tmp:
            tmp.write(generate_page(
                req, "page_file.html", page=self,
                staticmenu=req.cfg.get_static_menu(req)).encode('utf-8'))
        rename(target + '.tmp', target)