Skip to main content

Genshi processor for wiki pages

Description

The GenshiMacro allows you to write and render Genshi templates directly in wiki pages with a new Genshi processor.

Your templates will have access to the request as req, which can be useful for tasks like URL generation, rendering form tokens for POST requests, and checking for a logged-in user.

Note: no security considerations whatsoever went into the making of this plugin. It might be a terrible idea. Trac core dev Remy Blank said:

> Genshi templates allow executing arbitrary Python code. So you basically
> give users who can insert the macro anywhere (wiki page, ticket comment,
> etc) permission to act as the user running Trac, including running run
> any shell command.
>
{{{#!Genshi
<div>${open('/etc/apache2/htpasswd').read()}</div>
}}}

{{{#!Genshi
<?python
  import os
  os.system("rm /path/to/env/db/trac.db")
?>
}}}
>
> So my advice is, only enable this macro on sites where you trust *all*
> users who can edit *any* wiki text with the web server's account.

Configuration and Usage

To use the plugin, install it in your Trac environment and enable its components in trac.ini:

[components]
genshimacro.* = enabled

You can then write Genshi templates directly in wiki pages like so:

{{{
#!Genshi
<div xmlns:py="http://genshi.edgewall.org/">
 <py:choose>
  <py:when test="req.session.authenticated">
   <form method="POST" action="${req.href.newticket()}">
    <input type="text" name="field_summary" placeholder="My new ticket"
           id="field-summary" />
    <input type="hidden" name="__FORM_TOKEN" value="${req.form_token}" />
    <input type="submit" />
   </form>
  </py:when>
  <py:otherwise>
   <b>To file a new ticket, you'll need to
      <a href="${req.href.login()}">log in</a> or
      <a href="${req.href.register()}">create an account</a>
      first.</b>
  </py:otherwise>
 </py:choose>
</div>
}}}

Metadata

Release files for trac-GenshiMacro 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trac-GenshiMacro 0.1
File Size Uploaded
trac-GenshiMacro-0.1.tar.gz 2.2 kB Details

Release files / trac-GenshiMacro-0.1.tar.gz

Download URL trac-GenshiMacro-0.1.tar.gz
Size 2.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b5801be0388b0bbc962379fe0d7c79e547d11311fb63b1a8a8dac394f0fd3c91
BLAKE2b-256 checksum
How to use checksums
961d430701de68c8edbeaf0b05540223c92ddc200d182a47f18015c950e4aac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page