Trac的PeerReview插件中文乱码解决

为Trac安装了PeerReview插件,安装过程见http://www.sunnyu.com/?p=90,使用过程中发现在browse文件内容显示中的中文显示又是乱码了,于是看了 peerReview的代码,发现只要稍作修改就可以解决。
在 peerReviewBrowser.py 和 peerReviewPerform.py 文件中搜索代码

  1.         mime_type=node.content_type

将其修改为

  1.         mimeview = Mimeview(self.env)
  2.         mime_type = mimeview.get_mimetype(node.name)

peerReviewBrowser.py 是在 def _render_file(self, req, context, repos, node, rev=None):函数中
peerReviewPerform.py 是在 def process_request(self, req): 函数中

修改后重新安装插件,再次打开文件内容,中文显示正常。

Popularity: 4% [?]

Related

为Python2.5安装Trac添加PeerReview插件时需要的ClearSilver模板引擎

为Trac 0.11.1安装了PeerReview插件,PeerReview是一个平级代码审查的插件,
首先重网站上下载

  1. unzip peerreviewplugin.zip
  2. cd peerreviewplugin/0.11
  3. python setup.py install

修改trac.ini
添加如下

[components]
codereview.* = enabled

修改 mainnav 的项目,添加 peerReviewMain 项

mainnav = wiki,timeline,roadmap,browser,peerReviewMain,tickets,newticket,search

最后对 envpath 做升级

  1. trac-admin /var/trac/test upgrade

结果配置好运行后重新启动 Tracd,点击 peerReview 连接提示
AssertionError: HDF dataset not available. Check your clearsilver installation“,
缺少ClearSilver插件。
于是到 http://trac.edgewall.org/wiki/ClearSilver 查看相关信息,根据提供地址下载clearsilver补丁安装

  1. wget http://www.clearsilver.net/downloads/clearsilver-0.10.1.tar.gz
  2. tar -xzvf clearsilver-0.10.1.tar.gz
  3. patch -p 0 < diff.pach
  4. cd clearsilver-0.10.1
  5. ./configure –with-python=/usr/local/bin/python \
  6. –disable-ruby –disable-java –disable-perl \
  7. –disable-apache –disable-csharp
  8. make
  9. cp ./python/neo_cgi.so /usr/local/lib/python2.5/lib-dynload/

再次执行PeerReview功能运行正常

安装过程中碰到问题
1. clearSilver的patch 不完全
经过补丁后,./configure 会提示如下一个错误

  1. "Traceback (most recent call last):
  2.   File "", line 1, in
  3. AttributeError: 'module' object has no attribute 'sitedirs'

再次编辑 configure 文件,找到 288 行,将

  1. import site; print site.sitedirs[[0]]

修改为

  1. import sys; print [path for path in sys.path if path.find('site-packages') != -1][0]

再次 ./configure 正常

2.在make install 有错
提示 /usr/local/lib/python2.5/site-packages/setuptool-0.6c8-py2.5.egg 已经存在不是一个目录
直接用

  1. cp ./python/neo_cgi.so /usr/local/lib/python2.5/lib-dynload/

将 python目录下生成的neo_cgi.so 复制到python的库路径解决.

———————–安装后记—————————-
安装后发现其实不用装ClearSilver的,PeerReview已经有对Trac新版本使用的Genshi模板引擎的修订,就是tags/2.1-toddler-rc1这个版本。
对这个版本的说明 有一条就是: all the templates have been rewritten from ClearSilver to Genshi (now fully compatible with Trac 0.11)

Popularity: 4% [?]

Related

Trac中文显示乱码再解决

之前安装好了Trac,Perforce+Trac 0.11安装笔记(附一些问题解决方法如中文乱码问题)
设置default_charset=utf-8 使默认的版本库中的源码文件以utf-8编码显示中文,但是还有一些类型的文件是使用gbk编码的,这样就对这部分文件中的中文就显示不正常了,出现乱码。
经过对Trac源码的研究,发现Trac输出版本库中文件内容时采用的是 mimeviewer 插件,而mimeviewer插件是可以对mime类型做设置的,这样我们就可以通过mime类型来设置文件的字符编码类型。
在trac.ini 中添加如下内容

[mimeviewer]
#mime_map=text/plain; charset=gbk:c:txt:TXT,
mime_map=text/x-php; charset=utf-8:php
tab_width=4

这样就将c,txt,TXt为后缀的文件以gbk编码方式显示,而php文件以utf-8编码方式显示

有了以上的认识,我们可以对trac做如下策略的配置:
可以将大多格式的编码格式通过默认的default_charset来设置
针对个别扩展名文件的字符集通过mimeviewer设置来指定的字符集。

当然,如果相同扩展名的文件的既有utf-8的又有gbk的,那就不行了。

附mimeviewer识别字符集的顺序
1.首先看有没有对应的mime_map设置,如果有,并且有在mime_map中有该类型的charset设置,则使用设定的charset
2.如果1不满足,则自动探测是否是unicode文件,通过文件的头两个字节来识别,如果是,则返回对应的unicode字符类别

