Commits

Anonymous committed 1e8979b

0.12.2dev: updated the TracGuide with the edits on t.e.o up to now.

  • Participants
  • Parent commits f4bc17a
  • Branches 0.12-stable

Comments (0)

Files changed (21)

File trac/wiki/default-pages/TracAdmin

 
 === `trac-admin <targetdir> initenv` === #initenv
 
-This subcommand is very important as it's the one used to create a TracEnvironment in the specified `<targetdir>`. That directory must not exists prior to the call.
+This subcommand is very important as it's the one used to create a TracEnvironment in the specified `<targetdir>`. That directory must not exist prior to the call.
 
 [[TracAdminHelp(initenv)]]
 

File trac/wiki/default-pages/TracFastCgi

 After doing this, we will just have to create a new rule managed by the SCGI handler to access Trac. It can be created in a new virtual server, trac.example.net for instance, and will only need two rules. The '''default''' one will use the SCGI handler associated to the previously created information source.
 The second rule will be there to serve the few static files needed to correctly display the Trac interface. Create it as ''Directory rule'' for ''/chrome/common'' and just set it to the ''Static files'' handler and with a ''Document root'' that points to the appropriate files: ''/usr/share/trac/htdocs/''
 
+Note:\\
+If the tracd process fails to start up, and cherokee displays a 503 error page, you might be missing the [http://trac.saddi.com/flup python-flup] package.\\
+Python-flup is a dependency which provides trac with SCGI capability. You can install it on debian based systems with:
+{{{
+sudo apt-get install python-flup
+}}}
+
 == Simple Lighttpd Configuration ==
 
 The FastCGI front-end was developed primarily for use with alternative webservers, such as [http://www.lighttpd.net/ lighttpd].

File trac/wiki/default-pages/TracGuide

    * TracWorkflow — Configurable Ticket Workflow.
    * TracRepositoryAdmin — Management of Source Code Repositories.
  * [trac:TracFaq Trac FAQ] — A collection of Frequently Asked Questions (on the project website).
+ * [trac:TracDev Trac Developer Documentation] — Developer documentation
 
 == Support and Other Sources of Information ==
 If you are looking for a good place to ask a question about Trac, look no further than the [http://trac.edgewall.org/wiki/MailingList MailingList]. It provides a friendly environment to discuss openly among Trac users and developers.
 
 See also the TracSupport page for more information resources.
-
-Finally, developer documentation can be found in [trac:TracDev TracDev] and its sub-pages.

File trac/wiki/default-pages/TracIni

 
 There are two more entries in the [[#inherit-section| [inherit] ]] section, `templates_dir` for sharing global templates and `plugins_dir`, for sharing plugins. Those entries can themselves be specified in the shared configuration file, and in fact, configuration files can even be chained if you specify another `[inherit] file` there.
 
+Note that the templates found in the `templates/` directory of the TracEnvironment have precedence over those found in `[inherit] templates_dir`. In turn, the latter have precedence over the installed templates, so be careful about what you put there, notably if you override a default template be sure to refresh your modifications when you upgrade to a new version of Trac (the preferred way to perform TracInterfaceCustomization being still to write a custom plugin doing an appropriate `ITemplateStreamFilter` transformation).
+
 == Reference for settings
 
-This is a brief reference of available configuration options.
+This is a brief reference of available configuration options, and their default settings.
 
  ''Note that the [bitten], [spam-filter] and [vote] sections below are added by plugins enabled on this Trac, and therefore won't be part of a default installation.''
 
 closed.order = 0
 # optional extra param for the query (two additional columns: created and modified and sort on created)
 closed.query_args = group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime
-# indicates groups that count for overall completion 
-closed.overall_completion = truepercentage
+# indicates groups that count for overall completion percentage
+closed.overall_completion = true
 
 new = new
 new.order = 1

File trac/wiki/default-pages/TracInstall

 ==== Version Control System ====
 
 ===== Subversion =====
- * [http://subversion.apache.org/ Subversion], 1.5.x or 1.6.x and the '''''corresponding''''' Python bindings. Older versions starting from 1.0, like 1.2.4, 1.3.2 or 1.4.2, etc. should still work. For troubleshooting information, check the [trac:TracSubversion#Troubleshooting TracSubversion] page.
+ * [http://subversion.apache.org/ Subversion], 1.5.x or 1.6.x and the '''''corresponding''''' Python bindings. Older versions starting from 1.4.0, etc. should still work. For troubleshooting information, check the [trac:TracSubversion#Troubleshooting TracSubversion] page. Versions prior to 1.4.0 won't probably work since trac uses svn core functionality (e.g. svn_path_canonicalize) that is not implemented in the python swig wrapper in svn <= 1.3.x (although it exists in the svn lib itself).
 
 There are [http://subversion.apache.org/packages.html pre-compiled SWIG bindings] available for various platforms. (Good luck finding precompiled SWIG bindings for any Windows package at that listing. TracSubversion points you to [http://alagazam.net Algazam], which works for me under Python 2.6.)
 
 
 A few examples:
 
- - install Trac 0.12:
+ - first install of the latest stable version Trac 0.12.1, with i18n support:
    {{{
-   easy_install Trac==0.12
+   easy_install Babel==0.9.5 Genshi==0.6
+   easy_install Trac
+   }}}
+   ''It's very important to run the two `easy_install` commands separately, otherwise the message catalogs won't be generated.''
+
+ - upgrade to the latest stable version of Trac:
+   {{{
+   easy_install -U Trac
    }}}
 
- - install latest development version 0.12dev:
+ - upgrade to the latest trunk development version (0.13dev):
    {{{
-   easy_install Trac==dev
+   easy_install -U Trac==dev
    }}}
-   Note that in this case you won't have the possibility to run a localized version of Trac;
-   either use a released version or install from source 
 
-=== Using `pip`
-'pip' is an easy_install replacement that is very useful to quickly install python packages.
-To get a trac installation up and running in less than 5 minutes:
-
-Assuming you want to have your entire pip installation in /opt/user/trac
-
- - 
-{{{
-pip -E /opt/user/trac install trac psycopg2 
-}}}
-or
- - 
-{{{
-pip -E /opt/user/trac install trac mysql-python 
-}}}
-
-Make sure your OS specific headers are available for pip to automatically build PostgreSQL (libpq-dev) or MySQL (libmysqlclient-dev) bindings.
-
-pip will automatically resolve all dependencies (like Genshi, pygments, etc.) and download the latest packages on pypi.python.org and create a self contained installation in /opt/user/trac 
-
-All commands (tracd, trac-admin) are available in /opt/user/trac/bin . This can also be leveraged for mod_python (using PythonHandler directive) and mod_wsgi (using WSGIDaemonProcess directive)
-
-Additionally, you can install several trac plugins (listed [http://pypi.python.org/pypi?:action=search&term=trac&submit=search here]) through pip.
-
-
+For upgrades, reading the TracUpgrade page is mandatory, of course.
 
 === From source
-Of course, using the python-typical setup at the top of the source directory also works.
+If you want more control, you can download the source in archive form, or do a checkout from one of the official [[Trac:TracRepositories|source code repositories]].
 
-You can obtain the source for a .tar.gz or .zip file corresponding to a release (e.g. Trac-0.12.tar.gz), or you can get the source directly from the repository (see [trac:SubversionRepository] for details).
+Be sure to have the prerequisites already installed. You can also obtain the Genshi and Babel source packages from http://www.edgewall.org and follow for them a similar installation procedure, or you can just easy_install those, see [#Usingeasy_install above].
 
+Once you've unpacked the Trac archive or performed the checkout, move in the top-level folder and do:
 {{{
 $ python ./setup.py install
 }}}
 
 The above will place your `tracd` and `trac-admin` commands into `/usr/local/bin` and will install the Trac libraries and dependencies into `/Library/Python/2.5/site-packages`, which is Apple's preferred location for third-party Python application installations.
 
+=== Using `pip`
+'pip' is an easy_install replacement that is very useful to quickly install python packages.
+To get a trac installation up and running in less than 5 minutes:
+
+Assuming you want to have your entire pip installation in /opt/user/trac:
+
+ - 
+{{{
+pip -E /opt/user/trac install trac psycopg2 
+}}}
+or
+ - 
+{{{
+pip -E /opt/user/trac install trac mysql-python 
+}}}
+
+Make sure your OS specific headers are available for pip to automatically build PostgreSQL (libpq-dev) or MySQL (libmysqlclient-dev) bindings.
+
+pip will automatically resolve all dependencies (like Genshi, pygments, etc.) and download the latest packages on pypi.python.org and create a self contained installation in /opt/user/trac .
+
+All commands (tracd, trac-admin) are available in /opt/user/trac/bin. This can also be leveraged for mod_python (using !PythonHandler directive) and mod_wsgi (using WSGIDaemonProcess directive)
+
+Additionally, you can install several trac plugins (listed [http://pypi.python.org/pypi?:action=search&term=trac&submit=search here]) through pip.
+
+
 
 == Creating a Project Environment ==
 
 # chown -R apache.apache /path/to/myproject
 }}}
 
+{{{#!div class=important
+'''Warning:''' Please only use ASCII-characters for account name and project path, unicode characters are not supported there.
+}}}
+
+
 == Running the Standalone Server ==
 
 After having created a Trac environment, you can easily try the web interface by running the standalone server [wiki:TracStandalone tracd]:

File trac/wiki/default-pages/TracInterfaceCustomization

 Now configure the appropriate section of your [wiki:TracIni trac.ini]:
 
 === Logo ===
-Change the `src` setting to `site/` followed by the name of your image file.  The `width` and `height` settings should be modified to match your image's dimensions (the Trac chrome handler uses "`site/`" for files within the project directory `htdocs` and "`common/`" for the common ones).
+Change the `src` setting to `site/` followed by the name of your image file.  The `width` and `height` settings should be modified to match your image's dimensions (the Trac chrome handler uses "`site/`" for files within the project directory `htdocs` and "`common/`" for the common ones). Note that 'site/' is not a placeholder for your project name, it is the actual prefix that should be used (literally). For example, if your project is named 'sandbox', and the image file is 'red_logo.gif' then the 'src' setting would be 'site/red_logo.gif', not 'sandbox/red_logo.gif'.
 
 {{{
 [header_logo]
 Trac resolves requests for a template by first looking inside the project, then in any inherited templates location, and finally inside the Trac egg.
 
 Trac caches templates in memory by default to improve performance. To apply a template you need to restart the server.
+
 ----
 See also TracGuide, TracIni

File trac/wiki/default-pages/TracModPython

    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler mod_python.testhandler
+   Order allow,deny
+   Allow from all
 </Location>
 }}}
 
    PythonHandler trac.web.modpython_frontend 
    PythonOption TracEnv /var/trac/myproject
    PythonOption TracUriRoot /projects/myproject
+   Order allow,deny
+   Allow from all
 </Location>
 }}}
 

File trac/wiki/default-pages/TracNavigation

 
 The new `[mainnav]` and `[metanav]` configuration sections can now be used to customize the text and link used for the navigation items, or even to disable them.
 
+=== `[mainnav]` #mainnav-bar
 `[mainnav]` corresponds to the '''main navigation bar''', the one containing entries such as ''Wiki'', ''Timeline'', ''Roadmap'', ''Browse Source'' and so on. This navigation bar is meant to access the default page of the main modules enabled in Trac and accessible for the current user.
 
-`[metanav]` corresponds to the '''meta navigation bar''', by default positioned above the main navigation bar and below the ''Search'' box. It contains the ''Log in'', ''Logout'', ''!Help/Guide'' etc. entries. This navigation bar is meant to access some global information about the Trac project and the current user.
 
-There is one special entry in the  `[metanav]` section: `logout.redirect` is the page the user sees after hitting the logout button. 
-
-Possible URL formats:
-|| '''config''' || '''redirect to''' ||
-|| `wiki/Logout` || `/projects/env/wiki/Logout` ||
-|| `http://hostname/` || `http://hostname/` ||
-|| `/projects` || `/projects` ||
-[[comment(see also #Trac3808)]]
-
-Note that it is still not possible to customize the '''contextual navigation bar''', i.e. the one usually placed below the main navigation bar.
-
-=== Example ===
+** [=#Example Example] ** 
 
 In the following example, we rename the link to the Wiki start "Home", and hide the "!Help/Guide" link. 
 We also make the "View Tickets" entry link to a specific report.
 [mainnav]
 wiki.label = Home
 tickets.href = /report/24
+}}}
 
+=== `[metanav]` #metanav-bar
+`[metanav]` corresponds to the '''meta navigation bar''', by default positioned above the main navigation bar and below the ''Search'' box. It contains the ''Log in'', ''Logout'', ''!Help/Guide'' etc. entries. This navigation bar is meant to access some global information about the Trac project and the current user.
+
+There is one special entry in the  `[metanav]` section: `logout.redirect` is the page the user sees after hitting the logout button. 
+[[comment(see also #Trac3808)]]
+
+** Example ** 
+
+{{{
 [metanav]
 help = disabled
 logout.redirect = wiki/Logout
 }}}
 
+
+=== Notes
+Possible URL formats (for `.href` or `.redirect`):
+|| '''config''' || '''redirect to''' ||
+|| `wiki/Logout` || `/projects/env/wiki/Logout` ||
+|| `http://hostname/` || `http://hostname/` ||
+|| `/projects` || `/projects` ||
+
+
+Note that it is still not possible to customize the '''contextual navigation bar''', i.e. the one usually placed below the main navigation bar.
+
+
 ----
 See also: TracInterfaceCustomization, and the [http://trac-hacks.org/wiki/NavAddPlugin TracHacks:NavAddPlugin] or [http://trac-hacks.org/wiki/MenusPlugin TracHacks:MenusPlugin] (still needed for adding entries)

File trac/wiki/default-pages/TracPermissions

   $ trac-admin /path/to/projenv permission add bob TRAC_ADMIN
 }}}
 
-Then, the user `bob` will be able to see the Admin tab, and can then access the permissions menu. This menu will allow you to perform all the following actions, but from the browser without requiring root access to the server (just the correct permissions for your user account).
+Then, the user `bob` will be able to see the Admin tab, and can then access the permissions menu. This menu will allow you to perform all the following actions, but from the browser without requiring root access to the server (just the correct permissions for your user account).   '''Use at least one lowercase character in user names, as all-uppercase names are reserved for permissions.'''
 
  1. [[Image(htdocs:../common/guide/admin.png)]]
  1. [[Image(htdocs:../common/guide/admin-permissions.png)]]
 || `PERMISSION_REVOKE` || remove/revoke a permission ||
 || `PERMISSION_ADMIN` || All `PERMISSION_*` permissions ||
 
-
 === Others ===
 
 || `TIMELINE_VIEW` || View the [wiki:TracTimeline timeline] page ||
 || `CONFIG_VIEW` || Enables additional pages on ''About Trac'' that show the current configuration or the list of installed plugins ||
 || `EMAIL_VIEW` || Shows email addresses even if [trac:wiki:0.11/TracIni trac show_email_addresses configuration option is false] ||
 
+== Creating New Privileges ==
+
+To create custom permissions, for example to be used in a custom workflow, enable the optional `tracopt.perm.config_perm_provider.ExtraPermissionsProvider` component in the "Plugins" admin panel, and add the desired permissions to the `[extra-permissions]` section in your [wiki:TracIni#extra-permissions-section trac.ini]. For more information, please refer to the documentation of the component in the admin panel.
+
 == Granting Privileges ==
 
 You grant privileges to users using [wiki:TracAdmin trac-admin]. The current set of privileges can be listed with the following command:

File trac/wiki/default-pages/TracPlugins

 
 == Plugin discovery ==
 
-From the user point of view a Plugin is either standalone .py file or an .egg package. Trac looks for Plugins in a global shared plugins directory (see [TracIni#GlobalConfiguration Global Configuration]), or in a local TracEnvironment, in its `plugins` directory.
-Except for the later case, the components defined in a plugin should be explicitly enabled in the [[TracIni#components-section| [components] ]] section of the trac.ini file.
+From the user point of view a Plugin is either standalone .py file or an .egg package. Trac looks for Plugins in a global shared plugins directory (see [TracIni#GlobalConfiguration Global Configuration]) and in `plugins` directory of local TracEnvironment. Components defined in globally installed plugins should be explicitly enabled in the [[TracIni#components-section| [components] ]] section of the trac.ini file.
 
 == Requirements for Trac eggs  ==
 
 
 If the `ez_setup.py` script fails to install the setuptools release, you can download it from [http://www.python.org/pypi/setuptools PyPI] and install it manually.
 
-Plugins can also consist of a single `.py` file dropped into either the environment or the shared plugins directory.
+Plugins can also consist of a single `.py` file dropped directly into the root of environment's or into shared `plugins` directory.
 
 == Installing a Trac Plugin ==
 

File trac/wiki/default-pages/TracQuery

  * If not logged in but you have specified a name or email address in the preferences then it will display all open tickets where your email (or name if email not defined) is in the CC list.
  * If not logged and no name/email defined in the preferences then all open issues are displayed.
 
-Current filters can be removed by clicking the button to the right with the minus sign on the label.  New filters are added from the pulldown lists at the bottom corners of the filters box ('And' conditions on the left, 'Or' conditions on the right).  Filters with either a text box or a pulldown menu of options can be added multiple times to perform an ''or'' of the criteria.
+Current filters can be removed by clicking the button to the left with the minus sign on the label.  New filters are added from the pulldown lists at the bottom corners of the filters box ('And' conditions on the left, 'Or' conditions on the right).  Filters with either a text box or a pulldown menu of options can be added multiple times to perform an ''or'' of the criteria.
 
 You can use the fields just below the filters box to group the results based on a field, or display the full description for each ticket.
 
 This is displayed as:
   [[TicketQuery(version=0.6|0.7&resolution=duplicate, compact)]]
 
-Finally if you wish to receive only the number of defects that match the query using the ``count`` parameter.
+Finally, if you wish to receive only the number of defects that match the query, use the ``count`` parameter.
 
 {{{
 [[TicketQuery(version=0.6|0.7&resolution=duplicate, count)]]
 
 === Query Language ===
 
-`query:` TracLinks and the `[[TicketQuery]]` macro both use a mini “query language” for specifying query filters. Basically, the filters are separated by ampersands (`&`). Each filter then consists of the ticket field name, an operator, and one or more values. More than one value are separated by a pipe (`|`), meaning that the filter matches any of the values. To include a litteral `&` or `|` in a value, escape the character with a backslash (`\`).
+`query:` TracLinks and the `[[TicketQuery]]` macro both use a mini “query language” for specifying query filters. Basically, the filters are separated by ampersands (`&`). Each filter then consists of the ticket field name, an operator, and one or more values. More than one value are separated by a pipe (`|`), meaning that the filter matches any of the values. To include a literal `&` or `|` in a value, escape the character with a backslash (`\`).
 
 The available operators are:
-|| '''`=`''' || the field content exactly matches the one of the values ||
+|| '''`=`''' || the field content exactly matches one of the values ||
 || '''`~=`''' || the field content contains one or more of the values ||
 || '''`^=`''' || the field content starts with one of the values ||
 || '''`$=`''' || the field content ends with one of the values ||

File trac/wiki/default-pages/TracReports

 report, possibly formatted according to the descriptions above. However, it's
 also possible to create multi-line report entries.
 
- * '''`column_`''' — ''Break row after this''. By appending an underscore ('_') to the column name, the remaining columns will be be continued on a second line.
+ * '''`column_`''' — ''Break row after this''. By appending an underscore ('_') to the column name, the remaining columns will be continued on a second line.
 
  * '''`_column_`''' — ''Full row''. By adding an underscore ('_') both at the beginning and the end of a column name, the data will be shown on a separate row.
 

File trac/wiki/default-pages/TracRepositoryAdmin

  * Manage repositories in the "Repository" admin panel, with `trac-admin` or in the `[repositories]` section of [wiki:TracIni#repositories-section trac.ini].
  * Set up a call to `trac-admin $ENV changeset added $REPO $REV` in the post-commit hook of each repository. Additionally, add a call to `trac-admin $ENV changeset modified $REPO $REV` in the post-revprop-change hook of repositories allowing revision property changes.
  * Set the `[trac] repository_sync_per_request` option to an empty value to disable per-request syncing.
-
+ * Make sure the user under which your Subversion hooks are run has write access to the Trac environment, or use a tool like `sudo` to temporarily elevate privileges.
 
 == Specifying repositories == #Repositories
 Starting with 0.12, Trac can handle more than one repository per environment. The pre-0.12 way of specifying the repository with the `repository_dir` and `repository_type` options in the `[trac]` section of [wiki:TracIni trac.ini] is still supported, but two new mechanisms allow including additional repositories into an environment.

File trac/wiki/default-pages/TracRevisionLog

     with this change.
  1. The '''Revision''' number, displayed as `@xyz`.
     This is a link to the TracBrowser, using the displayed revision as the base line.
- 1. The '''Changeset''' number, displayed as `[xyz]`.
-    This is a link to the TracChangeset view.
+ Next to it, you can see a little "wheel" icon [[Image(htdocs:../common/changeset.png)]],  which is clickable and leads to the TracChangeset view for that revision.
  1. The '''Date''' at which the change was made.
     The date is displayed as the time elapsed from the date of the revision. The time
     elapsed is displayed as the number of hours, days, weeks, months, or years.

File trac/wiki/default-pages/TracTickets

 '''Example:''' ''/trac/newticket?summary=Compile%20Error&version=1.0&component=gui''[[BR]]
 
 ----
-See also:  TracGuide, TracWiki, TracTicketsCustomFields, TracNotification, TracReports, TracQuery
+See also:  TracGuide, TracWiki, TracTicketsCustomFields, TracNotification, TracReports, TracQuery

File trac/wiki/default-pages/TracUpgrade

 ===== Authz permission checking =====
 The authz permission checking has been migrated to a fine-grained permission policy. If you use authz permissions (aka `[trac] authz_file` and `authz_module_name`), you must add `AuthzSourcePolicy` in front of your permission policies in `[trac] permission_policies`. You must also remove `BROWSER_VIEW`, `CHANGESET_VIEW`, `FILE_VIEW` and `LOG_VIEW` from your global permissions (with `trac-admin $ENV permission remove` or the "Permissions" admin panel).
 
+===== Microsecond timestamps =====
+All timestamps in database tables (except the `session` table) have been changed from "seconds since epoch" to "microseconds since epoch" values. This change should be transparent to most users, except for custom reports. If any of your reports use date/time columns in calculations (e.g. to pass them to `datetime()`), you must divide the values retrieved from the database by 1'000'000. Similarly, if a report provides a calculated value to be displayed as a date/time (i.e. with a column named "time", "datetime", "changetime", "date", "created" or "modified"), you must provide a microsecond timestamp, that is, multiply your previous calculation with 1'000'000.
+
 ==== Upgrading from Trac 0.10 to Trac 0.11 ====
 ===== Site Templates and Styles =====
 The templating engine has changed in 0.11 to Genshi, please look at TracInterfaceCustomization for more information.

File trac/wiki/default-pages/WikiFormatting

  }}}
 }}}
 {{{#!td style="padding-left: 2em"
-== Level 2
+== Level 2 ==
 === Level 3 ^([#hn note])^
 }}}
 |-----------------------------------------------------------
 {{{#!td
  {{{
  * bullets list
-   on multiple paragraphs
+   on multiple lines
    1. nested list
      a. different numbering 
         styles
 }}}
 {{{#!td
 * bullets list
-  on multiple paragraphs
+  on multiple lines
   1. nested list
     a. different numbering
        styles
 {{{#!td
  {{{
   term:: definition on
-         multiple paragraphs
+         multiple lines
  }}}
 }}}
 {{{#!td
  term:: definition on
-        multiple paragraphs
+        multiple lines
 }}}
 |-----------------------------------------------------------
 ||= [#PreformattedText Preformatted Text] =||\
 || `see [#point1 (1)]` ||\
 || see [#point1 (1)] ||
 |-----------------------------------------------------------
-{{{#!th rowspan=2
-[#EscapingLinksandWikiPageNames Escaping Markup]
+{{{#!th rowspan=3
+[#Escaping Escaping Markup]
 }}}
 || `!'' doubled quotes` ||\
 || !'' doubled quotes ||
 || `!wiki:WikiFormatting`, `!WikiFormatting` ||\
 || !wiki:WikiFormatting, !WikiFormatting ||
+|| `{{{-}}} curly brackets` ||\
+|| {{{-}}} curly brackets ||
 |-----------------------------------------------------------
 ||= [#Images Images] =|| `[[Image(`''link''`)]]` || [[Image(htdocs:../common/trac_logo_mini.png)]] ||
 |-----------------------------------------------------------
 {{{#!td style="padding: 1em;"
   {{{
   #!div
+  = Heading =
   == Subheading
   === About ''this'' ===
   === Explicit id === #using-explicit-id-in-heading
 For more complex anchors (e.g. when a custom title is wanted), one can use the Span macro, e.g. `[[span(id=point2, class=wikianchor, title=Point 2, ^(2)^)]]`.
 
 
-== Escaping Links and WikiPageNames ==
+== Escaping Links, WikiPageNames and other Markup == #Escaping
 
 You may avoid making hyperlinks out of TracLinks by preceding an expression with a single "!" (exclamation mark).
 
    !NoHyperLink
    !#42 is not a link
   }}}
+  {{{
+Various forms of escaping for list markup:
+ `-` escaped minus sign \\
+ ``1. escaped number  \\
+ {{{*}}} escaped asterisk sign
+  }}}
 }}}
 {{{#!td
  !NoHyperLink
  !#42 is not a link
+
+Various forms of escaping for list markup:
+ `-` escaped minus sign \\
+ ``1. escaped number  \\
+ {{{*}}} escaped asterisk sign
 }}}
 
 == Images ==

File trac/wiki/default-pages/WikiMacros

   [[?]]
   }}}
 }}}
-{{{#!td style="padding-left: 2em; font-size: 80%"
-[[?]]
+{{{#!td style="padding-left: 2em"
+{{{#!html 
+<div style="font-size: 80%" class="trac-macrolist">
+<h3><code>[[Image]]</code></h3>Embed an image in wiki-formatted text.
+
+The first argument is the file …
+<h3><code>[[InterTrac]]</code></h3>Provide a list of known <a class="wiki" href="/wiki/InterTrac">InterTrac</a> prefixes.
+<h3><code>[[InterWiki]]</code></h3>Provide a description list for the known <a class="wiki" href="/wiki/InterWiki">InterWiki</a> prefixes.
+<h3><code>[[KnownMimeTypes]]</code></h3>List all known mime-types which can be used as <a class="wiki" href="/wiki/WikiProcessors">WikiProcessors</a>.
+Can be …</div>
+}}}
+etc.
 }}}
 
 == Available Macros ==

File trac/wiki/default-pages/WikiProcessors

   {{{
   {{{
   #!html
-  <form action="/query" method="get">
-  <input type="text" name="keywords" value="~" size="30">
-  <input type="submit" value="Search by Keywords">
+  <form action="/query" method="get"><div>
+  <input type="text" name="keywords" value="~" size="30"/>
+  <input type="submit" value="Search by Keywords"/>
   <!-- To control what fields show up use hidden fields
-  <input type="hidden" name="col" value="id">
-  <input type="hidden" name="col" value="summary">
-  <input type="hidden" name="col" value="status">
-  <input type="hidden" name="col" value="milestone">
-  <input type="hidden" name="col" value="version">
-  <input type="hidden" name="col" value="owner">
-  <input type="hidden" name="col" value="priority">
-  <input type="hidden" name="col" value="component">
+  <input type="hidden" name="col" value="id"/>
+  <input type="hidden" name="col" value="summary"/>
+  <input type="hidden" name="col" value="status"/>
+  <input type="hidden" name="col" value="milestone"/>
+  <input type="hidden" name="col" value="version"/>
+  <input type="hidden" name="col" value="owner"/>
+  <input type="hidden" name="col" value="priority"/>
+  <input type="hidden" name="col" value="component"/>
   -->
-  </form>
+  </div></form>
   }}}
   }}}
 }}}
 {{{#!td valign=top style="border: none; padding: 1em"
   {{{
   #!html
-  <form action="/query" method="get">
-  <input type="text" name="keywords" value="~" size="30">
-  <input type="submit" value="Search by Keywords">
+  <form action="/query" method="get"><div>
+  <input type="text" name="keywords" value="~" size="30"/>
+  <input type="submit" value="Search by Keywords"/>
   <!-- To control what fields show up use hidden fields
-  <input type="hidden" name="col" value="id">
-  <input type="hidden" name="col" value="summary">
-  <input type="hidden" name="col" value="status">
-  <input type="hidden" name="col" value="milestone">
-  <input type="hidden" name="col" value="version">
-  <input type="hidden" name="col" value="owner">
-  <input type="hidden" name="col" value="priority">
-  <input type="hidden" name="col" value="component">
+  <input type="hidden" name="col" value="id"/>
+  <input type="hidden" name="col" value="summary"/>
+  <input type="hidden" name="col" value="status"/>
+  <input type="hidden" name="col" value="milestone"/>
+  <input type="hidden" name="col" value="version"/>
+  <input type="hidden" name="col" value="owner"/>
+  <input type="hidden" name="col" value="priority"/>
+  <input type="hidden" name="col" value="component"/>
   -->
-  </form>
+  </div></form>
   }}}
 }}}
 == Available Processors ==

File trac/wiki/default-pages/WikiRestructuredText

 === TracLinks in reStructuredText ===
 
  * Trac provides a custom RST directive `trac::` to allow TracLinks from within RST text.
+   ||= Wiki Markup ||= Display ||
+   {{{#!td
+     {{{
+     {{{
+     #!rst
+     This is a reference to |a ticket|
 
- Example:
- {{{
- {{{
- #!rst
- This is a reference to |a ticket|
+     .. |a ticket| trac:: #42
+     }}}
+     }}}
+   }}}
+   {{{#!td
+     {{{
+     #!rst
+     This is a reference to |a ticket|
 
- .. |a ticket| trac:: #42
- }}}
- }}}
+     .. |a ticket| trac:: #42
+     }}}
+   }}}
 
  * Trac allows an even easier way of creating TracLinks in RST, using the custom `:trac:` role.
+   ||= Wiki Markup ||= Display ||
+   {{{#!td
+     {{{
+     {{{
+     #!rst
+     This is a reference to ticket `#12`:trac:
 
- Example:
- {{{
- {{{
- #!rst
- This is a reference to ticket `#12`:trac:
+     To learn how to use Trac, see `TracGuide`:trac:
+     }}}
+     }}}
+   }}}
+   {{{#!td
+     {{{
+     #!rst
+     This is a reference to ticket `#12`:trac:
 
- To learn how to use Trac, see `TracGuide`:trac:
- }}}
- }}}
+     To learn how to use Trac, see `TracGuide`:trac:
+     }}}
+   }}}
 
  For a complete example of all uses of the `:trac:` role, please see WikiRestructuredTextLinks. 
 
 There is a directive for doing TracSyntaxColoring in RST as well. The directive is called
 code-block
 
-Example
+||= Wiki Markup ||= Display ||
+{{{#!td
+  {{{
+  {{{
+  #!rst
 
-{{{
-{{{
-#!rst
+  .. code-block:: python
 
-.. code-block:: python
+     class Test:
 
- class Test:
+         def TestFunction(self):
+             pass
+  
+  }}}
+  }}}
+}}}
+{{{#!td
+  {{{
+  #!rst
 
-    def TestFunction(self):
-        pass
+  .. code-block:: python
 
+     class Test:
+
+         def TestFunction(self):
+             pass
+
+  }}}
 }}}
-}}}
-
-Will result in the below.
-
-{{{
-#!rst
-
-.. code-block:: python
-
- class Test:
-
-    def TestFunction(self):
-        pass
-
-}}}
+Note the need to indent the code at least one character after the `.. code-block` directive.
 
 === Wiki Macros in reStructuredText ===
 
 For doing [WikiMacros Wiki Macros] in RST you use the same directive as for syntax highlighting i.e code-block.
 
-=== Wiki Macro Example ===
+||= Wiki Markup ||= Display ||
+{{{#!td
+  {{{
+  {{{
+  #!rst
 
-{{{
-{{{
-#!rst
+  .. code-block:: RecentChanges
 
-.. code-block:: RecentChanges
+     Trac,3
 
-   Trac,3
+  }}}
+  }}}
+}}}
+{{{#!td
+  {{{
+  #!rst
 
-}}}
+  .. code-block:: RecentChanges
+
+     Trac,3
+
+  }}}
 }}}
 
-Will result in the below:
+Or a more concise Wiki Macro like syntax is also available, using the `:code-block:` role:
 
-     [[RecentChanges(Trac,3)]]
+||= Wiki Markup ||= Display ||
+{{{#!td
+  {{{
+  {{{
+  #!rst
 
-Or a more concise Wiki Macro like syntax is also available:
+  :code-block:`RecentChanges:Trac,3`
+  }}}
+  }}}
+}}}
+{{{#!td
+  {{{
+  #!rst
 
-{{{
-{{{
-#!rst
-
-:code-block:`RecentChanges:Trac,3`
-}}}
+  :code-block:`RecentChanges:Trac,3`
+  }}}
 }}}
 
 === Bigger RST Example ===
 The example below should be mostly self-explanatory:
+
+||= Wiki Markup ||= Display ||
+{{{#!td
 {{{
 #!html
 <pre class="wiki">{{{
 .. _webpage: http://docutils.sourceforge.net/rst.html
 }}}</pre>
 }}}
-
-
-Results in:
+}}}
+{{{#!td
 {{{
 #!rst
 FooBar Header
 
 .. _webpage: http://docutils.sourceforge.net/rst.html
 }}}
-
+}}}
 
 ----
 See also: WikiRestructuredTextLinks, WikiProcessors, WikiFormatting