不是给新浪做广告。一、我会经常在微博上发些动态,比如uliweb, plugs等。二、百度rss订阅乱码。三、新浪有轻博客,可以写长文,这样我就可以只在一个地方写了。懒得copy来copy去的。
Python, open source, ...
不是给新浪做广告。一、我会经常在微博上发些动态,比如uliweb, plugs等。二、百度rss订阅乱码。三、新浪有轻博客,可以写长文,这样我就可以只在一个地方写了。懒得copy来copy去的。
这两天一直在考虑如何实现一个比较cool的互动式编写教程的功能,当然也可以用来写博客,作为放在 uliweb.clkg.org 上的一个教程的样例。这个样例会边做边写。那么很重要的一个问题就是如何根据录入的内容生成易于使用的html的页面。目前不想使用所见即所得的编辑器,这样生成页面比较麻烦。打算使用结构化文本,不过上传图片可能不是很方便,不过没太大关系。但是如何进行解析,采用哪个包就成为一个问题。我希望格式尽可能的简单。正好这两天看了pycon上的一个视频
Parsing Horrible Things with Python. 上面介绍了演讲者用的几个解析器,很多是基于PEG(关于PEG http://www.brynosaurus.com/pub/lang/peg.pdf 我也不懂,第一次听说)方式的解析。于是我想试试使用parsimonious作一个解析器。于是开始下载,尝试。不过,发现目前还无法只写文本的形式就生成一个解析器,为此我写了一个问题在github上。作者回复是让我关注它,目前这个功能还没有实现,只是实现了可以解析PEG语法。看到它的底层实现其实还是基于正则表达式,只不过写起来可以容易点。于是我还是在这个基本上进行了尝试。发现除了还无法定义文本的Grammar之外,它提供的Visitor也不是我想象的那样工作。不过,它已经可以生成AST的树,这一点还是不错。
uliweb的论坛其实我已经部署过很多次了,象dotcloud, sae等,现在由asmcos搭建了一个新的,地址在: http://uliweb.clkg.org 。非常感谢。现在的forum功能已经使得了bootstrap样式,比以前要更好看一些,功能上也做了一些増强,比如増加了对某个人的回复功能,不过还有点小bug,有时间再优化。
uliweb和plugs也一直在改进。目前我跟踪bootstrap比较多,目前plugs中的bootstrap已经是2.0.1了。过几天我升到2.0.2。jquery最高版本是1.7.2b1,如果出正式的也要更新上。plugs的layout开始按分类来处理,已经増加了bootstrap的layout,与原来的layout兼容。同时改写了一些模板。
uliweb的form也做了更新,主要是支持了Bootstrap的样式,目前缺省的样式就是BootstrapLayout。
今天又试验成功在pypy上跑uliweb。
uliweb的ORM还想再做一些优化,如増加exist()方法,orm app支持短连接。
对uliweb感兴趣的人可以在uliweb的邮件列表或上面的论坛与我交流。甚至有兴趣参与开发都是欢迎的。
已经在pypi上可以看到,并且可以通过code.google和github来下载。使用easy_install 应该也可以安装。
现在sae的内测版本已经内置了uliweb的版本,并且sqlalchemy也安装了,版本是0.7.3。
为什么版本号这么低,因为我感觉还不是特别的满意,等再添加一些新的功能争取升级到0.0.1吧。最新要添加的功能计划:
数据导入导出増加对csv, excel的支持
増加一个数据库维护的界面,将放在plugs中,以便可以在sae上使用
将form, generic, dbupload文档写完
bug fix
后面还要完成的:
plugs相关的文档
orm的进一步优化
CRUD的代码框架的生成
forum功能的进一步优化
开发一个Blog app
rss feed生成支持
develop功能使用jquery重写
与in.js的集成
版本将是0.0.1a7,不过还有一些没弄完的。有一些变化会造成与现有的程序不兼容的地方:
1. Middleware的配置写法变化
原来是在GLOBAL下,现在独立了,现在的写法是:
[MIDDLEWARES]
name = 'middleware_class_path'[, order]
文档说明: http://readthedocs.org/docs/uliweb/en/latest/middleware.html#id4
影响最大的可能就是apps/settings.ini了,如果你用到事务,可能会写transaction_middleware,那么可能要修改。其它的middle一般都在某个app下的settings.ini中定义好了,一般不用再重复定义,所以影响不大。
2. app依赖定义变化。原来是在app下的config.ini中的[DEFAULT]中,现在修改为[DEPENDS]了。
以上内容,只要是涉及到uliweb和plugs的app都已经进行了修改。只有自已定义的app和settings要手工修改一下。
使用Spninx是支持i18n的,文档在这里。
一、翻译
经过我的试验,具体的命令就是:
sphinx-build -b gettext -d ../locale/doctrees ./ ../locale/en
-b gettext 表示要生成pot格式
-d ../locale/doctrees 好象是缓存
./ 源文件目录
../locale/en 输出目录
这个命令是考虑以下目录结构:
/project
/docs
#you are here
/locale
/en
你在docs目录下来进行操作。生成pot后就可以翻译了。
以上面为例,翻译完的PO文件放到 locale/en/LC_MESSAGES 下,同时生成mo文件。
二、生成文档
这样mo准备完成。下面再次通过正常的翻译来生成目标结果,如html格式文档。
首先要检查conf.py中是否有locale_dirs的配置,如果没有,则添加进去:
locale_dirs = ['../locale']
这里可以添加多个。然后,或者直接修改conf.py中的lanaguage的值为目标语言,或者在编译时在命令行来指定,如:
sphinx-build -b html -d ../html/doctrees -D language=zh_CN ./ ../html
这里参数解释一下:
-b html 将生成html格式文档
-d ../html/doctrees 缓存目录,这里和locale要不同,不然会报错
-D language=zh_CN 在命令行指定修改配置中的lanauge的值,这里为zh_CN。
也没什么特别的更新,不过把以前积累的东西生成了一个版本。
Upgrade winpdb version to 1.4.8
Improve Edit->Format->Wrap Text functionality to suit for reStructuredText wrap
Made memo file configurable thanks to Helio Perroni Filho
Add Bash support thanks to Helio Perroni Filho
Add some useful methods to support scripts files. Such as emptytab, newtab, etc. thanks to Helio Perroni Filho
Add Lua support thanks to zhangchunlin
Improve python file detect according to #! /usr/bin/env python thanks to zhangchunlin
Add default color theme support, you can set it in Preference
Add Create Python Package menu in context menu of Directory Browser Window
Improve web2py plugin
Improve regex window, and when you set Unicode flag, it'll automatically convert \uXXXX to unichr
Fix strip tailing spaces bug
下载地址: http://ulipad.googlecode.com/files/ulipad.4.1.zip