GAE 开源博客系统:Doodle
![]()
说明
既然是叫Doodle这样一个随意的名字,自然就是个随性而做的玩意。
出发点仅仅是为了将自己论坛和QQ空间的资料导出到Google App Engine平台上,作为一个免费的博客而已。
因此也不要对功能抱有什么希望,我只是满足自己的需求而已。
性能
- 页面的响应时间一般小于200ms,平均约在100ms以内。
- 新实例的启动时间一般小于1000ms,平均约为500ms,CPU时间约在220ms左右。
- 免费的CPU配额每天可以支撑约20万PV。
已实现的功能
- 导入Discuz!和WordPress的数据。
- 导入、导出Doodle专用的数据。
- 生成ATOM供稿。
- PubSubHubbub。
- XML-RPC ping。
- 生成网站地图。
- 可在配置文件中更换使用主题。
- 多级分类,标签,友情链接。
- 邮件通知。
- 代码高亮。
- BBCode解析。
- 富文本编辑器。
- AJAX表单。
- 标签云。
- 文章评分。
- 自定义文章URL,可含中文。(但URL格式有所限制)
- 搜索。(需自行设置关键字,因为暂无好用的中文全文搜索)
- 自动载入下一页和评论。
- 缓存常用数据和页面。
- 可显示和记录页面响应时间、数据库访问时间与数据库访问次数。
- 用电子邮件发表日志。
- 用户分级和屏蔽。
- Twitter集成。
- 统计订阅数。
- 统计在线访客数。
待实现的功能
- 导出为RSS形式的数据,以供WordPress导入。
- 国际化支持。
- 更多主题及手机主题。
- 投票。
- 页面重定向和文章合并。
- 垃圾评论审核和过滤。
- 上传附件。(暂时没开启GAE的支付,因此没法用Blobstore。)
不推荐且暂未实现的功能
- 密码保护。(需要在数据库里增加一个不常用的属性,索引需要增加数条,且处理逻辑大幅增加。)
- 多作者支持。(目前实现默认作者即管理员,若要实现这个角色,用户访问时都需要增加一次数据库访问来验证,且逻辑将大幅修改。)
- 在线更换主题。(需要跟踪用户cookie,创建多个模板引擎,增大内存占用量。)
- 更改URL格式。(需要改动多处代码逻辑。)
- Trackback与Pingback。(不觉得有多好用,反而容易被垃圾信息骚扰。)
不会去实现的功能
- 生成RSS供稿。(功能与用途与ATOM相当,且主流阅读器都支持ATOM,同时生成2者会浪费数据库配额。)
- 访问记录和统计。(可用Google Analytics等服务代替。)
- 存档。(说实话我不觉得这个功能有用,想找文章直接搜索就行了。)
- 向后翻页和按页号定位。(向后翻页无法使用游标,按页号定位在页数较大时非常影响性能。)
- 支持Windows Live Writer。(微软这该死的破软件装了我无数次都失败。)
其他问题
-
为什么我访问博客时,界面一团糟啊?
因为我把koi主题改成HTML 5了,而你不幸用了不支持它的浏览器,换个更现代化的浏览器就行了。
-
为什么koi主题是GPL License,Doodle使用了它,却不以GPL License发布?
主题是可以随意更换的,它本身并不属于Doodle的一部分,我只是附带放在这里,因为暂时没空做个新主题。就好像Windows是闭源的,你写了一个可用于Windows的GPL程序,你不能要求用你软件的Windows系统就必须以GPL开源。
-
有使用说明吗?
有个简单的README.txt文件可供参考。使用时基本上只需要修改下setting.py文件和几个yaml文件。导入数据有个简单的说明,自己看吧,也许需要自己改些配置和代码。此外可能还要修改URL映射。
-
使用上有什么限制吗?
- 分类名是唯一的,不能有2个同名分类。
- 分类路径全长、文章标题、文章URL、用户名和用户网址不能超过500字节。
- 单篇文章不能超过1MB。
- 暂不支持全文搜索。
-
文章太多时,生成网站地图会占用很多数据库资源,且网站地图大小限制在10MB以内,所含文章数限制在5万个以内。(每天写1篇文章的话,够写137年了,因此不愿为了支持大博客而采用网站地图索引的设计。)
-
现在有那么多基于Google App Engine的blog程序,Doodle与它们相比有什么优缺点?
我认为这主要是设计上的取舍问题。如果要实现更多功能,势必增加数据库大小,并影响响应时间。而Doodle只保留了我认为必备的功能,因此数据库可以很精简,也有更多的时间可以花在优化性能和实现好玩的功能上。
版权
Doodle程序主体以MIT许可发布。
另外还使用到了下列不属于本程序的库或资源:
- keakon的YUI框架。(MIT License)
- kuwata-lab.com的Tenjin模板引擎。(MIT License)
- Will McGugan的Post Markup(做了一些修改)。(New BSD License)
- jQuery。(MIT License)
- markItUp!。(MIT License)
- Highlight.js。(BSD license)
- 3D球面标签云(修正了一个bug,并增强性能)。
- N.Design Studio的koi主题(从WordPress移植过来)。(GPL License)
- WPSHOWER的iPhonsta主题(从WordPress移植过来)。
- FreshPress主题(从WordPress移植过来)。
- 其他属于Python或Google App Engine自带的库。
我是作者,想要修改项目内容?把修改内容发到联系邮箱(看最底部)

用户评价 (0)