mdwiki開發之路一技術選型

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

下一篇主題待定.