当前位置: 首页>>代码示例>>Python>>正文


Python util.to_canonical函数代码示例

本文整理汇总了Python中realms.lib.util.to_canonical函数的典型用法代码示例。如果您正苦于以下问题:Python to_canonical函数的具体用法?Python to_canonical怎么用?Python to_canonical使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了to_canonical函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: feed

def feed(name):
    if current_app.config.get('PRIVATE_WIKI') and current_user.is_anonymous:
        return current_app.login_manager.unauthorized()
    cname = to_canonical(name)
    wiki_name = current_app.config['SITE_TITLE']
    start = 0
    length = int(request.args.get('length', 20))

    the_feed = AtomFeed(
        title="{} - Recent changes for page '{}'".format(wiki_name, cname),
        url=url_for('wiki.page', name=cname, _external=True),
        id="{}_pagefeed_{}".format(to_canonical(wiki_name), cname),
        feed_url=url_for('wiki.feed', name=cname, _external=True),
        generator=("Realms wiki", 'https://github.com/scragg0x/realms-wiki', __version__)
    )

    page = g.current_wiki.get_page(cname)
    items = list(itertools.islice(page.history, start, start + length))  # type: list[dict]

    for item in items:
        the_feed.add(
            title="Commit '{}'".format(item['sha']),
            content=item['message'],
            url=url_for('wiki.commit', name=name, sha=item['sha'], _external=True),
            id="{}/{}".format(item['sha'], cname),
            author=item['author'],
            updated=datetime.fromtimestamp(item['time'])
        )

    response = make_response((the_feed.to_string(), {'Content-type': 'application/atom+xml; charset=utf-8'}))
    response.add_etag()
    return response.make_conditional(request)
开发者ID:scragg0x,项目名称:realms-wiki,代码行数:32,代码来源:views.py

示例2: create

def create(name):
    if request.method == 'POST':
        cname = to_canonical(request.form['name'])

        if cname in app.config['WIKI_LOCKED_PAGES']:
            return redirect(url_for("wiki.create"))

        if not cname:
            return redirect(url_for("wiki.create"))

        g.current_wiki.write_page(request.form['name'],
                                  request.form['content'],
                                  message=request.form['message'],
                                  create=True,
                                  username=current_user.username)
    else:
        cname = to_canonical(name) if name else ""
        if cname and g.current_wiki.get_page(cname):
            # Page exists, edit instead
            return redirect(url_for('wiki.edit', name=cname))

        g.assets['js'].append('editor.js')
        return render_template('wiki/edit.html',
                               name=cname,
                               content="",
                               info={})
开发者ID:tobegit3hub,项目名称:realms-wiki,代码行数:26,代码来源:views.py

示例3: edit

def edit(name):
    data = g.current_wiki.get_page(name)
    cname = to_canonical(name)
    if request.method == 'POST':
        edit_cname = to_canonical(request.form['name'])

        if edit_cname in app.config['WIKI_LOCKED_PAGES']:
            return redirect(url_for(app.config['ROOT_ENDPOINT']))

        if edit_cname != cname.lower():
            g.current_wiki.rename_page(cname, edit_cname)

        g.current_wiki.write_page(edit_cname,
                                  request.form['content'],
                                  message=request.form['message'],
                                  username=current_user.username)
    else:
        if data:
            name = remove_ext(data['name'])
            content = data.get('data')
            g.assets['js'].append('editor.js')
            return render_template('wiki/edit.html',
                                   name=name,
                                   content=content,
                                   info=data.get('info'),
                                   sha=data.get('sha'),
                                   partials=data.get('partials'))
        else:
            return redirect(url_for('wiki.create', name=cname))
开发者ID:tobegit3hub,项目名称:realms-wiki,代码行数:29,代码来源:views.py

示例4: edit

def edit(name):
    data = wiki.get_page(name)
    cname = to_canonical(name)
    if request.method == 'POST':
        edit_cname = to_canonical(request.form['name'])

        if edit_cname in config.LOCKED:
            return redirect(url_for(config.ROOT_ENDPOINT))

        if edit_cname.lower() != cname.lower():
            wiki.rename_page(cname, edit_cname)

        """
        wiki.write_page(edit_cname,
                        request.form['content'],
                        message=request.form['message'],
                        username=current_user.username)"""
    else:
        if data:
            name = remove_ext(data['name'])

            content = data.get('data')
            g.assets['js'].append('editor.js')
            return render_template('wiki/edit.html', name=name, content=content, partials=data.get('partials'))
        else:
            return redirect(url_for('wiki.create', name=cname))
开发者ID:darioodiaz,项目名称:realms-wiki,代码行数:26,代码来源:views.py

示例5: page_write

