粥里有勺糖

vuePress-theme-reco 粥里有勺糖    2018 - 2023
粥里有勺糖 粥里有勺糖

Choose mode

  • dark
  • auto
  • light
关于我
备战春秋
  • 心得总结
  • 校招考点汇总
  • 面经汇总
  • 复习自查
技术笔记
  • 技术教程
  • 模板工程
  • 源码学习
  • 技术概念
  • 个人作品
  • 学习笔记
计算机基础
  • 算法与数据结构
  • 操作系统
  • 计算机网络
  • 设计模式
  • 剑指offer
大前端
  • javascript
  • vue
  • html
  • css
  • 🌏浏览器专题
  • Web性能优化
  • regexp
  • node
面试
  • 问解
  • javascript
  • css
  • 手撕代码
  • 性能优化
  • 综合问题
  • 面经汇总
  • 小程序
手撕代码
  • 数据结构与算法
  • javascript
  • css
个人站点
  • GitHub (opens new window)
  • 博客园 (opens new window)
  • 掘金 (opens new window)
线上作品
  • 轻取(文件收集) (opens new window)
  • 个人图床 (opens new window)
  • 考勤小程序 (opens new window)
  • 时光恋人 (opens new window)
  • 在线简历生成 (opens new window)
留言板
Github (opens new window)
author-avatar

粥里有勺糖

285

文章

40

标签

关于我
备战春秋
  • 心得总结
  • 校招考点汇总
  • 面经汇总
  • 复习自查
技术笔记
  • 技术教程
  • 模板工程
  • 源码学习
  • 技术概念
  • 个人作品
  • 学习笔记
计算机基础
  • 算法与数据结构
  • 操作系统
  • 计算机网络
  • 设计模式
  • 剑指offer
大前端
  • javascript
  • vue
  • html
  • css
  • 🌏浏览器专题
  • Web性能优化
  • regexp
  • node
面试
  • 问解
  • javascript
  • css
  • 手撕代码
  • 性能优化
  • 综合问题
  • 面经汇总
  • 小程序
手撕代码
  • 数据结构与算法
  • javascript
  • css
个人站点
  • GitHub (opens new window)
  • 博客园 (opens new window)
  • 掘金 (opens new window)
线上作品
  • 轻取(文件收集) (opens new window)
  • 个人图床 (opens new window)
  • 考勤小程序 (opens new window)
  • 时光恋人 (opens new window)
  • 在线简历生成 (opens new window)
留言板
Github (opens new window)
  • wheel

    • 个人作品
    • 时间管理CLI工具
      • 做一个CLI版的时间管理工具(一)
      • 做一个CLI版的时间管理工具(十)
      • 做一个CLI版的时间管理工具(11)
      • 做一个CLI版的时间管理工具(12)
      • 做一个CLI版的时间管理工具(13)
      • 做一个CLI版的时间管理工具(14)
      • 做一个CLI版的时间管理工具(15)
      • 做一个CLI版的时间管理工具(二)
      • 做一个CLI版的时间管理工具(三)
      • 做一个CLI版的时间管理工具(四)
      • 做一个CLI版的时间管理工具(五)
      • 做一个CLI版的时间管理工具(六)
      • 做一个CLI版的时间管理工具(七)
      • 做一个CLI版的时间管理工具(八)
      • 做一个CLI版的时间管理工具(九)
    • 组装个支持记笔记的CodePen
    • ESCheck工具原理解析及增强实现
    • 一款检测代码中TODO的eslint插件
    • 实现一个Web UI检测(视觉走查)工具ing
    • 从0-1实现文件下载CLI工具
    • 内联JS处理(ES语法降级&内容压缩)
    • Node CLI工具原理解析
    • 我打造的在线简历生成应用
    • 助你轻松编写与分享snippet的VsCode插件
    • SourceMap解析CLI工具实现
    • 一个通过NPM包共(分)享代码块的解决方案
    • 实践:给女朋友个性化定制应用-体重记录(一)
    • 实践:给女朋友个性化定制应用-体重记录(二)
    • 实践:给女朋友个性化定制应用-体重记录(三)

做一个CL版的时间管理工具(一)

vuePress-theme-reco 粥里有勺糖    2018 - 2023

做一个CL版的时间管理工具(一)

粥里有勺糖 2021-08-03 技术笔记个人作品CLI工具

# 做一个CLI版的时间管理工具(一)

# 背景

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

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

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

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

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

感觉稍微有些繁琐

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

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

# 方案

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

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

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

# 期望

添加TODO

timec add <taskName>
1

完成TODO

timec fin <taskName>
1

开始TODO

timec start <taskName>
1

暂停

timec pause <taskName>
1

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

# 开工

# 准备工作

初始化项目

mkdir timec

cd timec

npm init -y
1
2
3
4
5

安装依赖commander

yarn add commander
1

修改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"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

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

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

运行demo

npm link

# 执行
timec
1
2
3
4

输出结果

图片

# 初步路径

将内容组织成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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  • 一级标题设置时间
  • 耳机标题标识任务
  • 剩下的就是描述具体的任务跟用时
    • 这里的用时并不固定单位,由使用者自己定义
      • 可以是小时/分钟/甚至一天的几分之几

生成的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": "写笔记"
          }
        ]
      }
    ]
  }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

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

# 其它

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

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

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

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

  • 仓库地址 (opens new window)

# 做一个CLI版的时间管理工具(一)

# 背景

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

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

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

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

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

感觉稍微有些繁琐

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

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

# 方案

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

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

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

# 期望

添加TODO

timec add <taskName>
1

完成TODO

timec fin <taskName>
1

开始TODO

timec start <taskName>
1

暂停

timec pause <taskName>
1

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

# 开工

# 准备工作

初始化项目

mkdir timec

cd timec

npm init -y
1
2
3
4
5

安装依赖commander

yarn add commander
1

修改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"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

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

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

运行demo

npm link

# 执行
timec
1
2
3
4

输出结果

图片

# 初步路径

将内容组织成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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  • 一级标题设置时间
  • 耳机标题标识任务
  • 剩下的就是描述具体的任务跟用时
    • 这里的用时并不固定单位,由使用者自己定义
      • 可以是小时/分钟/甚至一天的几分之几

生成的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": "写笔记"
          }
        ]
      }
    ]
  }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

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

# 其它

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

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

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

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

  • 仓库地址 (opens new window)
Edit this page (opens new window)
Last Updated: 2022/5/15 12:46:34