我用过好多款 TodoList 软件,但事情一多总还是丢三落四,原本计划好要做的事情总是安静地躺在某个角落,等我想起来要去扫一眼的时候,都已快「物是人非」。。。
要是能在桌面上实时显示 TodoList,那该多好!但是 Mac 上做到这一点还真不是一件容易的事,那就退而求其次吧。我想了想,因为公司是使用 Google 办公套件的,自己每天用的最多的软件就是浏览器,要是能在浏览器新开 Tab 页的时候,都能实时显示 TodoList 的话,那就能满足我的需求了。
最简单的 TodoList
说做就做,我要的只是一个简单的 web 页面,在上面:
- 可以简单展示、创建、关闭待办事项。
- 为了通用一点,支持用户账号系统(只要最基本的注册、登录、重置密码就够了)。
- 保证内容的私密性。
所以它不能是一个静态页面,怎么着也要有一个数据库。为了这一点功能,去购买机器、申请域名,甚至还去搞域名备案,实在是不值得,我想 LeanCloud 的 云引擎 应该是最好的选择。
LeanCloud 云引擎提供了多个应用模版,最简单的一个 node-js-getting-started 就已经包括了一个 web app 的基本框架,并且还附带了一个创建 Todo 的简单例子。在它的基础上,再集成了 LeanCloud 自带的账户系统(连重置密码的功能都默认提供,这里不得不说这真是太方便了)。对于内容私密性,我使用了 LeanCloud 数据存储中的「ACL 机制」,让一条待办事项只有它的所有者可以访问,其他人连读取的权限都没有,这样就保证了用户之间的数据隔离。最后,UI 怎么办呢?对于我这样的前端小白来讲,bootstrap-material-design 已经是我能想到的最理想的组合了。
最后做出来的效果是这样:
- 用户注册
- Todo List
这个项目的所有代码都放在 github/syncus 上了,大家可以自行获取,然后在 LeanCloud 中去部署自己的 web 应用。不过对于想直接试一试的朋友来讲,大家也可以使用这个地址 https://syncus.leanapp.cn/todos 来访问这一在线的 Todo List。
让 TodoList 抬头显示
TodoList 做完了,现在我们要想办法让它能够做到「抬头显示」,否则对我来说也没啥帮助,不过是又造了一个轮子而已。
我做了一个 Chrome 插件,但是因为无法发布到 chrome web store,所以只能放在 github 上共享给大家了:todo_ntp,有兴趣的同学把它下载到本地,然后在开发者模式下加入 chrome extension 就可以了。
不过也可以使用别人写好的插件,以下内容引自 How to Have the New Tab Open a Specific Website Automatically in Chrome and Firefox:
Chrome 设置
Chrome 上设置稍微有点复杂,需要借助其他插件,其步骤如下:
- 从 Chrome Web Store 下载安装 Replace New Tab Page。
- 打开 Chrome 插件管理器(你也可以在地址栏直接输入 chrome://extensions/)
- 点击 Replace New Tab Page 的 Options 链接.
- 在地址栏中输入 https://syncus.leanapp.cn/todos。
OK,一切都好了,从现在开始,你每次打开一个新的 Tab 页,都会首先看到你自己的待办事项。
Firefox 设置
- 在 Firefox 上我们也需要安装插件 NewTabURL。
-
重启浏览器,可以通过 Ctrl+Shift+A 来打开插件管理页面,找到 NewTabURL 并点击 Options 按钮。
- 选择 URL 并输入 https://syncus.leanapp.cn/todos。
Safari 设置
- 进入 Safari 的设置页面。
- 在
Homepage
框中输入 https://syncus.leanapp.cn/todos,然后把New tabs open with
中选定Homepage
。
使用中可能的问题
- Chrome 中 CSS 文件加载不了,页面显示异常
这可能是因为 LeanCloud 文件托管的域名导致的,可以参考这篇文章解决Fix Your Connection is not private error in Chrome.