[Checkins] SVN: zope.kgs/trunk/src/zope/kgs/ get changelog template setup with docutils content rendering.

Paul Carduner paulcarduner at gmail.com
Tue Jan 27 06:00:50 EST 2009


Log message for revision 95114:
  get changelog template setup with docutils content rendering.

Changed:
  U   zope.kgs/trunk/src/zope/kgs/site.py
  U   zope.kgs/trunk/src/zope/kgs/template.py
  U   zope.kgs/trunk/src/zope/kgs/templates/VERSION/CHANGES.html
  U   zope.kgs/trunk/src/zope/kgs/templates/index.html
  U   zope.kgs/trunk/src/zope/kgs/templates/master.pt

-=-
Modified: zope.kgs/trunk/src/zope/kgs/site.py
===================================================================
--- zope.kgs/trunk/src/zope/kgs/site.py	2009-01-27 10:49:10 UTC (rev 95113)
+++ zope.kgs/trunk/src/zope/kgs/site.py	2009-01-27 11:00:50 UTC (rev 95114)
@@ -21,6 +21,7 @@
   located to generate the site. The generated site is in that directory as
   well.
 """
+import docutils.core
 import logging
 import optparse
 import os
@@ -54,6 +55,13 @@
     return '%s/%s' % (version,
                       os.path.split(filename)[-1].split('.')[0] + '.html')
 
+def _getRenderedTxt(filename):
+    if not filename:
+        return ""
+    f = open(filename)
+    parts = docutils.core.publish_parts(source=f.read(), writer_name='html')
+    return parts['html_body']
+
 def generateData(src):
     versions = []
     for filename in os.listdir(src):
@@ -68,16 +76,22 @@
             if filename in os.listdir(path):
                 features.append({'url': '%s/%s' % (set.version, filename),
                                  'title': title})
+        versionData = {
+            'name': set.version,
+            'features': features,
+            'changelog': {
+                'url':_getRenderedFilename(set.version, set.changelog),
+                'html': _getRenderedTxt(set.changelog)},
+            'announcement': {
+                'url':_getRenderedFilename(set.version, set.announcement),
+                'html': _getRenderedTxt(set.announcement)},
+            }
 
-        versions.append(
-            {'name': set.version,
-             'features': features,
-             'changelog': _getRenderedFilename(set.version, set.changelog),
-             'announcement': _getRenderedFilename(set.version, set.announcement),
-             })
+        versions.append(versionData)
 
     return {'versions': sorted(versions, key=lambda x: x['name']),
-            'title': set.name}
+            'title': set.name,
+            'resourceDir':'resources'}
 
 def generateSite(siteDir, templateDir, force=False):
     # Create some important variables

Modified: zope.kgs/trunk/src/zope/kgs/template.py
===================================================================
--- zope.kgs/trunk/src/zope/kgs/template.py	2009-01-27 10:49:10 UTC (rev 95113)
+++ zope.kgs/trunk/src/zope/kgs/template.py	2009-01-27 11:00:50 UTC (rev 95114)
@@ -15,6 +15,7 @@
 """
 import os
 import shutil
+import copy
 import zope.pagetemplate.pagetemplatefile
 
 class Template(zope.pagetemplate.pagetemplatefile.PageTemplateFile):
@@ -30,7 +31,7 @@
             {'args': args,
              'nothing': None,
              'self': self,
-             'templates': self.templates
+             'templates': self.templates,
              })
         rval.update(self.pt_getEngine().getBaseNames())
         return rval
@@ -66,10 +67,15 @@
         elif filename == 'VERSION':
             for version in data['versions']:
                 versionDir = os.path.join(dst, version['name'])
-                generateSite(srcPath, versionDir, data, templates)
+                newData = copy.deepcopy(data)
+                newData['version'] = version
+                newData['resourceDir'] = '../%s' % newData['resourceDir']
+                generateSite(srcPath, versionDir, newData, templates)
         elif os.path.isdir(srcPath):
             if not os.path.exists(dstPath):
                 os.mkdir(dstPath)
-            generateSite(srcPath, dstPath, data, templates)
+            newData = copy.deepcopy(data)
+            newData['resourceDir'] = '../%s' % newData['resourceDir']
+            generateSite(srcPath, dstPath, newData, templates)
         else:
             shutil.copyfile(srcPath, dstPath)

Modified: zope.kgs/trunk/src/zope/kgs/templates/VERSION/CHANGES.html
===================================================================
--- zope.kgs/trunk/src/zope/kgs/templates/VERSION/CHANGES.html	2009-01-27 10:49:10 UTC (rev 95113)
+++ zope.kgs/trunk/src/zope/kgs/templates/VERSION/CHANGES.html	2009-01-27 11:00:50 UTC (rev 95114)
@@ -4,5 +4,9 @@
     <title metal:fill-slot="page-title">Changes</title>
   </head>
   <body>
+    <div metal:fill-slot="title">Version <span tal:replace="version/name"/> Change Log</div>
+    <div metal:fill-slot="content">
+      <div tal:replace="structure version/changelog/html"/>
+    </div>
   </body>
 </html>

Modified: zope.kgs/trunk/src/zope/kgs/templates/index.html
===================================================================
--- zope.kgs/trunk/src/zope/kgs/templates/index.html	2009-01-27 10:49:10 UTC (rev 95113)
+++ zope.kgs/trunk/src/zope/kgs/templates/index.html	2009-01-27 11:00:50 UTC (rev 95114)
@@ -12,13 +12,13 @@
           <a href="#">Version <span tal:replace="version/name">1</span></a>
           <ul class="level-two" style="display: none;">
 
-            <li tal:condition="version/announcement">
+            <li tal:condition="version/announcement/url">
               <a href="#"
-                 tal:attributes="href version/announcement">Announcement</a>
+                 tal:attributes="href version/announcement/url">Announcement</a>
             </li>
-            <li tal:condition="version/changelog">
+            <li tal:condition="version/changelog/url">
               <a href="#"
-                 tal:attributes="href version/changelog">Changelog</a>
+                 tal:attributes="href version/changelog/url">Changelog</a>
             </li>
             <li tal:repeat="feature version/features">
               <a href="#"

Modified: zope.kgs/trunk/src/zope/kgs/templates/master.pt
===================================================================
--- zope.kgs/trunk/src/zope/kgs/templates/master.pt	2009-01-27 10:49:10 UTC (rev 95113)
+++ zope.kgs/trunk/src/zope/kgs/templates/master.pt	2009-01-27 11:00:50 UTC (rev 95114)
@@ -3,7 +3,9 @@
       metal:define-macro="page">
   <head>
     <title metal:define-slot="page-title">Page Title</title>
-    <link rel="stylesheet" type="text/css" href="resources/style.css" />
+    <link rel="stylesheet" type="text/css"
+          href="resources/style.css"
+          tal:attributes="href string:${resourceDir}/style.css"/>
     <script type="text/javascript" language="Javascript"
             src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
     <script type="text/javascript" language="Javascript">
@@ -24,7 +26,7 @@
 
   </head>
   <body>
-    <h1 id="header" metal:define-slot="title">KGS</h1>
+    <h1 id="header"><span metal:define-slot="title">KGS</span></h1>
 
     <div id="left-hand-navigation">
       <!-- Main Menu -->



More information about the Checkins mailing list