前言

slid.es 是我最喜欢的前端之一 hakimel 的作品,前身叫做 rvl.io, 网站已经改版。源于去年年底在上家公司做年终总结 PPT,对我这种不搞 office,没有美感的小程序员太痛苦了,然后就找到了 reveal.js , 后来萌发做个基于它的网站,其实也是为了练手学习 mongoengine 和 oauth

项目地址 flask_reveal

它能做什么

  • 保存漂亮的在线 PPT (我认为的)
  • 记录浏览次数
  • 多种主题和字体
  • 可以把 PPT 私有化 (默认是公开的)
  • 自动保存修改
  • 支持 Bitbucket/Google/Github/Instagram/Linkdln/Trello/Tumblr/Stackoverflow oauth/oauth2 登陆
  • PPT 预览

使用了什么

  • flask
  • mongoengine (忍不了非 orm)
  • flask-script (像 django 那样的命令行启动)
  • 前端 js 借用我做喜欢的原作者的 90%,然后根据我的需要改动,css 基本没动
  • python-social-auth 的 oauth 后端,但是它使用的是 flask+sqlalchemy,不支持 flask+mongoengine,我改写了这部分

Usage

设置 hosts 文件

唉,本来申请了很多 oauth 想放在 sae 上面,但是遗憾的是新浪不支持,所以只能本地加 hosts,让验证后的回调正确返回 linux 在你的 /etc/hosts 文件里面添加一行

YOURIP   YOURDOMAIN

复制配置文件然后把你注册的 ouauth 放进去

cp settings.py.example settings.py

象 django 那样启动

python manage.py runserver -t 0.0.0.0 -p 80

And 访问主页http://revealcn.sinaapp.com

使用 nginx+uwsgi

这里是我的配置 nginx 的这段(假设你 git clone 后在 /home/dongwm/flask_reveal)

server {
        listen 80;
        server_name revealcn.sinaapp.com;

        access_log /var/log/nginx/revealcn.access_log main;
        error_log /var/log/nginx/revealcn.error_log info;
        location / {
                include uwsgi_params;
                uwsgi_pass unix:///tmp/uwsgi.sock;
            }
        location /zongjie {
        root   /home/dongwm/flask_reveal;
        index index.html;
        }
    }

uwsgi 的 xml 配置

<uwsgi>
     <pythonpath>/home/dongwm/flask_reveal</pythonpath>
     <module>manage</module>
     <socket>/tmp/uwsgi.sock</socket>    
    <callable>manager</callable>
     <master/>
     <processes>4</processes>       
     <memory-report/>
</uwsgi>

这里有个坑,我的 gentoo 的 uwsgi 安装后是有插件的,你需要这样启动

uwsgi_python27 -x uwsgi.xml