add partials support
This commit is contained in:
parent
036434dd7a
commit
bea662e2e7
7 changed files with 44 additions and 3 deletions
|
@ -4,6 +4,7 @@ import lxml.html
|
|||
from lxml.html.clean import Cleaner
|
||||
import ghdiff
|
||||
import gittle.utils
|
||||
import yaml
|
||||
from gittle import Gittle
|
||||
from dulwich.repo import NotGitRepository
|
||||
from werkzeug.utils import escape, unescape
|
||||
|
@ -105,6 +106,9 @@ class Wiki():
|
|||
content = re.sub(r"(\n>)", "\n>", content)
|
||||
content = re.sub(r"(^>)", ">", content)
|
||||
|
||||
# Handlebars partial ">"
|
||||
content = re.sub(r"\{\{>(.*?)\}\}", r'{{>\1}}', content)
|
||||
|
||||
content = re.sub(r"```(.*?)```", unescape_repl, content, flags=re.DOTALL)
|
||||
|
||||
cname = to_canonical(name)
|
||||
|
@ -157,6 +161,15 @@ class Wiki():
|
|||
# HEAD doesn't exist yet
|
||||
return None
|
||||
|
||||
def get_meta(self, content):
|
||||
if not content.startswith("---"):
|
||||
return None
|
||||
meta_end = re.search("\n(\.{3}|\-{3})", content)
|
||||
if not meta_end:
|
||||
return None
|
||||
return yaml.safe_load(content[0:meta_end.start()])
|
||||
#return [content[0:meta_end.start()], content[meta_end.end():]]
|
||||
|
||||
def compare(self, name, old_sha, new_sha):
|
||||
old = self.get_page(name, sha=old_sha)
|
||||
new = self.get_page(name, sha=new_sha)
|
||||
|
|
|
@ -60,10 +60,15 @@ def edit(name):
|
|||
username=current_user.username)
|
||||
else:
|
||||
if data:
|
||||
partials = {}
|
||||
meta = wiki.get_meta(data['data'])
|
||||
if meta and 'import' in meta:
|
||||
for partial_name in meta['import']:
|
||||
partials[partial_name] = wiki.get_page(partial_name)
|
||||
name = remove_ext(data['name'])
|
||||
content = data['data']
|
||||
g.assets['js'].append('editor.js')
|
||||
return render_template('wiki/edit.html', name=name, content=content)
|
||||
return render_template('wiki/edit.html', name=name, content=content, partials=partials)
|
||||
else:
|
||||
return redirect(url_for('wiki.create', name=cname))
|
||||
|
||||
|
@ -102,8 +107,14 @@ def page(name):
|
|||
return redirect(url_for('wiki.page', name=cname))
|
||||
|
||||
data = wiki.get_page(cname)
|
||||
meta = wiki.get_meta(data['data'])
|
||||
|
||||
partials = {}
|
||||
if meta and 'import' in meta:
|
||||
for partial_name in meta['import']:
|
||||
partials[partial_name] = wiki.get_page(partial_name)
|
||||
|
||||
if data:
|
||||
return render_template('wiki/page.html', name=cname, page=data)
|
||||
return render_template('wiki/page.html', name=cname, page=data, partials=partials)
|
||||
else:
|
||||
return redirect(url_for('wiki.create', name=cname))
|
Loading…
Add table
Add a link
Reference in a new issue