\xff\xfe     开头对应 utf-16-le
\xfe\xff     开头对应 utf-16-be
\xef\xbb\xbf 开头对应 utf-8 

3.如果1,2不满足,则返回default_charset中设置的字符集

Popularity: 4% [?]

Related

给Trac添加几个管理用插件

开始尝试Trac的使用,在有些地方感觉使用不方便,但是还好,Trac有插件来解决问题。

官方插件列表页面 http://trac.edgewall.org/wiki/TracPlugins
更多第三方插件http://trac-hacks.org/wiki

WebAdmin

首先是管理,trac-admin 的命令行管理方式多有不便,于是有WebAdmin插件,可以通过Web页面来管理

  1. svn export http://svn.edgewall.com/repos/trac/sandbox/webadmin/
  2. python setup.py bdst_egg
  3. python setup.py install

在trac.ini中添加

[components]
webadmin.* = enabled

添加 TRAC_ADMIN 权限到一个账号上。

  1. trac-admin /var/trac/test permission add test TRAC_ADMIN

AccountManager

再是账号管理AccountManager
可以方便添加,修改,删除账号,同时可以通过html方式来登陆而不是通过http的auth方式,增加了灵活性。

  1. svn co http://trac-hacks.org/svn/accountmanagerplugin/trunk
  2. python setup.py install

用管理员账号登陆后在admin页面先做插件的设置,然后在管理面板的Account页做账号管理
在plugin设置中我选择了如下一些功能模块

再在Administrator页面的Account=>Config下面,设置好密码文件的名称,我这边使用的是/var/trac/.passwd 保存

修改tracd的启动方式,去掉 –basic-auth参数,重新启动tracd,启用新的账号验证机制

Popularity: 4% [?]

Related

Perforce+Trac 0.11安装笔记(附一些问题解决方法如中文乱码问题)

网上有很多svn+Trac的安装配置文档,但是有人给做了Trac的后端版本控制扩展,是Trac的应用不再限于svn版本库,在这儿就尝试着给Trac安装一个Perforce后端版本库一下。

Trac是使用Python编写的,因此首先要个机器安装Python环境

安装Python

  1. wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
  2. tar -xzvf Python-2.5.2.tgz
  3. cd Python-2.5.2
  4. ./configure
  5. make
  6. make install

为Python安装easyinstall

  1. wget http://peak.telecommunity.com/dist/ez_setup.py
  2. python ez_setup.py

安装PyProtocol

  1. wget http://peak.telecommunity.com/dist/PyProtocols-0.9.3.tar.gz
  2. tar -xzvf PyProtocols-0.9.3.tar.gz
  3. cd PyProtocols-0.9.3
  4. python setup.py install

安装SQLite3

  1. wget http://www.sqlite.org/sqlite-amalgamation-3.6.2.tar.gz
  2. tar -xzvf sqlite-amalgamation-3.6.2.tar.gz
  3. cd sqlite-3.6.2/
  4. ./configure
  5. make
  6. make install

安装 PySqlite

  1. wget http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.0/pysqlite-2.5.0.tar.gz
  2. tar -xzvf pysqlite-2.5.0.tar.gz
  3. cd pysqlite-2.5.0
  4. python setup.py install

安装Trac

  1. wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz
  2. tar -xzvf Trac-0.11.1.tar.gz
  3. cd Trac-0.11.1
  4. python setup.py install

官方安装配置页面 http://trac.edgewall.org/wiki/TracInstall
采用简单的独立服务启动,没有使用mod_python和fastcgi等方式

  1. trac-admin /var/trac/test initenv
  2. tracd –port 8080 /var/trac/test

可以测试trac运行正常

Trac中文化Wiki

  1. svn co http://trac-hacks.org/svn/zoomquiettranslation/trunk/0.11.x
  2. trac-admin /var/trac/test wiki load default-pages/
  3. cp ZhTracGuideToc.py /var/trac/test/plugins

在trac.ini中添加如下内容

[mainnav]
wiki.href = /wiki/ZhWikiStart

[metanav]
help.href = /wiki/ZhTracGuide

添加Perforce版本库支持

Python的Perforce支持PyPerforce

  1. wget  http://downloads.sourceforge.net/pyperforce/PyPerforce-0.4.zip?modtime=1186240132&big_mirror=0
  2. unzip PyPerforce-0.4.zip
  3. cd PyPerforce-0.4
  4. python setup.py install
  5. LD_LIBRARY_PATH=/usr/local/ssl/lib python setup.py install

下载安装Perforce Plugin

  1. unzip perforceplugin_trunk.zip
  2. cd perforceplugin/trunk
  3. python setup.py bdist_egg
  4. python setup.py install

配置PerforcePlugin
修改 /var/trac/test/conf/trac.ini 文件,在trac这一节中添加如下一些内容

[trac]
repository_type = perforce
repository_dir = /

[perforce]
port = perforce:1666
user = p4trac
password = test
unicode = 0

建议在 Perforce 的配置中添加一个 只读权限并且不过期的账号,然后在Trac的配置中使用这个账号,并使用Perforce的Ticket来替代Password验证,达到不透露账号密码做保护的目的。

