mdwiki是一款markdown wiki系统,可以作为个人或小型团队的知识库管理系统。项目地址:本系列文章最后一篇给出(需要时间整理和测试)
为什么我要开发mdwiki?
目前本人的知识库管理系统采用的是dokuwiki,它是一款用PHP开发的非常强大的一款wiki系统。但是很遗憾不支持markdown语法写作。
再加上目前开始学习Python与爬虫。所以决定用Python写一个markdown wiki系统。前期不考虑集成爬虫,后期考虑集成爬虫(这样对某些好文章的收藏就没必要复制粘贴了)。
技术选型
Python3 or 2.7?
作为新手,Python3义不容辞.为什么?就为了原生支持UTF-8.(开玩笑),因为Python3代表了Python的未来,而且越来越多的库已经迁移到了Python3,没有什么理由不选择它。
IDE选择:
pycharm+sublime text3,这个也没必要解释了。
Web框架选择:
Flask(为什么?只会这个,而且大家都说好。)
服务器选择:
nginx+gunicorn这应该是比较流行的方案吧,也不做过多解释。
数据库选择:
SQLite+Redis
部署方式:
Supervisor管理Nginx+gunicorn
Fabric远程发布
浏览器兼容性:
不考虑万恶的IE
后端库选择:
Flask Web框架
Jinja2 flask官方指定模板引擎
SQLAlchemy ORM框架
Celery任务调度
whoosh+jieba:信息检索
oss2:阿里云oss云存储SDK
redis:Redis的python连接客户端
Markdown:后端markdown解析
Flask插件如下:
Flask-Babel国际化插件
Flask-Script命令行插件
Flask-sqlalchemy ORM插件集成
Flask-migrate数据迁移插件
Flask-WTF表单插件
flask-login插件
flask-Principal权限管理
Flask-Security插件
flask-mail插件
Flask-cache缓存插件
flask-testing测试插件
Flask-Moment本地化时间日期
前端库选择:
gulp-前端资源管理与打包,可以参考我的一篇文章:gulp组织小型项目小记
animate.css特效
bootstrap 都懂的
jQuery
jQuery插件:validate,fancyBox,jQuery-ui
simplemde markdown编辑器
webuploader 百度开源的文件上传组件
toastr一款漂亮的通知组件
taggle.js 标签输入组件
highlight.js代码高亮
下一篇主题待定.