做一个CLI版的时间管理工具(一)| 8月更文挑战

简介: 做一个CLI版的时间管理工具(一)| 8月更文挑战

背景


时间管理一直是一个令人头痛的问题


笔者用过许多款图形化时间管理/TODO 工具


没有一款非常满意且又不可替代的


常见的图形化软件(桌面终端/移动端)的简单操作流程如下:

  • 打开软件(一顿点击操作)
  • 功能选择(一顿点击操作)
  • 定位到目标功能
  • 选择新增/删除/编辑
  • 一顿输出
  • 保存


感觉稍微有些繁琐


目前发现痛点也比较明显,大部分是统计TODO的形式:


  • 一个TODO可能是多天多次断断续续完成的
  • 一段时间会进行多种任务,任务过程中随时可能会被打断
  • 利用计时工具,难免会忘记计时,这样无法较准确的统计每个任务的具体耗时
  • 周报/月报 都要输出技术/业务/其它的耗时 此时需要手动去统计
  • 时间短还好
  • 时间长的话费神费力
  • 。。。还有一些其它的这里就不赘述了


方案


Coder 除了图形化编辑器用得多外,其次应该就是终端工具

一般打开终端工具都是有快捷键的


设想通过一个简单的指令就能完成时间统计,时间记录,可视化数据生成,记录TODO,周报/月报/日报生成....more


期望


添加TODO


timec add <taskName>


完成TODO


timec fin <taskName>


开始TODO


timec start <taskName>


暂停


timec pause <taskName>


.... 还有很多想法指令,只差时间,这里不再赘述,做出来了再和大伙儿接着分享


开工


准备工作


初始化项目


mkdir timec
cd timec
npm init -y


安装依赖commander


yarn add commander


修改package.json内容,添加bin部分的内容


{
  "name": "time-control",
  "version": "0.0.0",
  "description": "生成自己的时间管理报告",
  "main": "index.js",
  "directories": {
    "test": "test"
  },
  "bin": {
    "timec": "./bin/index.js"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/ATQQ/time-control.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/ATQQ/time-control/issues"
  },
  "homepage": "https://github.com/ATQQ/time-control#readme",
  "dependencies": {
    "commander": "^6.2.1"
  }
}


创建./bin/index.js文件,键入demo内容


#!/usr/bin/env node
console.log('hello world');


运行demo


npm link
# 执行
timec


输出结果


网络异常,图片无法展示
|


初步路径


将内容组织成MD文档的形式

通过脚本将MD内容解析成一个JSON对象

最终统计数据,生成各种报告都了若指掌


Markdown格式


# 2021-08-01
## 任务1
* a组件 0.2
* b组件 0.3
## 任务2
* 熟悉代码 0.1
* 学习xx使用 0.2
## 其它
* 学习Vue 0.1
* 写笔记 0.1
# 2021-08-02
## 任务1
* a组件 0.2
* b组件 0.3
## 任务2
* 熟悉代码 0.1
* 学习xx使用 0.2
## 其它
* 学习Vue 0.1
* 写笔记 0.1


  • 一级标题设置时间
  • 耳机标题标识任务
  • 剩下的就是描述具体的任务跟用时
  • 这里的用时并不固定单位,由使用者自己定义
  • 可以是小时/分钟/甚至一天的几分之几


生成的JSON结构如下


[
  {
    "title": "2020-12-23",
    "tasks": [
      {
        "title": "任务1",
        "things": [
          {
            "time": "0.2",
            "content": "a组件"
          },
          {
            "time": "0.3",
            "content": "b组件"
          }
        ]
      },
      {
        "title": "任务2",
        "things": [
          {
            "time": "0.1",
            "content": "熟悉代码"
          },
          {
            "time": "0.2",
            "content": "学习xx使用"
          }
        ]
      },
      {
        "title": "其它",
        "things": [
          {
            "time": "0.1",
            "content": "学习Vue"
          },
          {
            "time": "0.1",
            "content": "写笔记"
          }
        ]
      }
    ]
  }
]


有了这个JSON结构我们就可以为所欲为了


其它


由于每天空闲时间有限,本文就先到这


如果读者还感觉意犹未尽,敬请期待后续更新,或先关注一下仓库


欢迎评论区提需求,交流探讨


本系列会不断的更新迭代,直至产品初代完成


相关文章
|
Kubernetes Cloud Native jenkins
下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布
下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布
604 1
|
JavaScript 关系型数据库 MySQL
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
866 0
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
|
1月前
|
jenkins 持续交付 开发工具
【10月更文挑战第1天】通过jenkins选择tag完成代码上线
【10月更文挑战第1天】通过jenkins选择tag完成代码上线
|
2月前
|
开发框架 前端开发 .NET
AbpHelper CLI积累与实战分享
【9月更文挑战第19天】AbpHelper CLI 是一个强大的工具,用于提升开发人员使用 ABP 框架时的效率。它能快速生成代码、确保代码规范性,并执行自动化任务如数据库迁移和种子数据插入。本文分享了如何利用 AbpHelper CLI 快速初始化项目、开发模块及注意事项,帮助开发者提高效率和代码质量。
|
6月前
|
小程序 API 开发者
社区每周丨小程序 CLI 1.9.4 版本上线(9.18-9.22)
社区每周丨小程序 CLI 1.9.4 版本上线(9.18-9.22)
169 11
|
11月前
|
数据采集 监控 Go
构建企业上网监控软件的基础设施:Golang实战
企业面临着不断增长的网络威胁,为了保障网络安全,上网监控成为不可或缺的一环。本文将介绍如何使用Golang实战构建企业上网监控软件的基础设施,通过简洁高效的代码示例,演示监控数据的收集和处理过程。
241 0
|
运维 Linux
【运维杂谈】如何用yum只下载,不安装?
【运维杂谈】如何用yum只下载,不安装?
294 0
|
测试技术 Python
【实测】django平台启动某脚本时的引入问题 (一期自动化平台的同学必看!)
【实测】django平台启动某脚本时的引入问题 (一期自动化平台的同学必看!)
|
机器人
3DCAT v2.1.3新版本发布,这三大功能更新你不容错过!
3DCAT实时渲染云在近期发布了新的公有云v2.1.3的版本,本次主要更新了应用页的三项功能「语音交互设置」、「多点触控」、「音频信号位深」
3DCAT v2.1.3新版本发布,这三大功能更新你不容错过!
|
数据采集 Python
Python黑科技系列15-爬虫自动化工具-VIP付费文章数据下载
不要惧怕还未到来的结果,要坚信,人生那么长,执着努力的人,一定会被时光温柔以待。愿一切为之努力的事情,都有浪漫的结果。不动声色地变好,每一天都要比昨天更加好。仅此一生,当然要全力以赴。
Python黑科技系列15-爬虫自动化工具-VIP付费文章数据下载