def page_write(name):
    cname = to_canonical(name)

    if not cname:
        return dict(error=True, message="Invalid name")

    if not current_app.config.get("ALLOW_ANON") and current_user.is_anonymous():
        return dict(error=True, message="Anonymous posting not allowed"), 403

    if request.method == "POST":
        # Create
        if cname in current_app.config.get("WIKI_LOCKED_PAGES"):
            return dict(error=True, message="Page is locked"), 403

        sha = g.current_wiki.write_page(
            cname,
            request.form["content"],
            message=request.form["message"],
            create=True,
            username=current_user.username,
            email=current_user.email,
        )

    elif request.method == "PUT":
        edit_cname = to_canonical(request.form["name"])

        if edit_cname in current_app.config.get("WIKI_LOCKED_PAGES"):
            return dict(error=True, message="Page is locked"), 403

        if edit_cname != cname.lower():
            g.current_wiki.rename_page(cname, edit_cname)

        sha = g.current_wiki.write_page(
            edit_cname,
            request.form["content"],
            message=request.form["message"],
            username=current_user.username,
            email=current_user.email,
        )

        return dict(sha=sha)

    else:
        # DELETE
        if cname in current_app.config.get("WIKI_LOCKED_PAGES"):
            return dict(error=True, message="Page is locked"), 403

        sha = g.current_wiki.delete_page(name, username=current_user.username, email=current_user.email)

    return dict(sha=sha)
开发者ID:juhosa,项目名称:realms-wiki,代码行数:50,代码来源:views.py

示例6: page_write

def page_write(name):
    cname = to_canonical(name)

    if not cname:
        return dict(error=True, message="Invalid name")

    if not current_app.config.get('ALLOW_ANON') and current_user.is_anonymous():
        return dict(error=True, message="Anonymous posting not allowed"), 403

    if request.method == 'POST':
        # Create
        if cname in current_app.config.get('WIKI_LOCKED_PAGES'):
            return dict(error=True, message="Page is locked"), 403

        sha = g.current_wiki.write_page(cname,
                                        request.form['content'],
                                        message=request.form['message'],
                                        create=True,
                                        username=current_user.username,
                                        email=current_user.email)

    elif request.method == 'PUT':
        edit_cname = to_canonical(request.form['name'])

        if edit_cname in current_app.config.get('WIKI_LOCKED_PAGES'):
            return dict(error=True, message="Page is locked"), 403

        if edit_cname != cname:
            g.current_wiki.rename_page(cname, edit_cname)

        sha = g.current_wiki.write_page(edit_cname,
                                        request.form['content'],
                                        message=request.form['message'],
                                        username=current_user.username,
                                        email=current_user.email)

        return dict(sha=sha)

    elif request.method == 'DELETE':
        # DELETE
        if cname in current_app.config.get('WIKI_LOCKED_PAGES'):
            return dict(error=True, message="Page is locked"), 403

        sha = g.current_wiki.delete_page(cname,
                                         username=current_user.username,
                                         email=current_user.email)

    return dict(sha=sha)
开发者ID:derks,项目名称:realms-wiki,代码行数:48,代码来源:views.py

示例7: _build_sidebar

def _build_sidebar(path = ""):
    items = g.current_wiki.get_index()
    if path:
        path = to_canonical(path) + "/"
    # append always as first element the back link (go up by one level of directory)
    parts = path.split("/")
    # build the link for the back button in the sidebar
    back_link = "/_index/" + "/".join( parts[0:(len(parts) - 2)] )
    sidebar = [ dict(name = 'Back', dir = False, link = back_link) ]
    # get the tree for the current directory (the files belonging to the current subdir plus the subdir of level 1)
    for item in _tree_index(items, path=path):
        name = ''
        link = ''
        # if we are analyzing a directory 
        if item['dir']:
            # the name is the last word before the last '/' (we have to take the last but one because the returned name has the form /sub1/sub2/sub3/, 
            # if we would take the last the result will be '')
            name = item["name"].split('/')[-2]
            # append the home keyword in order to redirect the user at tjhehomepage of the chosen subdir
            link = "/_index/" + item["name"]
        # if we are analyzing a file
        else:
            # the name i simly the last word after the last "/""
            name = item["name"].split('/')[-1]
            link = "/" + item["name"]          
        sidebar.append(dict(name = name, dir = item['dir'], link = link))
    return sidebar   
开发者ID:Seba0691,项目名称:realms-wiki,代码行数:27,代码来源:views.py

示例8: write_page

    def write_page(self, name, content, message=None, create=False, username=None, email=None):
        """Write page to git repo

        :param name: Name of page.
        :param content: Content of page.
        :param message: Commit message.
        :param create: Perform git add operation?
        :param username: Commit Name.
        :param email: Commit Email.
        :return: Git commit sha1.
        """

        cname = to_canonical(name)
        filename = cname_to_filename(cname)

        with open(self.path + "/" + filename, 'w') as f:
            f.write(content)

        if create:
            self.gittle.add(filename)

        if not message:
            message = "Updated %s" % name

        username, email = self._get_user(username, email)

        ret = self.gittle.commit(name=username,
                                 email=email,
                                 message=message,
                                 files=[filename])

        cache.delete(cname)

        return ret
