Add MOTD display to hgweb and hgwebdir.
authorColin McMillen <mcmillen@cs.cmu.edu>
Thu, 27 Apr 2006 22:11:13 -0700
changeset 2148 c72e618c1204
parent 2147 b7225adb2e0b
child 2149 43ce1c17e644
Add MOTD display to hgweb and hgwebdir. The hgweb "footer" template now has space for an optional message of the day (MOTD). This is used in two contexts: 1) On the hgwebdir index page 2) On various pages of each individual repo For both cases, the MOTD is read out of an entry named "motd" in the [web] section of a config file -- the only difference is which file is used. For #1, you need to add the section to hgweb.config; for #2, you need to add to the repo's .hgrc file. I suggest something like this: [web] motd = <p>To download these repositories, <a href="http://www.selenic.com/mercurial">get Mercurial</a> and then type something like:</p><p><pre>hg clone http://gs3080.sp.cs.cmu.edu/hg.cgi/cpmpy</pre></p>You can also click the Download links to get an archive of the latest revision. An online sample is available here: http://gs3080.sp.cs.cmu.edu/hg.cgi
mercurial/hgweb.py
templates/footer.tmpl
--- a/mercurial/hgweb.py
+++ b/mercurial/hgweb.py
@@ -727,7 +727,9 @@ class hgweb(object):
             yield self.t("header", **map)
 
         def footer(**map):
-            yield self.t("footer", **map)
+            yield self.t("footer",
+                         motd=self.repo.ui.config("web", "motd", ""),
+                         **map)
 
         def expand_form(form):
             shortcuts = {
@@ -1006,6 +1008,7 @@ class hgwebdir(object):
         def cleannames(items):
             return [(name.strip(os.sep), path) for name, path in items]
 
+        self.motd = ""
         if isinstance(config, (list, tuple)):
             self.repos = cleannames(config)
         elif isinstance(config, dict):
@@ -1015,6 +1018,8 @@ class hgwebdir(object):
             cp = ConfigParser.SafeConfigParser()
             cp.read(config)
             self.repos = []
+            if cp.has_section('web') and cp.has_option('web', 'motd'):
+                self.motd = cp.get('web', 'motd')
             if cp.has_section('paths'):
                 self.repos.extend(cleannames(cp.items('paths')))
             if cp.has_section('collections'):
@@ -1032,7 +1037,7 @@ class hgwebdir(object):
             yield tmpl("header", **map)
 
         def footer(**map):
-            yield tmpl("footer", **map)
+            yield tmpl("footer", motd=self.motd, **map)
 
         m = os.path.join(templater.templatepath(), "map")
         tmpl = templater.templater(m, templater.common_filters,
--- a/templates/footer.tmpl
+++ b/templates/footer.tmpl
@@ -1,3 +1,4 @@
+#motd#
 <div class="logo">
 powered by<br/>
 <a href="http://www.selenic.com/mercurial/">mercurial</a>