在Trac wiki页面上编写Genshi模板
项目描述
描述
GenshiMacro 允许您使用新的 Genshi 处理器在wiki页面上直接编写和渲染Genshi模板。
您的模板将可以通过 req 访问请求,这在执行如URL生成、为POST请求渲染表单令牌和检查登录用户等任务时可能很有用。
注意:制作此插件时没有任何安全考虑。这可能是件糟糕的事情。Trac 核心开发者Remy Blank 说
> 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.
配置和用法
要使用此插件,请将其安装到您的Trac环境中,并在 trac.ini 中启用其组件
[components] genshimacro.* = enabled
然后您可以直接在wiki页面上编写Genshi模板,如下所示
{{{
#!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>
}}}
项目详情
关闭
trac-GenshiMacro-0.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b5801be0388b0bbc962379fe0d7c79e547d11311fb63b1a8a8dac394f0fd3c91 |
|
| MD5 | 6f378dcd71cb1d63604bab81d7af8254 |
|
| BLAKE2b-256 | 961d430701de68c8edbeaf0b05540223c92ddc200d182a47f18015c950e4aac9 |