Anonymous avatar Anonymous committed 7187205

0.12.1: syncing TracGuide from t.e.o

Comments (0)

Files changed (27)

trac/wiki/default-pages/InterMapTxt

 trac-dev http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/   # Message $1 in Trac Development Mailing List
 
 Mercurial http://www.selenic.com/mercurial/wiki/index.cgi/ # the wiki for the Mercurial distributed SCM
-RFC       http://tools.ietf.org/html/rfc$1 # IETF's RFC $1
-ISO       http://en.wikipedia.org/wiki/ISO_ # ISO Standard $1 in Wikipedia
+
+RFC       http://tools.ietf.org/html/rfc$1          # IETF's RFC $1
+ISO       http://en.wikipedia.org/wiki/ISO_         # ISO Standard $1 in Wikipedia
 kb        http://support.microsoft.com/kb/$1/en-us/ # Article $1 in Microsoft's Knowledge Base
 
-CheeseShop  http://cheeseshop.python.org/pypi/  # Python Package $1 from the Cheese Shop
-SQLite      http://www.sqlite.org/cvstrac/wiki?p= 
-mysql-bugs  http://bugs.mysql.com/bug.php?id=  # Bug #$1 in MySQL's bug database
-peak        http://peak.telecommunity.com/DevCenter/ # $1 in Python Enterprise Application Kit's Wiki
-MODPYTHON   http://issues.apache.org/jira/browse/MODPYTHON- # Issue $1 in mod_python's JIRA instance
-SvnWiki     http://www.orcaware.com/svn/wiki/ # Subversion Wiki
+chromium-issue  http://code.google.com/p/chromium/issues/detail?id=
+
+Django      http://code.djangoproject.com/intertrac/ # Django's Trac
+
+CreoleWiki   http://wikicreole.org/wiki/
+Creole1Wiki  http://wikicreole.org/wiki/
+Creole2Wiki  http://wiki.wikicreole.org/
 
 MediaWiki    http://www.mediawiki.org/wiki/
 

trac/wiki/default-pages/InterTrac

 The aliases are defined in `trac.ini` (see below).
 The prefix is case insensitive.
 
-When a TracLink is enclosed in brackets, the alias is expanded.  That is, `[th:ticket:1]` is displayed as `trachacks:ticket:1`, since `th` is an alias for `trachacks`.  If the TracLink is not enclosed in brackets, then the alias is displayed as it is typed.
+If the InterTrac link is enclosed in square brackets (like `[th:WikiGoodiesPlugin]`), the InterTrac prefix is removed in the displayed link, like a normal link resolver would be (i.e. the above would be displayed as `WikiGoodiesPlugin`).
 
 For convenience, there's also some alternative short-hand form, 
 where one can use an alias as an immediate prefix 

trac/wiki/default-pages/TracCgi

 
 Add the following snippet to Apache configuration '''before''' the `ScriptAlias` for the CGI script, changing paths to match your deployment:
 {{{
-Alias /trac/chrome/common /path/to/trac/htdocs
+Alias /trac/chrome/common /path/to/trac/htdocs/common
+Alias /trac/chrome/site /path/to/trac/htdocs/site
 <Directory "/path/to/www/trac/htdocs">
   Order allow,deny
   Allow from all
 </Directory>
 }}}
 
+If using mod_python, you might want to add this too (otherwise, the alias will be ignored):
+{{{
+<Location "/trac/chrome/common/">
+  SetHandler None
+</Location>
+}}}
+
 Note that we mapped `/trac` part of the URL to the `trac.cgi` script, and the path `/chrome/common` is the path you have to append to that location to intercept requests to the static resources. 
 
 For example, if Trac is mapped to `/cgi-bin/trac.cgi` on your server, the URL of the Alias should be `/cgi-bin/trac.cgi/chrome/common`.

trac/wiki/default-pages/TracEnvironment

  the appropriate permissions. The same applies to the source code repository, 
  although the user under which Trac runs will only require write access to a Subversion repository created with the BDB file system; for other repository types, check the corresponding plugin's documentation. 
  
