[[PageOutline(2-5,Contents,pullout)]] = Trac Layout Recipe This is a recipe explaining how to reproduce the official edgewall.org site layout and design using SiteHtml and SiteStyleCss. The layout described below is ideal for Trac setups where one organization (e.g. Edgewall Software) offers multiple projects (e.g. Trac, Bitten, Genshi, etc.). == Genshi `site.html` Template for Trac < 1.3.2 #Genshi The first step is to prepare a `site.html` template that will be used by all projects. There are two ways to specify a `site.html` template for an environment: 1. Set the `templates_dir` in the `[inherit]` section of each `trac.ini` to a shared directory (e.g. `/path/to/common/templates`), and save the `site.html` file in that directory. The `templates_dir` may also be specified in a [TracIni#GlobalConfiguration global configuration] that is included in each environment's configuration through the `file` option in the `[inherit]` section of `trac.ini`. 1. Copy the `site.html` file to the `templates` directory of all environments, or better yet, create a symlink in all directories to a single common location. A reference `site.html` template may be found in the `templates` directory of the [attachment:TracLayoutRecipe.zip zip archive] attached to this page. The reference file is documented inline, so here is an abbreviated overview of the template: - It begins by adding a [#SiteCss CSS file] to the '''head''' -- make sure to update the URL if needed for your setup. - It includes a list of '''topnav''' items as quick-jumps between projects -- make sure to modify it to your specific project-list, as it is hardcoded. - It includes a '''left box''' and '''right box''' that will appear on the left-hand side and right-hand side of each page. You can use these boxes for whatever you want (e.g. quick links, Google ads, etc.). An example for a left box is included in `templates/site_leftbox.html` in the [attachment:TracLayoutRecipe.zip zip archive]. There is no right box in the example. - There is also a '''footer''' section for contact and copyright information, or anything else you like to put there. == Jinja2 `site_head.html`, `site_header.html`, and `site_footer.html` Templates for Trac >= 1.3.2 #Jinja2 TODO == Adjust the Site Style Sheet #SiteCss A reference `projects.css` stylesheet is included in the attached [attachment:TracLayoutRecipe.zip zip archive] (under the `css` directory), with the styles of the edgewall.org site. As with the site template, the stylesheet must also be accessible by each project environment. It may be placed in the directory specified by the `htdocs_dir` option in the `[inherit]` section of your `trac.ini` file, or in the project environment's `htdocs` directory. You may modify the stylesheet to meet your artistic taste. One important thing to note with respect to the `projects.css` file is that it refers to various images used for backgrounds, gradients, etc. The images are found in the `gfx` directory of the attached [attachment:TracLayoutRecipe.zip zip archive], but the `projects.css` file assumes that the images are available under the `../gfx` directory, where `..` refers to one level up relative to the directory in which the `projects.css` is located. Make sure that one of the following is met: 1. The `gfx` directory is visible, and is one level up relative to the `css` directory. 1. All references to `../gfx` in `projects.css` are replaced with a correct URL. Note that the paths in this context are URLs, not filesystem paths. ---- See also: TracInterfaceCustomization, SiteHtml, SiteStyleCss, #9629 (discussion that led to creation of this page)