开发者ID:gazpachoking,项目名称:realms-wiki,代码行数:34,代码来源:models.py

示例9: write_page

    def write_page(self, name, content, message=None, create=False, username=None, email=None):
        def escape_repl(m):
            if m.group(1):
                return "```" + escape(m.group(1)) + "```"

        def unescape_repl(m):
            if m.group(1):
                return "```" + unescape(m.group(1)) + "```"

        cname = to_canonical(name)

        # prevents p tag from being added, we remove this later
        content = "<div>" + content + "</div>"
        content = re.sub(r"```(.*?)```", escape_repl, content, flags=re.DOTALL)

        tree = lxml.html.fromstring(content)

        cleaner = Cleaner(remove_unknown_tags=False, kill_tags=set(["style"]), safe_attrs_only=False)
        tree = cleaner.clean_html(tree)

        content = lxml.html.tostring(tree, encoding="utf-8", method="html")

        # remove added div tags
        content = content[5:-6]

        # FIXME this is for block quotes, doesn't work for double ">"
        content = re.sub(r"(\n&gt;)", "\n>", content)
        content = re.sub(r"(^&gt;)", ">", content)

        # Handlebars partial ">"
        content = re.sub(r"\{\{&gt;(.*?)\}\}", r"{{>\1}}", content)

        # Handlebars, allow {{}} inside HTML links
        content = content.replace("%7B", "{")
        content = content.replace("%7D", "}")

        content = re.sub(r"```(.*?)```", unescape_repl, content, flags=re.DOTALL)

        filename = self.cname_to_filename(cname)
        with open(self.path + "/" + filename, "w") as f:
            f.write(content)

        if create:
            self.repo.add(filename)

        if not message:
            message = "Updated %s" % name

        if not username:
            username = self.default_committer_name

        if not email:
            email = self.default_committer_email

        ret = self.repo.commit(name=username, email=email, message=message, files=[filename])

        cache.delete(cname)

        return ret
开发者ID:hihihippp,项目名称:realms-wiki,代码行数:59,代码来源:models.py

示例10: create

def create(name):
    cname = to_canonical(name) if name else ""
    if cname and g.current_wiki.get_page(cname):
        # Page exists, edit instead
        return redirect(url_for("wiki.edit", name=cname))

    g.assets["js"].append("editor.js")
    return render_template("wiki/edit.html", name=cname, content="", info={})
开发者ID:juhosa,项目名称:realms-wiki,代码行数:8,代码来源:views.py

示例11: revert

def revert():
    name = request.form.get('name')
    commit = request.form.get('commit')
    cname = to_canonical(name)
    wiki.revert_page(name, commit, message="Reverting %s" % cname,
                     username=current_user.username)
    flash('Page reverted', 'success')
    return redirect(url_for('wiki.page', name=cname))
开发者ID:kjk,项目名称:realms-wiki,代码行数:8,代码来源:views.py

示例12: commit

def commit(name, sha):
    cname = to_canonical(name)

    data = wiki.get_page(cname, sha=sha)
    if data:
        return render_template('wiki/page.html', name=name, page=data, commit=sha)
    else:
        return redirect(url_for('wiki.create', name=cname))
开发者ID:darioodiaz,项目名称:realms-wiki,代码行数:8,代码来源:views.py

示例13: index

def index(path):
    if current_app.config.get('PRIVATE_WIKI') and current_user.is_anonymous():
        return current_app.login_manager.unauthorized()

    items = g.current_wiki.get_index()
    if path:
        path = to_canonical(path) + "/"

    return render_template('wiki/index.html', index=_tree_index(items, path=path), path=path)
开发者ID:derks,项目名称:realms-wiki,代码行数:9,代码来源:views.py

示例14: commit

def commit(name, sha):
    cname = to_canonical(name)

    data = g.current_wiki.get_page(cname, sha=sha)

    if not data:
        abort(404)

    return render_template('wiki/page.html', name=name, page=data, commit=sha)
开发者ID:Standfestgit,项目名称:realms-wiki,代码行数:9,代码来源:views.py

示例15: page

def page(name):
    cname = to_canonical(name)
    if cname != name:
        return redirect(url_for('wiki.page', name=cname))

    data = g.current_wiki.get_page(cname)
    if data:
        return render_template('wiki/page.html', name=cname, page=data, partials=data.get('partials'))
    else:
        return redirect(url_for('wiki.create', name=cname))
开发者ID:tobegit3hub,项目名称:realms-wiki,代码行数:10,代码来源:views.py


注:本文中的realms.lib.util.to_canonical函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。