博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Trac 经验谈之(5)插件篇
阅读量:5140 次
发布时间:2019-06-13

本文共 2819 字,大约阅读时间需要 9 分钟。

=================

Trac 经验谈之(5)插件篇

赖勇浩()

如果说 ticket 是 Trac 的灵魂,那么把插件(plugins)称为 Trac 的血肉应不为过。因为这是使用的经验谈,所以 Trac 的插件机制原理什么的,我们就不谈了,就介绍一下我都有用哪些插件,这些插件的功能又是什么,解决了什么问题。
不过在这之前,还是需要先知道怎么查找、下载和安装插件。
Trac 的插件都在 网站上安家,所以去这里找插件就对了!里面的每个项目都有一个自己的页面,基本上下载、安装和配置都在上面写写清清楚楚的。一般可以选择下载 zip 格式的发布包,然后解压到某个目录下执行一下 python setup.py bdist_egg 把代码编译成 egg。再用管理员账号登陆 Trac,点击右上角的“管理(admin)”,在新页面选择左侧栏“一般(general)”下的“插件(Plugins)”链接,这“管理插件”页面右上角可以把之前编译好的 python egg 上传安装,然后编辑 trac.ini 文件进行配置即可。
接下来正式开始介绍插件,按体验和功能进行简单分类。

体验

AutocompleteUsers

主页:,我现在使用的是 0.4.1 版本,它的作用是在输入属主或抄送的时候,以 Ajax 的风格即时提示用户名,这样只记住用户名的前面一两个字母就行啦。效果图:

还有一个可选的类似插件叫 TracAutoCompletePlugin,见:

CcSelectorPlugin

主页:。虽然通过编辑 trac.ini 把 [ticket] 节加上 restrict_owner = true,可以实现属主的列表选择,但是对于中国人来说,要记住别人的用户名实在是太困难了,因为有些人是用英文名、有些人用拼音名、有些人姓在前面,有些人姓在后面,最后的方式莫过于能够通过真实姓名来选择。这个插件就是解决了这个问题,效果图:

我对 CcSelectorPlugin 进行了硬编码式地 hack,实现了对 owner 的选择,算是 Trac 在用户选择方面最完美的解决方案了,等我整理代码后,择日开源给大家使用。

BreadCrumbsNavPlugin

主页:,顾名思义,它的作用是解决用户想回到之前的页面却操作起来很麻烦的问题。启用这个插件后,在页面的右上角,就是登陆、设置等链接的那个地方,会多出一行链接,记录了你之前访问过的若干个页面,就像面包屑一样,找到“回家的路”。

DateFieldPlugin

主页:,通过一些设置,这个插件能够实现日期的可视化输入和校验,效果图:

CustomFieldAdminPlugin

主页:。自定义字段(custom fields)异常重要,很多体验提升的插件都是基于它的,如果你有兴趣去查看一下 Trac 的源代码,你会发现其实 Trac 在相当多的地方专门处理了 Custom Fields。这个插件提供了 Web 界面来管理自定义字段,比如增加、改变和删除等,而之前你需要直接编辑 trac.ini(这是一种危险的、容易出错的方式)。

功能

TicketExtPlugin

主页:,通过这个插件,可以实现:1)根据 ticket 的类型使用不同的描述模板;2)能够通过 TracAdmin 页面可视化地定位模板;3)根据 ticket 的类型可以使能或禁用自定义字段。我们通过这个插件,定制了自己的 ticket 描述模板,很好地引导了初次接触 Trac 的用户,解决了他们“不知道怎么用”的问题。

TracWysiwygPlugin

主页:。Trac 不被团队中的非程序员成员拒绝使用,很大的一个原因莫过于他们觉得 Wiki 语法需要学习,太难。这个插件可以在一定程度上缓解问题,达到了部分的“所见即所得”效果,基本上所有用户都安装了这个插件。

GraphvizPlugin

主页:。所有 Unix 粉丝都对 Graphviz 如雷贯耳吧?这个插件实现了对 wiki 中 graphviz 程序的解释,让大家能够写文本的 Wiki,看图形的效果。例子:

{
{
{#!graphviz digraph G { rankdir = "LR" GraphvizPlugin [ URL=GraphvizPlugin ] Trac [ URL="http://trac.edgewall.org/" fontcolor=red ] GraphvizPlugin -> Trac }}}}
效果图:
需要注意的是使用这个插件需要在机器上安装 graphviz 程序。

ChildTicketsPlugin

主页:。这个插件功能强大,不过简单来说就是给 Trac 带入子任务单的概念。可以设置某个类型的任务单是否能够拥有子任务单,也可以限制它子任务单的类型,以及子任务单从父级继承的字段等。你即可以直接在某个任务单页面直接创建子任务单,也可以查看到当前所有子任务单的信息(字段是可以设置的),如下图:

还有一个SubticketsPlugin(见:)提供类似的功能,但是我不喜欢这个插件,因为当增加子任务单时需要修改父任务单,这太操蛋了,而且定制性也弱很多。

TracTicketValidatorPlugin

主页:。这是金山珠海的员工 Richard Liao 贡献的插件,提供了基于正则表达式的字段合法性校验,非常赞。还有一个很类似的插件叫 TicketValidatorPlugin(见:),但我不喜欢,因为它是基于 ticket 的状态来验证的字段的合法性的,而且只提供弱爆了的 required 验证。

XmlRpcPlugin

主页:,顾名思义,这个插件给 Trac 提供了 XML-RPC 机制,这样类似 TaskTrayTask 的客户端软件就可以通过 XML-RPC 定期查询 Trac,获得新的信息,并提供用户。除此之外,还有不少应用也依赖于它。使用时的注意事项就是需要给用户开通 XML-RPC 权限。

TracSqlPlugin

主页:。这个插件应该很少人用,但是真的赞爆了!这个插件在你想 hack Trac 的时候非常有用。启用后,它在页面上增加了一个“SQL”的选项卡(右上角)。通过它可以:1)使用 SQL 语句查询数据库,2)查询格式化或未格式化的数据,3,导出数据为CSV,4)浏览数据库数据表结构。无论你使用提 SQLite、MySQL 还是 PostgreSQL 都可以使用这个插件。效果图:

to be continued...

转载于:https://www.cnblogs.com/aiwz/archive/2011/08/02/6154333.html

你可能感兴趣的文章
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
3.浏览器检测
查看>>
01: socket模块
查看>>