hg site extension
 
(Arne Babenhauserheide)
2014-02-09: Add markdown-parsing of the readme.

Add markdown-parsing of the readme.

diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -524,8 +524,8 @@ div.screenshots img{
 #shortlog a:hover, #branches a:hover, #tags a:hover, #bookmarks a:hover, #incoming a:hover, #outgoing a:hover, #log a{
     text-decoration:underline;
 }
-#intro>pre{
-    color:#353535;font:normal 23px/25px Palatino,"Palatino Linotype",serif;text-rendering:optimizeLegibility;font-style:italic;padding-left:25px;padding-right:25px;padding-bottom:25px;padding-top:20px;/*background:#eeeeee;border:solid thin lightgray;border-radius:25px;*/
+#intro{
+    color:#353535;font:normal 23px/25px Palatino,"Palatino Linotype",serif;text-rendering:optimizeLegibility;font-style:italic;padding-left:50px;padding-right:50px;padding-bottom:20px;padding-top:15px;/*background:#eeeeee;border:solid thin lightgray;border-radius:25px;*/
 }
 #readme>pre{
     background:#fdfdfd;color:#353535;font:normal 18px/25px Palatino,"Palatino Linotype",serif;text-rendering:optimizeLegibility;
@@ -704,9 +704,17 @@ def parsereadme(filepath, truncated=Fals
         readme = r.read()
     # TODO: Markdown parsing belongs here.
     if truncated:
-        return "<pre markdown=\"1\" style=\"white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;\">" + "\n".join(readme.splitlines()[:6]) + "</pre>"
-    else: 
-        return "<pre markdown=\"1\" style=\"white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;\">" + readme + "</pre>"
+        text = "\n".join(readme.splitlines()[:6])
+    else:
+        text = readme
+    try: # to use markdown if we can
+        import markdown
+        html = markdown.markdown(
+            unicode(text, encoding="utf-8"), 
+            extensions=["markdown.extensions.extra"]).encode("utf-8")
+        return html
+    except ImportError:
+        return "<pre markdown=\"1\" style=\"white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;\">" + text + "</pre>"
 
 def overviewlogstring(ui, repo, revs, template=templates["commitlog"]): 
     """Get the string for a log of the given revisions for the overview page."""
@@ -763,13 +771,7 @@ def writeoverview(ui, repo, target, name
             readme = parsereadme(os.path.join(repo.root, f))
             readme_intro = parsereadme(os.path.join(repo.root, f), truncated=True)
             overview += "<div id='intro'>"
-            try: # to use markdown if we can
-                import markdown
-                overview += markdown.markdown(
-                    unicode(readme_intro, encoding="utf-8"), 
-                    extensions=["markdown.extensions.extra"]).encode("utf-8")
-            except ImportError:
-                overview += readme_intro
+            overview += readme_intro
             overview += "</div>"
             break
     
@@ -838,13 +840,7 @@ def writeoverview(ui, repo, target, name
     # add the full readme
     ui.debug("[staticsite] writeoverview: readme\n")
     overview += "<div id='readme'><h2>"+_("Readme")+"</h2>\n"
-    try: # to use markdown if we can
-        import markdown
-        overview += markdown.markdown(
-            unicode(readme, encoding="utf-8"), 
-            extensions=["markdown.extensions.extra"]).encode("utf-8")
-    except ImportError:
-        overview += readme
+    overview += readme
     overview += "</div>"
     
     # finish the overview