安装过程碰到的问题以及解决

Popularity: 4% [?]

Related

发现一个FireFox好插件GTDInbox

今天将FireFox升级了,以前安装的一些插件不能用了,于是乎到FireFox网站上查看更新,并查看了一下插件列表,发现了一个很好的插件GTDInbox,他使用GTD的思想来使用Gmail于是便安装了。
GTDInbox 的老家 http://www.gtdinbox.com
FireFox Addon 中的地址 https://addons.mozilla.org/en-US/firefox/addon/3209
当然也可以在 FireFox 的插件管理中搜索 GTDInbox 关键字,然后直接安装。

通过GTDInbox,我们可以把Gmail当作GTD管理工具来使用。

使用Gmail+GTDInbox,大家可以:

1. 将Gmail当作自己工作的Inbox,所有的工作都收集到Gmail中,这里面有别人发来的Email引起的,或者由自己设定的
2. 通过Gmail自带的Label功能来定义不同的工作属性,比如:在哪做,在什么时候做,关于什么项目的,是属于哪方面的资料
3. 可以通过Lable随时查看不同状态下的任务
4. 事情处理掉之后可以很方便的修改任务状态

注意安装成功之后,用FireFox打开一个gmail的账号,如果是安装后第一次使用该Gmail账号,则GTDInbox会做一些初始化的工作,比如
1. 添加一些标准的GTD标签,因为工作都是由标签来标识的,所以在使用之前添加好标签。这个GTDInbox帮助用户完成一部分,剩下的可以根据自己需要添加。
2. 添加一些过滤器。因为每项工作就都一封Email,当我们给自己安排工作的时候,需要自动给Email加上待处理工作的标签。这样可以方便看到处于某一状态下工作的列表。

使用方法很简单,整个过程比较符合GTD。

* 任务的来源有两种,别人给你发的Email需要你做一些事情,或者是自己给自己安排要做的一些事情。形式都是Email的形式,不过给自己安排是使用经过GTDInbox设置的界面,比较方便。这里将Gmail当作所有任务的汇集点。
* 不管是收到的Email还是自己给自己安排的任务,只需要加上合适的GTD标签来表示这项任务的状态就可以了。比如紧急的可设置为Next Action,不紧急的可以在将来某一天做的就设置为Some Day。
* 当任务完成时,可以将任务状态改为Finished,标识任务完成。

总的来说,GTDInbox对通过FireFox来使用Gmail的人来说是一大福音,通过它可以搭建一个以Gmail为中心的GTD管理工具。使用Gmail完成了GTD中的收集任务,处理任务,管理任务,复习任务,执行任务的工作。

Popularity: 3% [?]

Related

MindManager的插件ThinkingWorks

MindManager插件ThinkingWorks 是采用 Kepner and Fourie 方法对问题分析与决策进行分析。
在MindManager中他采用对话向导提问的方式,将问题逐步清晰化。
他提供了下面五个向导针对不同领域的问题进行分析决策。

官方广告中所列出的使用ThinkingWorks插件(Kepner and Fourie 方法)的好处:

可惜没有中文版,要是有人汉化一下就好了。

Kepner and Fourie方法的官方网址
ThinkingWorks插件的下载地址,这个地址中还有该插件对话框的界面抓图。
网上google搜索了一下,国内有上海的竞越管理培训公司在做该方法的培训

Popularity: 3% [?]

Related

为WordPress安装Popularity Contest插件

安装了WP-Thread-Coments插件后再为WordPress安装一个Popularity Contest插件,用以标志文章的受欢迎度。

到网上搜索Popularity Contest下载,将下载的文件上传到wp-content/plugins目录下,进入后台plugins管理,按activate 按钮,结果提示遇到 fatal 错误。疑惑,看说明发现Popularity Contest是为WordPress 2.3.x 做的,我用的2.5.1的WordPress系统,会不会是版本不兼容。
使用Google到网上搜了一把,发现一篇 如果让Popularity contest 插件适用于WordPress 2.5
不过按照其步骤处理后,仍然是 fatal 错误。

难道Popularity Contest不能在WordPress 2.5.1系统上运行吗?不信邪中,直接到作者的网站上下载最新的版本覆盖上传的原文件的到Ver 1.3b3的,按activate 仍然是 fatal 错误。
继续找,看到作者网站在下载连接边上有svn库,于是到svn库那里面查看,发现一个3months前的版本,于是下载下来上传覆盖,提示Ver 1.3b4, 这时再在plugins管理中按activate 终于没有了fatal错误。

打开一个页面测试,发现文章后面有了 Popularity 的值。到此为WordPress 2.5.1安装 Popularity Contest插件成功。

Popularity: 2% [?]

Related

给用的WordPress添加了一个留言插件

博客对留言的回复对应不上,总是作为一个新的留言跟在后面,没有了一种对应关系,于是到网上google了一把,发现很多WordPress的留言插件,做了一下对比,然后选择了一个国人做的 WordPress-Thread-Comment 插件安装上,在每个留言后添加了一个回复按钮,像论坛帖子那样的显示方式,感觉还不错。

Popularity: 2% [?]

Related