本文整理汇总了Python中realms.lib.util.to_canonical函数的典型用法代码示例。如果您正苦于以下问题:Python to_canonical函数的具体用法?Python to_canonical怎么用?Python to_canonical使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了to_canonical函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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>)", "\n>", content)
content = re.sub(r"(^>)", ">", content)
# Handlebars partial ">"
content = re.sub(r"\{\{>(.*?)\}\}", 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
示例16: 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:Seba0691,项目名称:realms-wiki,代码行数:11,代码来源:views.py
示例17: commit
def commit(name, sha):
if current_app.config.get('PRIVATE_WIKI') and current_user.is_anonymous():
return current_app.login_manager.unauthorized()
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:derks,项目名称:realms-wiki,代码行数:12,代码来源:views.py
示例18: 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) + "/"
items = filter(lambda x: x['name'].startswith(path), items)
if not request.args.get('flat', '').lower() in ['yes', '1', 'true']:
items = _tree_index(items, path=path)
return render_template('wiki/index.html', index=items, path=path)
开发者ID:scragg0x,项目名称:realms-wiki,代码行数:12,代码来源:views.py
示例19: page
def page(name):
cname = to_canonical(name)
print("Name: %s, cname: %s" % (name, cname))
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:goodotcom,项目名称:realms-wiki,代码行数:12,代码来源:views.py
示例20: revert
def revert():
name = request.form.get('name')
commit = request.form.get('commit')
cname = to_canonical(name)
if cname in config.LOCKED:
flash("Page is locked")
return redirect(url_for(config.ROOT_ENDPOINT))
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:darioodiaz,项目名称:realms-wiki,代码行数:13,代码来源:views.py
注:本文中的realms.lib.util.to_canonical函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论