自己动手,做一款抬头显示的「Todo Hud」

news/2024/6/26 9:06:15

我用过好多款 TodoList 软件,但事情一多总还是丢三落四,原本计划好要做的事情总是安静地躺在某个角落,等我想起来要去扫一眼的时候,都已快「物是人非」。。。

要是能在桌面上实时显示 TodoList,那该多好!但是 Mac 上做到这一点还真不是一件容易的事,那就退而求其次吧。我想了想,因为公司是使用 Google 办公套件的,自己每天用的最多的软件就是浏览器,要是能在浏览器新开 Tab 页的时候,都能实时显示 TodoList 的话,那就能满足我的需求了。

最简单的 TodoList

说做就做,我要的只是一个简单的 web 页面,在上面:

  • 可以简单展示、创建、关闭待办事项。

  • 为了通用一点,支持用户账号系统(只要最基本的注册、登录、重置密码就够了)。

  • 保证内容的私密性。

所以它不能是一个静态页面,怎么着也要有一个数据库。为了这一点功能,去购买机器、申请域名,甚至还去搞域名备案,实在是不值得,我想 LeanCloud 的 云引擎 应该是最好的选择。

LeanCloud 云引擎提供了多个应用模版,最简单的一个 node-js-getting-started 就已经包括了一个 web app 的基本框架,并且还附带了一个创建 Todo 的简单例子。在它的基础上,再集成了 LeanCloud 自带的账户系统(连重置密码的功能都默认提供,这里不得不说这真是太方便了)。对于内容私密性,我使用了 LeanCloud 数据存储中的「ACL 机制」,让一条待办事项只有它的所有者可以访问,其他人连读取的权限都没有,这样就保证了用户之间的数据隔离。最后,UI 怎么办呢?对于我这样的前端小白来讲,bootstrap-material-design 已经是我能想到的最理想的组合了。

最后做出来的效果是这样:

  • 用户注册

Images

  • Todo List

Images

这个项目的所有代码都放在 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 上设置稍微有点复杂,需要借助其他插件,其步骤如下:

  1. 从 Chrome Web Store 下载安装 Replace New Tab Page。

  2. 打开 Chrome 插件管理器(你也可以在地址栏直接输入 chrome://extensions/)
    Images

  3. 点击 Replace New Tab Page 的 Options 链接.
    Images

  4. 在地址栏中输入 https://syncus.leanapp.cn/todos
    Images

OK,一切都好了,从现在开始,你每次打开一个新的 Tab 页,都会首先看到你自己的待办事项。

Firefox 设置

  1. 在 Firefox 上我们也需要安装插件 NewTabURL。

  2. 重启浏览器,可以通过 Ctrl+Shift+A 来打开插件管理页面,找到 NewTabURL 并点击 Options 按钮。
    Images

  3. 选择 URL 并输入 https://syncus.leanapp.cn/todos
    Images

Safari 设置

  1. 进入 Safari 的设置页面。

  2. Homepage 框中输入 https://syncus.leanapp.cn/todos,然后把 New tabs open with 中选定 Homepage
    Images

使用中可能的问题

  • Chrome 中 CSS 文件加载不了,页面显示异常

这可能是因为 LeanCloud 文件托管的域名导致的,可以参考这篇文章解决Fix Your Connection is not private error in Chrome.


http://lihuaxi.xjx100.cn/news/243832.html

相关文章

2021年UI设计培训机构哪个好

想要学好UI设计,选择报一个专业的UI设计培训机构是非常明智的选择,为什么这么说呢?因为培训机构的课程都是根据当下的行业环境制作出来的,而且有专业老师,比自学要好很多,那么在2021年UI设计培训机构哪个好呢?来看看…

系列四、SpringMVC响应数据和结果视图

2019独角兽企业重金招聘Python工程师标准>>> 项目结构如下 一、返回值分类 一 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址,根据字符串最后跳转到对应jsp页面 第一步、导入依赖坐标文件、配置…

ELK(+Redis)+LogAnalyzer解决企业日志问题

日志管理:1、LogAnalyzerLAMP&LNMP简单日志日志管理系统2、ELK日志管理系统......比较:LogAnalyzer简单特点:安装配置简单,功能一般,但是中小公司足够用。配合监控服务器和一些shell脚本足够满足中小企业系统架构。…

UI设计培训:UI设计师离不开的基本版式设计

不管你是UI设计,还是工业设计,甚至动画设计,终究离不开基本的版式设计,所以版式设计这块非常考验设计师的基础功力。 1. 大且醒目&美观的排版设计 版面设计大概是一位设计师重要的部分,今年的版面设计会围绕着大且…

启用CORS实现Ajax跨域请求

2019独角兽企业重金招聘Python工程师标准>>> 应用场景:想从a.com请求b.com上的资源,由于同源策略不允许请求。 解决办法:在请求的php文件中加入 header("Access-Control-Allow-Origin: http://b.com"); 这种比较安全&am…

git rebase 和 git merger

& git merge 在上图中,每一个绿框均代表一个commit。除了c1,每一个commit都有一条有向边指向它在当前branch当中的上一个commit。 图中的项目,在c2之后就开了另外一个branch,名为experiment。在此之后,master下的修…

mongodb重命名集合、数据库

重命名集合 mongoshell里就可以实现 db.orders.renameCollection( "orders2014" ) 通过cmd&#xff1a;renameCollection重命名数据库 没有直接的接口&#xff0c;直接copydb数据很多时比较费时间&#xff0c;不过可以通过 { renameCollection: "<source_nam…

webpack入门(二)what is webpack

webpack is a module bundler.webpack是一个模块打包工具&#xff0c;为了解决上篇一提到的各种模块加载或者转换的问题。 webpack takes modules with dependencies and generates static assets representing those modules. webpack以依赖模块和生成 静态的资源来代表这些模…