#!/usr/bin/python import publish from z3publish import Z3Page, ZopeOrgPage, Z3ReleaseResource, Site, Project def createWebSite(path): """Create the website from various resources, and save. path - directory to store the created website. """ root = Project('z3 base', 'Z3 Base', 'Zope 3 Base', root_site, 'layout/layout.html', 'z3-banner.png') site = Site(path, root, 'style.css') five = Project( 'five', 'Five', 'Five: Zope 3 in Zope 2', five_site, 'layout/layout.html', 'five-banner.png') site.registerProject(five) cmfonfive = Project( 'cmfonfive', 'CMFonFive', 'CMFonFive: CMF and Five integration', cmfonfive_site, 'layout/layout.html', 'five-banner.png') site.registerProject(cmfonfive) modzope = Project( 'modzope', 'modzope', 'modzope: Zope 3 integrated into Apache', modzope_site, 'layout/layout.html') site.registerProject(modzope) sqlos = Project( 'sqlos', 'sqlos', 'sqlos: SQLObject in Zope 3', sqlos_site, 'layout/layout.html') site.registerProject(sqlos) # construct site site.construct() # save site to disk site.save() def root_site(site, project): # register essential resources in root of site site.registerResources( [ publish.FileResource('resource/style.css'), publish.FileResource('resource/z3-banner.png'), publish.FileResource('resource/h4_rightmenu.gif'), publish.FileResource('resource/pattern.png'), ], '.', ) # register pages for root of site nav_links = [ ('Z3 main', 'index.html'), ('Project submission guidelines', 'submission_guidelines.html'), ] quick_links = [ ('svn (the code)', 'http://codespeak.net/svn/z3/'), ('z3 mailing list', 'http://codespeak.net/mailman/listinfo/z3'), ('z3-checkins mailing list', 'http://codespeak.net/mailman/listinfo/z3-checkins'), ('z3 base issue tracker', 'http://codespeak.net/issues/z3/'), ] site.registerPages( [ publish.FileRstPage('text/index.txt', encoding='ascii'), publish.FileRstPage('text/submission_guidelines.txt', encoding='ascii'), ], site.getRootLayouter(), '.', quick_links=quick_links, nav_links=nav_links, project_links=site.getMainProjectLinks(short_title=False)[1:] ) # redirect old five page # layouter for redirect pages redirect_layouter = publish.FileSimpleLayouter( 'layout/redirect.html', style='style.css', banner=project.getBannerLink(), site_links=site.getProjectLinks(), ) site.registerPages( [ publish.SimplePage('five'), ], redirect_layouter, '.', url='http://codespeak.net/z3/five', ) def five_site(site, project): # special banner resource for five site.registerResources( [ publish.FileResource('resource/five-banner.png'), ], project.getName(), ) nav_links = [ ('Five main', 'index.html'), ('Features', 'features.html'), ('Changes', 'CHANGES.html'), ('Installation', 'INSTALL.html'), ('Manual', 'manual.html'), ('Directives', 'directives.html'), ('I18n', 'i18n.html'), ('Local sites', 'localsite.html'), ('Events', 'event.html'), ] quick_links = [ ('svn (the code)', 'http://svn.zope.org/Products.Five/'), ('z3-five mailing list', 'http://codespeak.net/mailman/listinfo/z3-five'), ('z3-checkins mailing list', 'http://codespeak.net/mailman/listinfo/z3-checkins'), ('Five 1.2.6 release', 'release/Five-1.2.6.tgz'), ('Five 1.3.9 release', 'release/Five-1.3.9.tgz'), ('Five 1.4.4 release', 'release/Five-1.4.4.tgz'), ('Five 1.5.5 release', 'release/Five-1.5.5.tgz'), ] site.registerReleases([ Z3ReleaseResource( 'Five', 'svn://svn.zope.org/repos/main/Products.Five/tags/1.2.6'), Z3ReleaseResource( 'Five', 'svn://svn.zope.org/repos/main/Products.Five/tags/1.3.9'), Z3ReleaseResource( 'Five', 'svn://svn.zope.org/repos/main/Products.Five/tags/1.4.4'), Z3ReleaseResource( 'Five', 'svn://svn.zope.org/repos/main/Products.Five/tags/1.5.5'), ], project.getName()) from z3publish import Z3TestPage site.registerPages([ ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/main.txt', 'index'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/features.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/directives.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/manual.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/i18n.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/localsite.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'doc/event.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'CHANGES.txt'), ZopeOrgPage('Products.Five/tags/1.5.5', 'INSTALL.txt'),], site.getProjectLayouter(project), project.getName(), nav_links=nav_links, quick_links=quick_links, ) def cmfonfive_site(site, project): site.registerResources( [ publish.FileResource('resource/five-banner.png'), ], project.getName(), ) nav_links = [ ('CMFonFive main', 'index.html'), ] quick_links = [ ('svn (the code)', 'http://codespeak.net/svn/z3/CMFonFive/'), ] pages = [Z3Page('CMFonFive/trunk', 'README.txt', 'index'),] # You can test the pages before checking them in. Replace the # above with the uncommented code below and rerun. Don't forget to # change back! #from z3publish import Z3TestPage #pages = [Z3TestPage('/the/path/to/the/file/on/disk/CMFonFive/README.txt', # 'index'),] site.registerReleases([ Z3ReleaseResource('CMFonFive', 'http://codespeak.net/svn/z3/CMFonFive/tag/CMFonFive-1.0.1'), Z3ReleaseResource('CMFonFive', 'http://codespeak.net/svn/z3/CMFonFive/tag/CMFonFive-1.1.1'), Z3ReleaseResource('CMFonFive', 'http://codespeak.net/svn/z3/CMFonFive/tag/CMFonFive-1.2.1'), Z3ReleaseResource('CMFonFive', 'http://codespeak.net/svn/z3/CMFonFive/tag/CMFonFive-1.3.3'), Z3ReleaseResource('CMFonFive', 'http://codespeak.net/svn/z3/CMFonFive/tag/CMFonFive-1.3.4'), ], project.getName()) site.registerPages( pages, site.getProjectLayouter(project), project.getName(), nav_links=nav_links, quick_links=quick_links, ) def sqlos_site(site, project): nav_links = [ ('sqlos main', 'index.html'), ] quick_links = [ ('Mailing List', '/mailman/listinfo/z3-sqlos'), ('Latest Releases', 'http://cheeseshop.python.org/pypi/sqlos/'), ('svn (the code)', 'http://codespeak.net/svn/z3/sqlos'), ('sip (example application)', 'http://sampleinventory.sf.net'), ] site.registerPages( [ Z3Page('sqlos/trunk/src/sqlos', 'README.txt', 'index'), ], site.getProjectLayouter(project), project.getName(), nav_links = nav_links, quick_links = quick_links, ) def modzope_site(site, project): nav_links = [ ('modzope main', 'index.html'), ] quick_links = [ ('svn (the code)', 'http://codespeak.net/svn/z3/modzope/'), ] site.registerPages( [ Z3Page('modzope/trunk', 'README.txt', 'index'), ], site.getProjectLayouter(project), project.getName(), nav_links=nav_links, quick_links=quick_links, ) def main(): import sys try: path = sys.argv[1] except IndexError: print "usage: mkwebsite.py website_path" return createWebSite(path) if __name__ == '__main__': main()