- - `initenv` when using svn repository does not imply that trac-admin will perform `svnadmin create` for the specified repository path. You need to perform the `svnadmin create` prior to `trac-admin initenv` if you're creating a new svn repository altogether with a new trac environment, otherwise you will see a message "Warning: couldn't index the repository" when initializing the environment.
+ - `initenv`, when using an svn repository, does not imply that trac-admin will perform `svnadmin create` for the specified repository path. You need to perform the `svnadmin create` prior to `trac-admin initenv` if you're creating a new svn repository altogether with a new trac environment, otherwise you will see a message "Warning: couldn't index the repository" when initializing the environment.
 
  - Non-ascii environment paths are not supported
  
    * `trac.ini` - Main configuration file. See TracIni.
  * `db`
    * `trac.db` - The SQLite database (if you're using SQLite).
- * `htdocs` - directory containing web resources, which can be referenced in Genshi templates. '''''(since 0.11)'''''
+ * `htdocs` - directory containing web resources, which can be referenced in Genshi templates using `/htdocs/site/...` URLs. ''(since 0.11)''
  * `log` - default directory for log files, if logging is turned on and a relative path is given.
  * `plugins` - Environment-specific [wiki:TracPlugins plugins] (Python eggs or single file plugins, since [trac:milestone:0.10 0.10])
- * `templates` - Custom Genshi environment-specific templates. '''''(since 0.11)'''''
+ * `templates` - Custom Genshi environment-specific templates. ''(since 0.11)''
    * `site.html` - method to customize header, footer, and style, described in TracInterfaceCustomization#SiteAppearance
 
 '''Caveat:''' ''don't confuse a Trac environment directory with the source code repository directory.'' 
 
 ----
 See also: TracAdmin, TracBackup, TracIni, TracGuide
-

trac/wiki/default-pages/TracFineGrainedPermissions

 
 Before Trac 0.11, it was only possible to define fine-grained permissions checks on the repository browser sub-system.
 
-Since 0.11, there's a general mechanism in place that allows custom permission policy plugins to grant or deny any action on any kind of Trac resources, even at the level of specific versions of such resources.
+Since 0.11, there's a general mechanism in place that allows custom **permission policy plugins** to grant or deny any action on any kind of Trac resources, even at the level of specific versions of such resources.
 
-Note that for Trac 0.12, `authz_policy` has been integrated in trunk branch as `tracopt.perm.authz_policy.*`
+Note that for Trac 0.12, `authz_policy` has been integrated as an optional module (in `tracopt.perm.authz_policy.*`), so it's installed by default and can simply be activated via the //Plugins// panel in the Trac administration module.
+
 
 == Permission Policies ==
 
-=== !AuthzPolicy ===
+A great diversity of permission policies can be implemented, and Trac comes with a few examples. 
 
-An example policy based on an Authz-style system has been added. See
-[trac:source:branches/0.11-stable/sample-plugins/permissions/authz_policy.py authz_policy.py] for details (current version requires >= Python 2.4). (See also [trac:source:branches/0.11-stable/sample-plugins/permissions sample-plugins/permissions] for more samples.)
+Which policies are currently active is determined by a configuration setting in TracIni:
+e.g.
+{{{
+[trac]
+permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy
+}}}
+This lists the [#AuthzSourcePolicy] described below as the first policy, followed by the !DefaultPermissionPolicy which checks for the traditional coarse grained style permissions described in TracPermissions, and the !LegacyAttachmentPolicy which knows how to use the coarse grained permissions for checking the permissions available on attachments.
+
+Among the possible optional choices, there is [#AuthzPolicy], a very generic permission policy, based on an Authz-style system. See
+[trac:source:branches/0.12-stable/tracopt/perm/authz_policy.py authz_policy.py] for details. 
+
+Another popular permission policy [#AuthzSourcePolicy], re-implements the pre-0.12 support for checking fine-grained permissions limited to Subversion repositories in terms of the new system.
+
+See also [trac:source:branches/0.12-stable/sample-plugins/permissions sample-plugins/permissions] for more examples.
+
+
+=== !AuthzPolicy === 
 
  - Install [http://www.voidspace.org.uk/python/configobj.html ConfigObj] (required).
  - Copy authz_policy.py into your plugins directory.
 {{{
 [components]
 ...
-authz_policy.* = enabled
+# Trac 0.12
+tracopt.perm.authz_policy.* = enabled
+# for Trac 0.11 use this
+#authz_policy.* = enabled 
 }}}
 
 Note that the order in which permission policies are specified is quite critical, 
  - other pages will be viewable only by john and jack
 
 
-=== mod_authz_svn-like permission policy ===
+=== !AuthzSourcePolicy  (mod_authz_svn-like permission policy) === #AuthzSourcePolicy
 
-At the time of this writing, the old fine grained permissions system from Trac 0.10 and before used for restricting access to the repository has not yet been converted to a permission policy component, but from the user point of view, this makes little if no difference.
+At the time of this writing, the old fine grained permissions system from Trac 0.11 and before used for restricting access to the repository has  been converted to a permission policy component, but from the user point of view, this makes little if no difference.
 
 That kind of fine-grained permission control needs a definition file, which is the one used by Subversion's mod_authz_svn. 
 More information about this file format and about its usage in Subversion is available in the  [http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html Path-Based Authorization] section in the Server Configuration chapter of the svn book.
 
 '''Note:''' Usernames inside the Authz file __must__ be the same as those used inside trac. 
 
+As of version 0.12, make sure you have ''!AuthzSourcePolicy'' included in the permission_policies list in trac.ini, otherwise the authz permissions file will be ignored.
+
+{{{ 
+[trac]
+permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy
+}}}
+
 ==== Subversion Configuration ====
 
 The same access file is typically applied to the corresponding Subversion repository using an Apache directive like this:
 
 For information about how to restrict access to entire projects in a multiple project environment see [trac:wiki:TracMultipleProjectsSVNAccess]
 
-== Getting TracFineGrainedPermissions to work ==
+== Debugging permissions
+In trac.ini set:
+{{{
+[logging]
+log_file = trac.log
+log_level = DEBUG
+log_type = file
+}}}
 
-Don't forget to restart Trac engine to apply new configuration if you are running tracd standalone server.
+And watch:
+{{{
+tail -n 0 -f log/trac.log | egrep '\[perm\]|\[authz_policy\]'
+}}}
+
+to understand what checks are being performed. See the sourced documentation of the plugin for more info.
+
 
 ----
 See also: TracPermissions,

trac/wiki/default-pages/TracImport

 
 === Using a comma delimited file - CSV ===
 See [http://trac.edgewall.org/attachment/wiki/TracSynchronize/csv2trac.2.py] for details.  This approach is particularly useful if one needs to enter a large number of tickets by hand. (note that the ticket type type field, (task etc...) is also needed for this script to work with more recent Trac releases)
+Comments on script: The script has an error on line 168, ('Ticket' needs to be 'ticket').  Also, the listed values for severity and priority are swapped. 
 
+=== Using an Excel (.xls) or comma delimited file (.csv) ===
+This plugin http://trac-hacks.org/wiki/TicketImportPlugin lets you import into Trac a series of tickets from a CSV file or (if the xlrd library is installed) from an Excel file.
+
+You can also use it to modify tickets in batch, by saving a report as CSV, editing the CSV file, and re-importing the tickets.
+
+This plugin is very useful when starting a new project: you can import a list of requirements that may have come from meeting notes, list of features, other ticketing systems... It's also great to review the tickets off-line, or to do massive changes to tickets.
+
+Based on the ticket id (or, if no id exists, on the summary) in the imported file, tickets are either created or updated. 
+
+

trac/wiki/default-pages/TracIni

 = The Trac Configuration File =
+
 [[TracGuideToc]]
 
 Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`.  Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present.
 
 This is a brief reference of available configuration options.
 
+ ''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.''
+
 [[TracIni]]
 
 == Reference for special sections
 That component allows the workflow to be configured via this section in the trac.ini file.
 See TracWorkflow for more details.
 
-
 ----
 See also: TracGuide, TracAdmin, TracEnvironment

trac/wiki/default-pages/TracInstall

 
 Trac is written in the Python programming language and needs a database, [http://sqlite.org/ SQLite], [http://www.postgresql.org/ PostgreSQL], or [http://mysql.com/ MySQL]. For HTML rendering, Trac uses the [http://genshi.edgewall.org Genshi] templating system.
 
-Since version 0.12, Trac can also be localized, and there's probably a translation available for your language. If you want to be able to use the Trac interface in other languages, then make sure you have installed the optional package [#OtherPythonPackages Babel]. Pay attention to the extra steps for localization support in the [#InstallingTrac Installing Trac] section below. Lacking Babel, you will only get the default english version, as usual.
+Since version 0.12, Trac can also be localized, and there's probably a translation available for your language. If you want to be able to use the Trac interface in other languages, then make sure you **first** have installed the optional package [#OtherPythonPackages Babel]. Lacking Babel, you will only get the default english version, as usual. If you install Babel later on, you will need to re-install Trac.
 
-If you're interested in contributing new translations for other languages or enhance the existing translations, then please have a look at [[trac:TracL10N]].
+If you're interested in contributing new translations for other languages or enhance the existing translations, then please have a look at [trac:wiki:TracL10N TracL10N].
 
 What follows are generic instructions for installing and setting up Trac and its requirements. While you may find instructions for installing Trac on specific systems at TracInstallPlatforms on the main Trac site, please be sure to '''first read through these general instructions''' to get a good understanding of the tasks involved.
 
 If you're using Python 2.5 or 2.6, you already have everything you need.
 
 If you're using Python 2.4 and need pysqlite, you can download from 
-[http://code.google.com/p/pysqlite/downloads/list google code] the Windows
-installers or the tar.gz archive for building from source: 
+[http://code.google.com/p/pysqlite/downloads/list google code] the Windows installers or the tar.gz archive for building from source: 
 {{{
 $ tar xvfz <version>.tar.gz 
 $ cd <version> 
  
 This will extract the SQLite code and build the bindings. 
 
-SQLite 2.x is no longer supported. For SQLite 3.x, the pysqlite 1.1.x
-bindings are also no longer supported, use pysqlite 2.x.
+To install SQLite, your system may require the development headers. Without these you will get various GCC related errors when attempting to build:
+
+{{{
+$ apt-get install libsqlite3-dev
+}}}
+
+SQLite 2.x is no longer supported, and neither is PySqlite 1.1.x.
+
+A known bug PySqlite versions 2.5.2-4 prohibits upgrade of trac databases
+from 0.11.x to 0.12. Please use versions 2.5.5 and newer or 2.5.1 and
+older. See #9434 for more detail.
 
 See additional information in [trac:PySqlite PySqlite].
 
 ===== 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.
 
-There are [http://subversion.apache.org/packages.html pre-compiled SWIG bindings] available for various platforms. Note that Trac '''doesn't''' use [http://pysvn.tigris.org/ PySVN], neither does it work yet with the newer `ctype`-style bindings
+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.)
+
+Note that Trac '''doesn't''' use [http://pysvn.tigris.org/ PySVN], neither does it work yet with the newer `ctype`-style bindings. [Is there a ticket for implementing ctype bindings?]
 
 
 '''Please note:''' if using Subversion, Trac must be installed on the '''same machine'''. Remote repositories are currently [trac:ticket:493 not supported].
  * [http://httpd.apache.org/ Apache] with 
    - [http://code.google.com/p/modwsgi/ mod_wsgi], see [wiki:TracModWSGI] and 
      http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac
-   - [http://modpython.org/ mod_python 3.3.1], see TracModPython)
+   - [http://modpython.org/ mod_python 3.3.1], deprecated: see TracModPython)
  * a [http://www.fastcgi.com/ FastCGI]-capable web server (see TracFastCgi)
  * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web
    server (see [trac:TracOnWindowsIisAjp TracOnWindowsIisAjp])
 ==== Other Python Packages ====
 
  * [http://babel.edgewall.org Babel], version >= 0.9.5, 
-   needed for localization support
+   needed for localization support[[BR]]
+   ''Note: '' If you want to be able to use the Trac interface in other languages, then make sure you first have installed the optional package Babel. Lacking Babel, you will only get the default english version, as usual. If you install Babel later on, you will need to re-install Trac. 
  * [http://docutils.sourceforge.net/ docutils], version >= 0.3.9 
    for WikiRestructuredText.
  * [http://pygments.pocoo.org Pygments] for 
 
 == Installing Trac ==
 === Using `easy_install`
-One way to install Trac is using `setuptools`.
+One way to install Trac is using [http://pypi.python.org/pypi/setuptools setuptools].
 With setuptools you can install Trac from the subversion repository; 
 
 A few examples:

trac/wiki/default-pages/TracInterfaceCustomization

 
 Once you've created your custom template you will need to configure the webserver to tell Trac where the template is located (pls verify ... not yet changed to 0.11):
 
+For [wiki:TracModWSGI mod_wsgi]:
+{{{
+os.environ['TRAC_ENV_INDEX_TEMPLATE'] = '/path/to/template'
+}}}
+
 For [wiki:TracFastCgi FastCGI]:
 {{{
 FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/parent/dir/of/projects \

trac/wiki/default-pages/TracLogging

 The log method is set using the `log_type` option in [wiki:TracIni#logging-section trac.ini], which takes any of the following values:
 
  '''none'':: Suppress all log messages.
- '''file''':: Log messages to a file, specified with the `log_file` option in [wiki:TracIni#logging-section trac.ini]. 
+ '''file''':: Log messages to a file, specified with the `log_file` option in [wiki:TracIni#logging-section trac.ini]. Relative paths in `log_file` are resolved relative to the `log` directory of the environment.
  '''stderr''':: Output all log entries to console ([wiki:TracStandalone tracd] only).
  '''syslog''':: (UNIX) Send all log messages to the local syslogd via named pipe `/dev/log`. By default, syslog will write them to the file /var/log/messages.
  '''eventlog''':: (Windows) Use the system's NT Event Log for Trac logging.

trac/wiki/default-pages/TracModPython

 
 These instructions are for Apache 2; if you are still using Apache 1.3, you may have some luck with [trac:wiki:TracModPython2.7 TracModPython2.7].
 
+== A Word of Warning ==
+
+As of 16^th^ June 2010, the mod_python project is officially dead.  If you are considering using mod_python for a new installation, '''please don't'''!  There are known issues which will not be fixed and there are now better alternatives.  Check out the main TracInstall pages for your target version for more information.
+
 == Simple configuration ==
 
 If you just installed mod_python, you may have to add a line to load the module in the Apache configuration:
 }}}
 (Still on Debian) after you have installed mod_python, you must enable the modules in apache2 (equivalent of the above Load Module directive):
 {{{
-a2enmod mod_python
+a2enmod python
 }}}
 On Fedora use, using yum:
 {{{

trac/wiki/default-pages/TracModWSGI

 
 ''Note: using mod_wsgi 2.5 and Python 2.6.1 gave an Internal Server Error on my system (Apache 2.2.11 and Trac 0.11.2.1). Upgrading to Python 2.6.2 (as suggested [http://www.mail-archive.com/modwsgi@googlegroups.com/msg01917.html here]) solved this for me[[BR]]-- Graham Shanks''
 
+== Apache Basic Authentication for Trac thru mod_wsgi ==
+
+Per the mod_wsgi documentation linked to above, here is an example Apache configuration that a) serves the trac from a virtualhost subdomain and b) uses Apache basic authentication for Trac authentication.
+
+
+If you want your trac to be served from e.g. !http://trac.my-proj.my-site.org, then from the folder e.g. {{{/home/trac-for-my-proj}}}, if you used the command {{{trac-admin the-env initenv}}} to create a folder {{{the-env}}}, and you used {{{trac-admin the-env deploy the-deploy}}} to create a folder {{{the-deploy}}}, then:
+
+create the htpasswd file:
+{{{
+cd /home/trac-for-my-proj/the-env
+htpasswd -c htpasswd firstuser
+### and add more users to it as needed:
+htpasswd htpasswd seconduser
+}}}
+(for security keep the file above your document root)
+
+create this file e.g. (ubuntu) {{{/etc/apache2/sites-enabled/trac.my-proj.my-site.org.conf}}} with these contents:
+
+{{{
+<Directory /home/trac-for-my-proj/the-deploy/cgi-bin/trac.wsgi>
+  WSGIApplicationGroup %{GLOBAL}
+  Order deny,allow
+  Allow from all
+</Directory>
+
+<VirtualHost *:80>
+  ServerName trac.my-proj.my-site.org
+  DocumentRoot /home/trac-for-my-proj/the-env/htdocs/
+  WSGIScriptAlias / /home/trac-for-my-proj/the-deploy/cgi-bin/trac.wsgi
+  <Location '/'>
+    AuthType Basic
+    AuthName "Trac"
+    AuthUserFile /home/trac-for-my-proj/the-env/htpasswd
+    Require valid-user
+  </Location>
+</VirtualHost>
+
+}}}
+
+
+(for subdomains to work you would probably also need to alter /etc/hosts and add A-Records to your host's DNS.)
+
 == Trac with PostgreSQL ==
 
 When using the mod_wsgi adapter with multiple Trac instances and PostgreSQL (or MySQL?) as a database back-end the server can get a lot of open database connections. (and thus PostgreSQL processes)

trac/wiki/default-pages/TracNotification

  * '''`always_notify_updater`''': (''since 0.10'') Always send a notification to the updater of a ticket (default: true).
  * '''`use_public_cc`''': (''since 0.10'') Addresses in To: (owner, reporter) and Cc: lists are visible by all recipients (default is ''Bcc:'' - hidden copy).
  * '''`use_short_addr`''': (''since 0.10'') Enable delivery of notifications to addresses that do not contain a domain (i.e. do not end with ''@<domain.com>'').This option is useful for intranets, where the SMTP server can handle local addresses and map the username/login to a local mailbox. See also `smtp_default_domain`. Do not use this option with a public SMTP server. 
- * '''`mime_encoding`''': (''since 0.10'') E-mail notifications are always sent in 7-bit mode. This option allows to select the MIME encoding scheme. Supported values:
-   * `base64`: default value, works with any kind of content. May cause some issues with touchy anti-spam/anti-virus engines.
-   * `qp` or `quoted-printable`: best for european languages (more compact than base64), not recommended for non-ASCII text (less compact than base64)
-   * `none`: no encoding. Use with plain english only (ASCII). E-mails with non-ASCII chars won't be delivered. 
+ * '''`mime_encoding`''': (''since 0.10'') This option allows selecting the MIME encoding scheme. Supported values:
+   * `none`: default value, uses 7bit encoding if the text is plain ASCII, or 8bit otherwise. 
+   * `base64`: works with any kind of content. May cause some issues with touchy anti-spam/anti-virus engines.
+   * `qp` or `quoted-printable`: best for european languages (more compact than base64) if 8bit encoding cannot be used.
  * '''`ticket_subject_template`''': (''since 0.11'') A [http://genshi.edgewall.org/wiki/Documentation/text-templates.html Genshi text template] snippet used to get the notification subject.
  * '''`email_sender`''': (''since 0.12'') Name of the component implementing `IEmailSender`. This component is used by the notification system to send emails. Trac currently provides the following components:
    * `SmtpEmailSender`: connects to an SMTP server (default).
 
 
 ----
-See also: TracTickets, TracIni, TracGuide
+See also: TracTickets, TracIni, TracGuide

trac/wiki/default-pages/TracPermissions

 
 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).
 
+ 1. [[Image(admin.png)]]
+ 1. [[Image(permissions.png)]]
+ 1. [[Image(ticket_admin.png)]]
 
 An easy way to quickly secure a new Trac install is to run the above command on the anonymous user, install the [http://trac-hacks.org/wiki/AccountManagerPlugin AccountManagerPlugin], create a new admin account graphically and then remove the TRAC_ADMIN permission from the anonymous user.
 

trac/wiki/default-pages/TracPlugins

 = Trac Plugins =
 [[TracGuideToc]]
 
-Since version 0.9, Trac supports [trac:PluginList plugins] that extend the built-in functionality. The plugin functionality is based on the [trac:TracDev/ComponentArchitecture component architecture].
+Trac is extensible with [trac:PluginList plugins] since version 0.9. The plugin functionality is based on the [trac:TracDev/ComponentArchitecture component architecture] with peculiarities described at [TracDev/PluginDevelopment plugin development] page.
 
-Plugins can be either installed globally, in a shared plugins directory  (see [TracIni#GlobalConfiguration Global Configuration]) or locally for specific TracEnvironment, in its `plugins` directory.
+== 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.
 
-== Requirements ==
+== Requirements for Trac eggs  ==
 
 To use egg based plugins in Trac, you need to have [http://peak.telecommunity.com/DevCenter/setuptools setuptools] (version 0.6) installed.
 
 
 If Trac reports permission errors after installing a zipped egg and you would rather not bother providing a egg cache directory writable by the web server, you can get around it by simply unzipping the egg. Just pass `--always-unzip` to `easy_install`:
 {{{
-easy_install --always-unzip TracSpamFilter-0.2.1dev_r5943-py2.4.egg
+easy_install --always-unzip TracSpamFilter-0.4.1_r10106-py2.6.egg
 }}}
 You should end up with a directory having the same name as the zipped egg (complete with `.egg` extension) and containing its uncompressed contents.
 
 
 `easy_install` makes installing from source a snap. Just give it the URL to either a Subversion repository or a tarball/zip of the source:
 {{{
-easy_install http://svn.edgewall.com/repos/trac/plugins/0.11/spam-filter
+easy_install http://svn.edgewall.com/repos/trac/plugins/0.12/spam-filter-captcha
 }}}
 
 ==== Enabling the plugin ====

trac/wiki/default-pages/TracRepositoryAdmin

 
 There is also new functionality in the form of a repository listener extension point ''(IRepositoryChangeListener)'' that is triggered by the post-commit hook when a changeset is added or modified, and can be used by plugins to perform actions on commit.
 
+=== Mercurial Repositories ===
+Please note that at the time of writing, no initial resynchronization or any hooks are necessary for Mercurial repositories - see [trac:#9485] for more information. 
+
 === Explicit synchronization === #ExplicitSync
 This is the preferred method of repository synchronization. It requires setting the `[trac]  repository_sync_per_request` option in [wiki:TracIni#trac-section trac.ini] to an empty value, and adding a call to `trac-admin` in the post-commit hook of each repository. Additionally, if a repository allows changing revision metadata, a call to `trac-admin` must be added to the post-revprop-change hook as well.
 
 
 The `<repos>` argument can be either a repository name (use "`(default)`" for the default repository) or the path to the repository.
 
+Note that you may have to set the environment variable PYTHON_EGG_CACHE to the same value as was used for the web server configuration before calling trac-admin, if you changed it from its default location. See [wiki:TracPlugins Trac Plugins] for more information.
+
 The following examples are complete post-commit and post-revprop-change scripts for Subversion. They should be edited for the specific environment, marked executable (where applicable) and placed in the `hooks` directory of each repository. On Unix (`post-commit`):
-{{{
-#!sh
+{{{#!sh
 #!/bin/sh
+export PYTHON_EGG_CACHE="/path/to/dir"
 /usr/bin/trac-admin /path/to/env changeset added "$1" "$2"
 }}}
 On Windows (`post-commit.cmd`):
-{{{
-#!application/x-dos-batch
+{{{#!application/x-dos-batch
 @C:\Python26\Scripts\trac-admin.exe C:\path\to\env changeset added "%1" "%2"
 }}}
 
 The post-revprop-change hook for Subversion is very similar. On Unix (`post-revprop-change`):
-{{{
-#!sh
+{{{#!sh
 #!/bin/sh
+export PYTHON_EGG_CACHE="/path/to/dir"
 /usr/bin/trac-admin /path/to/env changeset modified "$1" "$2"
 }}}
 On Windows (`post-revprop-change.cmd`):
-{{{
-#!application/x-dos-batch
+{{{#!application/x-dos-batch
 @C:\Python26\Scripts\trac-admin.exe C:\path\to\env changeset modified "%1" "%2"
 }}}
 
+The Unix variants above assume that the user running the Subversion commit has write access to the Trac environment, which is the case in the standard configuration where both the repository and Trac are served by the web server. If you access the repository through another means, for example `svn+ssh://`, you may have to run `trac-admin` with different privileges, for example by using `sudo`.
+
 Note that calling `trac-admin` in your Subversion hooks can slow down the commit and log editing operations on the client side. You might want to use the [trac:source:trunk/contrib/trac-svn-hook contrib/trac-svn-hook] script which starts `trac-admin` in an asynchronous way. The script also comes with a number of safety checks and usage advices which should make it easier to set up and test your hooks. There's no equivalent `trac-svn-hook.bat` for Windows yet, but the script can be run by Cygwin's bash.
 
 See the [http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks section about hooks] in the Subversion book for more information. Other repository types will require different hook setups. Please see the plugin documentation for specific instructions.
 Note that in this case, the changeset listener extension point is not called, and therefore plugins using it will not work correctly.
 
 
-== Migration from a single-repository setup == #Migration
-The following procedure illustrates a typical migration from a single-repository setup to multiple repositories.
+== Migration from a single-repository setup (Subversion) == #Migration
+The following procedure illustrates a typical migration from a Subversion single-repository setup to multiple repositories.
 
  1. Remove the default repository specification from the `[trac] repository_dir` option.
  1. Add the "main" repository as a named repository.
  1. Add a hidden alias to the main repository as the default repository. This ensures that all links predating the migration still resolve to the main repository.
  1. Repeat steps 2, 3 and 4 to add other (named) repositories as needed.
 
+== Migration from a single-repository setup (Mercurial) == #MigrationMercurial
+The following procedure illustrates a typical migration from a Mercurial single-repository setup to multiple repositories. Please note that at the time of writing, no initial resynchronization or any hooks are necessary for Mercurial repositories - see #9485 for more information.
+
+ 1. Upgrade to the latest version of the TracMercurial plugin.
+ 1. Remove the default repository specification from the `[trac] repository_dir` option.
+ 1. Add the "main" repository as a named repository.
+ 1. Add a hidden alias to the main repository as the default repository. This ensures that all links predating the migration still resolve to the main repository.
+ 1. Repeat step 3 to add other (named) repositories as needed.
+
 == Troubleshooting ==
 
 === My trac-post-commit-hook doesn't work anymore === #trac-post-commit-hook

trac/wiki/default-pages/TracRss

    * http://www.wizzrss.com/Welcome.php — WizzRSS Feed Reader for Firefox
 
 ----
-See also: TracGuide, TracTimeline, TracReports, TracBrowser
+See also: TracGuide, TracTimeline, TracReports, TracBrowser

trac/wiki/default-pages/TracStandalone

 
 The spacing here is important.
 
+{{{#!div
+Once the service is installed, it might be simpler to run the Registry Editor rather than use the `reg add` command documented above.  Navigate to:[[BR]]
+`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tracd\Parameters`
+
+Three (string) parameters are provided:
+||!AppDirectory ||C:\Python26\ ||
+||Application ||python.exe ||
+||!AppParameters ||scripts\tracd-script.py -p 8080 ... ||
+
+Note that, if the !AppDirectory is set as above, the paths of the executable ''and'' of the script name and parameter values are relative to the directory.  This makes updating Python a little simpler because the change can be limited, here, to a single point.
+(This is true for the path to the .htpasswd file, as well, despite the documentation calling out the /full/path/to/htpasswd; however, you may not wish to store that file under the Python directory.)
+}}}
+
 For Windows 7 User, srvany.exe may not be an option, so you can use [http://www.google.com/search?q=winserv.exe WINSERV] utility and run:
 {{{
 "C:\path\to\winserv.exe" install tracd -displayname "tracd" -start auto "C:\path\to\python.exe" c:\path\to\python\scripts\tracd-script.py <your tracd parameters>"
 
 == Using Authentication ==
 
-Using tracd with Apache .htpasswd files:
-
-To create a .htpasswd file using htpasswd:
-
-{{{
- $ htpasswd -c /path/to/env/.htpasswd username
-}}}
-then for additional users:
-{{{
- $ htpasswd /path/to/env/.htpasswd username2
-}}}
-then for starting the tracd (on windows skip the "=" after --basic-auth):
-{{{
-tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname
-}}}
-
- `environmentname` is the directory name of the Trac project folder, as opposed to `/fullpath/environmentname` which is the full path to the Trac project folder. See below for another example.
-
 Tracd provides support for both Basic and Digest authentication. The default is to use Digest; to use Basic authentication, replace `--auth` with `--basic-auth` in the examples below. (You must still specify a dialogic "realm", which can be an empty string by trailing the BASICAUTH with a comma.)
 
-  ''Support for Basic authentication was added in version 0.9.''
 
-The general format for using authentication is (replace `--auth` with `--basic-auth` if you want to use Basic auth):
-
+The general format for using authentication is:
 {{{
  $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path
 }}}
  * '''password_file_path''': path to the password file
  * '''realm''': the realm name (can be anything)
  * '''project_path''': path of the project
+ * **`--auth`** in the above means use Digest authentication, replace `--auth` with `--basic-auth` if you want to use Basic auth
 
 Examples:
 
 }}}
 and manually delete " -" from the end and add "${user}:trac:" to the start of line from 'to-file'.
 
+== Reference ==
+
+Here's the online help, as a reminder (`tracd --help`):
+{{{
+Usage: tracd [options] [projenv] ...
+
+Options:
+  --version             show program's version number and exit
+  -h, --help            show this help message and exit
+  -a DIGESTAUTH, --auth=DIGESTAUTH
+                        [projectdir],[htdigest_file],[realm]
+  --basic-auth=BASICAUTH
+                        [projectdir],[htpasswd_file],[realm]
+  -p PORT, --port=PORT  the port number to bind to
+  -b HOSTNAME, --hostname=HOSTNAME
+                        the host name or IP address to bind to
+  --protocol=PROTOCOL   http|scgi|ajp
+  -q, --unquote         unquote PATH_INFO (may be needed when using ajp)
+  --http10              use HTTP/1.0 protocol version (default)
+  --http11              use HTTP/1.1 protocol version instead of HTTP/1.0
+  -e PARENTDIR, --env-parent-dir=PARENTDIR
+                        parent directory of the project environments
+  --base-path=BASE_PATH
+                        the initial portion of the request URL's "path"
+  -r, --auto-reload     restart automatically when sources are modified
+  -s, --single-env      only serve a single project without the project list
+}}}
+
 == Tips ==
 
 === Serving static content ===
 
  ''Support for `htdocs:` TracLinks syntax was added in version 0.10''
 
-=== Using apache rewrite rules ===
-In some situations when you choose to use tracd behind apache, you might experience issues with redirects, like being redirected to URLs with the wrong host or protocol. In this case (and only in this case), setting the `[trac] use_base_url_for_redirect` to `true` can help, as this will force Trac to use the value of `[trac] base_url` for doing the redirects.
+=== Using tracd behind a proxy
+
+In some situations when you choose to use tracd behind Apache or another web server.
+
+In this situation, you might experience issues with redirects, like being redirected to URLs with the wrong host or protocol. In this case (and only in this case), setting the `[trac] use_base_url_for_redirect` to `true` can help, as this will force Trac to use the value of `[trac] base_url` for doing the redirects.
+
+If you're using the AJP protocol to connect with `tracd` (which is possible if you have flup installed), then you might experience problems with double quoting. Consider adding the `--unquote` parameter.
+
+See also [trac:TracOnWindowsIisAjp], [trac:TracNginxRecipe].
 
 === Serving a different base path than / ===
 Tracd supports serving projects with different base urls than /<project>. The parameter name to change this is
 }}}
 
 ----
-See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone?version=13#RunningTracdasservice Running tracd.exe as a Windows service], [trac:TracOnWindowsIisAjp], [trac:TracNginxRecipe]
+See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone?version=13#RunningTracdasservice Running tracd.exe as a Windows service], 

trac/wiki/default-pages/TracTimeline

 
 ----
 See also: TracGuide, TracIni, TracWiki, WikiFormatting, TracRss, TracNotification
-

trac/wiki/default-pages/TracUpgrade

 
 Get the new version as described in TracInstall, or your operating system specific procedure.
 
-If you already have a 0.11 version of Trac installed via `easy_install`, it might be the easiest to use it also to upgrade you Trac installation.
+If you already have a 0.11 version of Trac installed via `easy_install`, it might be easiest to also use `easy_install` to upgrade your Trac installation:
 
 {{{
-# easy_install --upgrade Trac==0.12b1
+# easy_install --upgrade Trac==0.12
 }}}
-(once beta1 is released, that is)
 
-If you do a manual (not operating system specific) upgrade, you should also stop any running Trac server before the installation. Doing "hot" upgrades is not advised, especially not on Windows ([trac:ticket:7625 #7265]).
+If you do a manual (not operating system-specific) upgrade, you should also stop any running Trac servers before the installation. Doing "hot" upgrades is not advised, especially on Windows ([trac:ticket:7625 #7265]).
 
-You may also want to remove the pre-existing Trac code by deleting the `trac` directory from the Python `lib/site-packages` directory, or remove Trac .eggs from former versions.
-The location of the site-packages directory depends on the operating system, and the location in which Python was installed. However, the following locations are common:
+You may also want to remove the pre-existing Trac code by deleting the `trac` directory from the Python `lib/site-packages` directory, or remove Trac `.egg` files from former versions.
+The location of the site-packages directory depends on the operating system and the location in which Python was installed. However, the following locations are typical:
  * on Linux: `/usr/lib/python2.X/site-packages`
  * on Windows: `C:\Python2.X\lib\site-packages`
  * on MacOSX: `/Library/Python/2.X/site-packages`
 
-You may also want to remove the Trac `cgi-bin`, `htdocs`, `templates` and `wiki-default` directories that are commonly found in a directory called `share/trac` (the exact location depends on your platform).
+You may also want to remove the Trac `cgi-bin`, `htdocs`, `templates` and `wiki-default` directories that are commonly found in a directory called `share/trac`. (The exact location depends on your platform.)
 
-This cleanup is not mandatory, but it makes it easier to troubleshoot issues later on, as you won't waste your time looking at code or templates from a previous release that are not being used anymore... As usual, make a backup before actually deleting things.
+This cleanup is not mandatory, but makes it easier to troubleshoot issues later on, as you won't waste your time looking at code or templates from a previous release that are not being used anymore... As usual, make a backup before actually deleting things.
 
 === 2. Upgrade the Trac Environment === #UpgradetheTracEnvironment
 
 trac-admin /path/to/projenv wiki upgrade
 }}}
 
-Note that this procedure will of course leave your `WikiStart` page intact.
+Note that this procedure will leave your `WikiStart` page intact.
 
 === 4. Resynchronize the Trac Environment Against the Source Code Repository ===
 
 
 === 5. Refresh static resources ===
 
-If you've setup web server to give out static resources directly (accessed using /chrome/ URL) then you need to refresh them using the same command:
+If you have set up a web server to give out static resources directly (accessed using the `/chrome/` URL) then you will need to refresh them using the same command:
 {{{
 trac-admin /path/to/env deploy /deploy/path
 }}}
-this will extract static resources and CGI scripts (trac.wsgi, etc) from new Trac version and its plugins into `/deploy/path`.
+this will extract static resources and CGI scripts (`trac.wsgi`, etc) from new Trac version and its plugins into `/deploy/path`.
 
-Some web browsers cache the CSS and Javascript file in a strong way, so you'll perhaps need to refresh the cache of the browsers by a force reload (and tell your users to do so!).
+Some web browsers cache CSS and Javascript files persistently, so you may need to instruct your users to manually erase the contents of their browser's cache.
 
 === 6. Steps specific to a given Trac version  ===
 ==== Upgrading from Trac 0.11 to Trac 0.12 ====
 The minimum supported version of python is now 2.4
 
 ===== SQLite v3.x required =====
-SQLite v2.x is no longer supported, if you happen to still use a Trac database using this format, you'll need to convert it to SQLite v3.x first. See [trac:PySqlite#UpgradingSQLitefrom2.xto3.x] for details.
+SQLite v2.x is no longer supported. If you still use a Trac database of this format, you'll need to convert it to SQLite v3.x first. See [trac:PySqlite#UpgradingSQLitefrom2.xto3.x] for details.
+
+===== PySqlite 2 required =====
+PySqlite 1.1.x is no longer supported. Please install 2.5.5 or later if possible (see [#Tracdatabaseupgrade Trac database upgrade] below).
 
 ===== Multiple Repository Support =====
-If you plan to add more repositories to your Trac instance, as this is now possible with the newly introduced multiple repository support, please refer to TracRepositoryAdmin#Migration.
+The latest version includes support for multiple repositories. If you plan to add more repositories to your Trac instance, please refer to TracRepositoryAdmin#Migration.
 
-This can be of interest even if you only have one repository, as there's now a way to avoid the potentially costly resync check at every request.
+This may be of interest to users with only one repository, since there's now a way to avoid the potentially costly resync check at every request.
 
 ===== Improved repository synchronization =====
-In addition to supporting multiple repositories, a new more efficient method for synchronizing Trac and your repositories was implemented.
+In addition to supporting multiple repositories, there is now a more efficient method for synchronizing Trac and your repositories.
 
 While you can keep the same synchronization as in 0.11 adding the post-commit hook as outlined in TracRepositoryAdmin#Synchronization and TracRepositoryAdmin#ExplicitSync will allow more efficient synchronization and is more or less required for multiple repositories.
 
 Note that if you were using the `trac-post-commit-hook`, ''you're strongly advised to upgrade it'' to the new hook documented in the above references, as the old hook will not work with anything else than the default repository and even for this case, it won't trigger the appropriate notifications.
 
+===== 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).
+
 ==== 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.
 === Wiki Upgrade ===
 `trac-admin` will not delete or remove default wiki pages that were present in a previous version but are no longer in the new version.
 
+=== Trac database upgrade ===
+
+A known issue in some versions of PySqlite (2.5.2-2.5.4) prevents the trac-admin upgrade script from successfully upgrading the database format. It is advised to use either a newer or older version of the sqlite python bindings to avoid this error. For more details see ticket #9434.
+
+== Upgrading Python ==
+
+Upgrading Python to a newer version will require reinstallation of Python packages: Trac of course; also [http://pypi.python.org/pypi/setuptools easy_install], if you've been using that.  Assuming you're using Subversion, you'll also need to upgrade the Python bindings for svn.
+
+=== Windows and Python 2.6 ===
+
+If you've been using !CollabNet's Subversion package, you may need to uninstall that in favor of [http://alagazam.net/ Algazam], which has the Python bindings readily available (see TracSubversion).  The good news is, that works with no tweaking.
 
 == Changing Database Backend ==
 === SQLite to PostgreSQL ===
 For upgrades from versions older than Trac 0.10, refer first to [trac:wiki:0.10/TracUpgrade#SpecificVersions].
 
 -----
-See also: TracGuide, TracInstall
+See also: TracGuide, TracInstall

trac/wiki/default-pages/TracWiki

 
 Editing wiki text is easy, using any web browser and a simple [WikiFormatting formatting system], rather than more complex markup languages like HTML.  The reasoning behind its design is that HTML, with its large collection of nestable tags, is too complicated to allow fast-paced editing, and distracts from the actual content of the pages. Note though that Trac also supports [WikiHtml HTML], [WikiRestructuredText reStructuredText] and [http://www.textism.com/tools/textile/ Textile] as alternative markup formats.
 
-The main goal of the wiki is to make editing text easier and ''encourage'' people to contribute and annotate text content for a project. Trac also provides a simple toolbar to make formatting text even easier.
+The main goal of the wiki is to make editing text easier and ''encourage'' people to contribute and annotate text content for a project. Trac also provides a simple toolbar to make formatting text even easier, and supports the [http://universaleditbutton.org/Universal_Edit_Button universal edit button] of your browser.
 
 The wiki itself does not enforce any structure, but rather resembles a stack of empty sheets of paper, where you can organize information and documentation as you see fit, and later reorganize if necessary. 
 As contributing to a wiki is essentially building an hypertext, 
 general advice regarding HTML authoring apply here as well.
 For example, the ''[http://www.w3.org/Provider/Style Style Guide for online hypertext]'' explains how to think about the
 [http://www.w3.org/Provider/Style/Structure.html overall structure of a work] 
-and how to organize information [http://www.w3.org/Provider/Style/WithinDocument.html within each document]. One of the most important is “make your HTML page such that you can read it even if you don't follow any links.”
+and how to organize information [http://www.w3.org/Provider/Style/WithinDocument.html within each document]. One of the most important tip is “make your HTML page such that you can read it even if you don't follow any links.”
 
 Learn more about:
  * WikiNewPage creation, which can be configured to start from a [PageTemplates page template]
  * A wiki page explaining [http://www.usemod.com/cgi-bin/mb.pl?WhyWikiWorks why wiki works]
 
 ----
-See also: TracGuide
+See also: TracGuide

trac/wiki/default-pages/TracWorkflow

 
  * Actions should be selectable based on the ticket type (different Workflows for different tickets)
 ''Look into the [th:wiki:AdvancedTicketWorkflowPlugin]'s `triage` operation.''
+

trac/wiki/default-pages/WikiFormatting

 || `'''bold'''`, `''italic''`, `'''''Wikipedia style'''''` || \
 || '''bold''', ''italic'', '''''Wikipedia style''''' ||
 || {{{`monospaced and ''nowiki''`}}} || \
-|| `monospaced and nowiki` ||
+|| `monospaced and ''nowiki''` ||
 || `**bold**`, `//italic//`, `**//!WikiCreole style//**` || \
 || **bold**, //italic//, **//!WikiCreole style//** ||
 |-----------------------------------------------------------
 You can create heading by starting a line with one up to six ''equal'' characters ("=")
 followed by a single space and the headline text. 
 
-[=#hn] The headline text can be followed by the same number of "=" characters, but this is no longer mandatory.
+[=#hn]
+The headline text can be followed by the same number of "=" characters, but this is no longer mandatory.
 
 Finally, the heading might optionally be followed by an explicit id. If not, an implicit but nevertheless readable id will be generated.
 
 In addition to the current page, it is possible to refer to other resources:
  * `[[Image(wiki:WikiFormatting:picture.gif)]]` (referring to attachment on another page)
  * `[[Image(ticket:1:picture.gif)]]` (file attached to a ticket)
- * `[[Image(htdocs:picture.gif)]]` (referring to a file inside project htdocs)
+ * `[[Image(htdocs:picture.gif)]]` (referring to a file inside the [TracEnvironment environment] `htdocs` directory)
  * `[[Image(source:/trunk/trac/htdocs/trac_logo_mini.png)]]` (a file in repository)
 
 ||= Wiki Markup =||= Display =||
 [[Image(htdocs:../common/trac_logo_mini.png)]]
 }}}
 
-See WikiMacros for further documentation on the `[[Image()]]` macro.
+See WikiMacros for further documentation on the `[[Image()]]` macro, which has several useful options (`title=`, `link=`, etc.)
 
 
 == Macros ==
 {{{#!td
 !WikiCreole style \\ line\\break
 }}}
+

trac/wiki/default-pages/WikiMacros

 
 {{{
 #!python
-    text = "whatever wiki markup you want, even containing other macros"
-    # Convert Wiki markup to HTML, new style
-    out = StringIO()
-    Formatter(self.env, formatter.context).format(text, out)
-    return Markup(out.getvalue())
+from genshi.core import Markup
+from trac.wiki.macros import WikiMacroBase
+from trac.wiki import Formatter
+import StringIO
+
+class HelloWorldMacro(WikiMacroBase):
+	def expand_macro(self, formatter, name, text, args):
+		text = "whatever '''wiki''' markup you want, even containing other macros"
+		# Convert Wiki markup to HTML, new style
+		out = StringIO.StringIO()
+		Formatter(self.env, formatter.context).format(text, out)
+		return Markup(out.getvalue())
 }}}

trac/wiki/default-pages/WikiPageNames

 
 As visible in the example above, one can also append an anchor to a Wiki page name, in order to link to a specific section within that page. The anchor can easily be seen by hovering the mouse over a section heading, then clicking on the [[html(&para;)]] sign that appears at its end. The anchor is usually generated automatically, but it's also possible to specify it explicitly: see WikiFormatting#using-explicit-id-in-heading.
 ----
-See also: WikiNewPage, WikiFormatting, TracWiki, TracLinks
+See also: WikiNewPage, WikiFormatting, TracWiki, TracLinks

trac/wiki/default-pages/WikiProcessors

 
 ----
 See also: WikiMacros, WikiHtml, WikiRestructuredText, TracSyntaxColoring, WikiFormatting, TracGuide
-
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.