(arne)
2012-06-04: added css ids to all elements for easier styling. added css ids to all elements for easier styling.
diff --git a/site.py b/site.py
--- a/site.py
+++ b/site.py
@@ -42,7 +42,7 @@ templates = {
<title>{title}</title>
</head>
<body>
-<h1>{reponame}</h1>
+<h1 id="maintitle">{reponame}</h1>
""",
"srchead": """<!DOCTYPE html>
<html><head>
@@ -83,11 +83,14 @@ def contentequals(filepath, content):
except IOError: return False # file does not exist. Empty != not existing.
# TODO: check: return True if content is None?
-def parsereadme(filepath):
+def parsereadme(filepath, truncated=False):
"""Parse the readme file"""
with open(filepath) as r:
- return "<pre>" + r.read() + "</pre>"
-
+ readme = r.read()
+ if truncated:
+ return "<pre>" + "\n".join(readme.splitlines()[:5]) + "</pre>"
+ else:
+ return "<pre>" + readme + "</pre>"
def overviewlogstring(ui, repo, revs, template=templates["commitlog"]):
"""Get the string for a log of the given revisions for the overview page."""
@@ -103,20 +106,24 @@ def overviewlogstring(ui, repo, revs, te
def writeoverview(ui, repo, target, name):
"""Create the overview page"""
overview = ""
+ # get the title
overview += templates["head"].replace("{reponame}", name).replace("{title}", name)
# add a short identifier from the first line of the readme, if it
# exists # TODO: Parse different types of readme files
readme = name
for f in os.listdir(repo.root):
if f.lower().startswith("readme"):
- readme = parsereadme(f)
- overview += "\n".join(readme.splitlines()[:5])
+ readme = parsereadme(join(repo.root, f))
+ readme_intro = parsereadme(join(repo.root, f), truncated=True)
+ overview += "<div id='intro'>"
+ overview += readme_intro
+ overview += "</div>"
break
# now the links to the log and the files.
- overview += "</pre>\n<p><a href='commits'>changelog</a> | <a href='src/" + repo["tip"].hex() + "/'>files</a></p>"
+ overview += "\n<p id='nav'><a href='commits'>changelog</a> | <a href='src/" + repo["tip"].hex() + "/'>files</a></p>"
# now add the 5 most recent log entries
# divert all following ui output to a string, so we can just use standard functions
- overview += "\n<h2>Changes (<a href='commits'>full changelog</a>)</h2>\n"
+ overview += "\n<div id='shortlog'><h2>Changes (<a href='commits'>full changelog</a>)</h2>\n"
ui.pushbuffer()
t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
t.use_template(templates["commitlog"].replace("{relativepath}", ""))
@@ -124,6 +131,7 @@ def writeoverview(ui, repo, target, name
ctx = repo.changectx(str(-c))
t.show(ctx)
overview += ui.popbuffer()
+ overview += "</div>"
# Add branch, bookmark and tag information, if they exist.
branches = []
@@ -140,7 +148,7 @@ def writeoverview(ui, repo, target, name
except AttributeError:
bookmarks = []
if branches: # add branches
- overview += "\n<h2>Branches</h2>\n"
+ overview += "\n<div id='branches'><h2>Branches</h2>\n"
overview += overviewlogstring(ui, repo, branches,
template=templates["commitlog"].replace(
"{branches}", "XXXXX").replace(
@@ -149,24 +157,27 @@ def writeoverview(ui, repo, target, name
"{tags}", "XXXXX").replace(
"{date|shortdate}", "{tags}").replace(
"XXXXX", "{date|shortdate}"))
+ overview += "</div>"
if len(tags) > 1:
- overview += "\n<h2>Tags</h2>\n"
+ overview += "\n<div id='tags'><h2>Tags</h2>\n"
overview += overviewlogstring(ui, repo, [tags[t] for t in tags if t != "tip"],
template=templates["commitlog"].replace(
"{tags}", "XXXXX").replace(
"{date|shortdate}", "{tags}").replace(
"XXXXX", "{date|shortdate}"))
+ overview += "</div>"
if len(bookmarks):
- overview += "\n<h2>Bookmarks</h2>\n"
+ overview += "\n<div id='bookmarks'><h2>Bookmarks</h2>\n"
overview += overviewlogstring(ui, repo, bookmarks.values(),
template=templates["commitlog"].replace(
"{bookmarks}", "XXXXX").replace(
"{date|shortdate}", "{bookmarks}").replace(
"XXXXX", "{date|shortdate}"))
-
+ overview += "</div>"
# add the full readme
- overview += "<h2>"+_("Readme")+"</h2>\n"
+ overview += "<div id='readme'><h2>"+_("Readme")+"</h2>\n"
overview += readme
+ overview += "</div>"
# finish the overview
overview += templates["foot"]