1. keakon keakon
  2. Doodle

Wiki

Clone wiki

Doodle / Home

Online demo
Go to English description
Release Notes

说明

既然是叫Doodle这样一个随意的名字,自然就是个随性而做的玩意。
出发点仅仅是为了将自己论坛和QQ空间的资料导出到Google App Engine平台上,作为一个免费的博客而已。
因此也不要对功能抱有什么希望,我只是满足自己的需求而已。

性能

  • 页面的响应时间一般小于200ms,平均约在100ms以内。
  • 新实例的启动时间一般小于1000ms,平均约为500ms,CPU时间约在220ms左右。
  • 免费的配额每天可以支撑约1万PV。

已实现的功能

  1. 导入Discuz!和WordPress的数据。
  2. 导入、导出Doodle专用的数据。
  3. 生成ATOM供稿。
  4. PubSubHubbub。
  5. XML-RPC ping。
  6. 生成网站地图。
  7. 可在配置文件中更换使用主题。
  8. 多级分类,标签,友情链接。
  9. 邮件通知。
  10. 代码高亮。
  11. BBCode解析。
  12. 富文本编辑器。
  13. AJAX表单。
  14. 标签云。
  15. 自定义文章URL,可含中文。(但URL格式有所限制)
  16. 搜索。(需自行设置关键字,因为暂无好用的中文全文搜索)
  17. 自动载入下一页和评论。
  18. 缓存常用数据和页面。
  19. 可显示和记录页面响应时间、数据库访问时间与数据库访问次数。
  20. 用电子邮件发表日志。
  21. 用户分级和屏蔽。
  22. Twitter集成。
  23. 统计订阅数。
  24. 统计在线访客数。
  25. 统计动态请求数。
  26. 支持Windows Live Writer。

待实现的功能

  1. 导出为RSS形式的数据,以供WordPress导入。
  2. 更多主题及手机主题。
  3. 页面重定向和文章合并。
  4. 垃圾评论审核和过滤。
  5. 上传附件。

不推荐且暂未实现的功能

  1. 密码保护。(需要在数据库里增加一个不常用的属性,索引需要增加数条,且处理逻辑大幅增加。)
  2. 多作者支持。(目前实现默认作者即管理员,若要实现这个角色,用户访问时都需要增加一次数据库访问来验证,且逻辑将大幅修改。)
  3. 在线更换主题。(需要跟踪用户cookie,创建多个模板引擎,增大内存占用量。)
  4. 更改URL格式。(需要改动多处代码逻辑。)
  5. Trackback与Pingback。(不觉得有多好用,反而容易被垃圾信息骚扰。)

不会去实现的功能

  1. 生成RSS供稿。(功能与用途与ATOM相当,且主流阅读器都支持ATOM,同时生成2者会浪费数据库配额。)
  2. 访问记录和统计。(可用Google Analytics等服务代替。)
  3. 存档。(说实话我不觉得这个功能有用,想找文章直接搜索就行了。)
  4. 按页号定位。(按页号定位在页数较大时非常影响性能。)

其他问题

  1. 为什么我访问博客时,界面一团糟啊?
    因为我把koi主题改成HTML 5了,而你不幸用了不支持它的浏览器,换个更现代化的浏览器就行了。

  2. 为什么koi主题是GPL License,Doodle使用了它,却不以GPL License发布?
    主题是可以随意更换的,它本身并不属于Doodle的一部分,我只是附带放在这里,因为暂时没空做个新主题。就好像Windows是闭源的,你写了一个可用于Windows的GPL程序,你不能要求用你软件的Windows系统就必须以GPL开源。

  3. 有使用说明吗?
    有个简单的README.txt文件可供参考。使用时基本上只需要修改下setting.py文件和几个yaml文件。导入数据有个简单的说明,自己看吧,也许需要自己改些配置和代码。此外可能还要修改URL映射。

  4. 使用上有什么限制吗?
    1. 分类名是唯一的,不能有2个同名分类。
    2. 分类路径全长、文章标题、文章URL、用户名和用户网址不能超过500字节。
    3. 单篇文章不能超过1MB。
    4. 暂不支持全文搜索。

  5. 现在有那么多基于Google App Engine的blog程序,Doodle与它们相比有什么优缺点?
    我认为这主要是设计上的取舍问题。如果要实现更多功能,势必增加数据库大小,并影响响应时间。而Doodle只保留了我认为必备的功能,因此数据库可以很精简,也有更多的时间可以花在优化性能和实现好玩的功能上。
  6. 如果要做2次开发,有什么好的建议?
    可以先读读Doodle博客的开发过程,这对理解代码很有帮助。接着重点看看Modle.py,清楚有哪些功能和限制,就可以自己动手修改了。

版权

Doodle程序主体以MIT许可发布。

另外还使用到了下列不属于本程序的库或资源:

  • keakon的YUI框架。(MIT License)
  • kuwata-lab.com的Tenjin模板引擎。(MIT License)
  • Will McGugan的Post Markup(做了一些修改)。(New BSD License)
  • jQuery。(MIT License)
  • Zepto.js。(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自带的库。

Updated