mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 15:57:43 +03:00
[PATCH] Propagate the template map though recursively
This patch allows propagates the template map though recursively though all the templates. This allows for some hgweb template cleanup patches as well as it makes writing new skins/themes for hgweb much much easier. (I'm planing to write several basic ones.)
This commit is contained in:
parent
9d8a9110b0
commit
37c3c833cd
@ -70,7 +70,7 @@ def template(tmpl, filters = {}, **map):
|
|||||||
if m:
|
if m:
|
||||||
yield tmpl[:m.start(0)]
|
yield tmpl[:m.start(0)]
|
||||||
v = map.get(m.group(1), "")
|
v = map.get(m.group(1), "")
|
||||||
v = callable(v) and v() or v
|
v = callable(v) and v(**map) or v
|
||||||
|
|
||||||
fl = m.group(2)
|
fl = m.group(2)
|
||||||
if fl:
|
if fl:
|
||||||
@ -224,14 +224,8 @@ class hgweb:
|
|||||||
tn = None
|
tn = None
|
||||||
yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn)
|
yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn)
|
||||||
|
|
||||||
def header(self):
|
|
||||||
yield self.t("header")
|
|
||||||
|
|
||||||
def footer(self):
|
|
||||||
yield self.t("footer")
|
|
||||||
|
|
||||||
def changelog(self, pos):
|
def changelog(self, pos):
|
||||||
def changenav():
|
def changenav(**map):
|
||||||
def seq(factor = 1):
|
def seq(factor = 1):
|
||||||
yield 1 * factor
|
yield 1 * factor
|
||||||
yield 3 * factor
|
yield 3 * factor
|
||||||
@ -254,7 +248,7 @@ class hgweb:
|
|||||||
|
|
||||||
yield self.t("naventry", label="tip")
|
yield self.t("naventry", label="tip")
|
||||||
|
|
||||||
def changelist():
|
def changelist(**map):
|
||||||
parity = (start - end) & 1
|
parity = (start - end) & 1
|
||||||
cl = self.repo.changelog
|
cl = self.repo.changelog
|
||||||
l = [] # build a list in forward order for efficiency
|
l = [] # build a list in forward order for efficiency
|
||||||
@ -295,7 +289,7 @@ class hgweb:
|
|||||||
|
|
||||||
def search(self, query):
|
def search(self, query):
|
||||||
|
|
||||||
def changelist():
|
def changelist(**map):
|
||||||
cl = self.repo.changelog
|
cl = self.repo.changelog
|
||||||
count = 0
|
count = 0
|
||||||
qw = query.lower().split()
|
qw = query.lower().split()
|
||||||
@ -361,7 +355,7 @@ class hgweb:
|
|||||||
files.append(self.t("filenodelink",
|
files.append(self.t("filenodelink",
|
||||||
filenode = hex(mf.get(f, nullid)), file = f))
|
filenode = hex(mf.get(f, nullid)), file = f))
|
||||||
|
|
||||||
def diff():
|
def diff(**map):
|
||||||
yield self.diff(p1, n, None)
|
yield self.diff(p1, n, None)
|
||||||
|
|
||||||
yield self.t('changeset',
|
yield self.t('changeset',
|
||||||
@ -382,7 +376,7 @@ class hgweb:
|
|||||||
fl = self.repo.file(f)
|
fl = self.repo.file(f)
|
||||||
count = fl.count()
|
count = fl.count()
|
||||||
|
|
||||||
def entries():
|
def entries(**map):
|
||||||
l = []
|
l = []
|
||||||
parity = (count - 1) & 1
|
parity = (count - 1) & 1
|
||||||
|
|
||||||
@ -457,7 +451,7 @@ class hgweb:
|
|||||||
t = float(cs[2].split(' ')[0])
|
t = float(cs[2].split(' ')[0])
|
||||||
mfn = cs[0]
|
mfn = cs[0]
|
||||||
|
|
||||||
def annotate():
|
def annotate(**map):
|
||||||
parity = 1
|
parity = 1
|
||||||
last = None
|
last = None
|
||||||
for r, l in fl.annotate(n):
|
for r, l in fl.annotate(n):
|
||||||
@ -527,7 +521,7 @@ class hgweb:
|
|||||||
short = os.path.basename(remain)
|
short = os.path.basename(remain)
|
||||||
files[short] = (f, n)
|
files[short] = (f, n)
|
||||||
|
|
||||||
def filelist():
|
def filelist(**map):
|
||||||
parity = 0
|
parity = 0
|
||||||
fl = files.keys()
|
fl = files.keys()
|
||||||
fl.sort()
|
fl.sort()
|
||||||
@ -563,7 +557,7 @@ class hgweb:
|
|||||||
i = self.repo.tagslist()
|
i = self.repo.tagslist()
|
||||||
i.reverse()
|
i.reverse()
|
||||||
|
|
||||||
def entries():
|
def entries(**map):
|
||||||
parity = 0
|
parity = 0
|
||||||
for k,n in i:
|
for k,n in i:
|
||||||
yield self.t("tagentry",
|
yield self.t("tagentry",
|
||||||
@ -583,7 +577,7 @@ class hgweb:
|
|||||||
cs = cl.read(n)
|
cs = cl.read(n)
|
||||||
mf = self.repo.manifest.read(cs[0])
|
mf = self.repo.manifest.read(cs[0])
|
||||||
|
|
||||||
def diff():
|
def diff(**map):
|
||||||
yield self.diff(p1, n, file)
|
yield self.diff(p1, n, file)
|
||||||
|
|
||||||
yield self.t("filediff",
|
yield self.t("filediff",
|
||||||
@ -600,6 +594,12 @@ class hgweb:
|
|||||||
# find tag, changeset, file
|
# find tag, changeset, file
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
def header(**map):
|
||||||
|
yield self.t("header", **map)
|
||||||
|
|
||||||
|
def footer(**map):
|
||||||
|
yield self.t("footer", **map)
|
||||||
|
|
||||||
self.refresh()
|
self.refresh()
|
||||||
args = cgi.parse()
|
args = cgi.parse()
|
||||||
|
|
||||||
@ -618,8 +618,8 @@ class hgweb:
|
|||||||
self.t = templater(m, self.filters,
|
self.t = templater(m, self.filters,
|
||||||
{"url":url,
|
{"url":url,
|
||||||
"repo":self.reponame,
|
"repo":self.reponame,
|
||||||
"header":self.header(),
|
"header":header,
|
||||||
"footer":self.footer(),
|
"footer":footer,
|
||||||
})
|
})
|
||||||
|
|
||||||
if not args.has_key('cmd') or args['cmd'][0] == 'changelog':
|
if not args.has_key('cmd') or args['cmd'][0] == 'changelog':
|
||||||
|
Loading…
Reference in New Issue
Block a user