当前位置: 首页 > 工具软件 > MDwiki > 使用案例 >

mdwiki开发之路一技术选型

邢雨华
2023-12-01

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代码高亮

 类似资料: