JSBox - Progress
Progress 脚本自首次发布以来已经过去挺长一段时间了,它是一个小巧的进度显示小部件,原来分为「周进度」和「年进度」两个视图,工程量不太大。近日,为了让大家可以更方便地进行个性化配置,增加了大量配置说明,于是整个工作量也成倍地增长。为了让它配置起来更加简单,在其中花费的心力并不比开发主功能来得少,希望这点工作对大家有所帮助吧。言归正传,这篇文章一直没有写,是因为之前没有直接的配置方法,而今天文章的目的也如此,主要介绍各项配置方法和新加入的「月进度」。
介绍
Progress 分为两种运行环境,小部件为正常显示的运行环境,而主应用为配置入口的运行环境。在首次使用(或更新)时,建议在主应用运行来完成必要的配置工作。
在「首页」中,我们可以根据自己的需求选择三个进度视图中的一个或多个,并通过长按操作进行视图排序。修改过后,上方预览视图将会刷新,小部件的显示也将同步更新。与此同时,我们也可以借助「日期模拟」一项来对配置进行调试,通过时间的调整模拟实际小部件运行效果,以此来测试修改结果是否合理或正确。
在「设置页」中,我们即可分别对三个不同进度视图进行个性化配置。
周进度 (Week Progress)
周进度显示的时间周期为一周,它最大的特点是时间周期短,因此我们能够真切感受到「时间在运动」,用来表达我们对翘首以待的周末时光的感情最合适不过。因为一周的生活方式因人而异,所以配置的个性化程度也比较高。我们在设置——周进度
进入后可以对各个时间节点进行增减和修改。
如上方引导所示,我们可以以日为单位增加和修改时间节点,配置相应时间节点的表情和描述。每个时间节点以「结束时间」分界,某一时刻显示的结果为结束时间不小于该时间的最小时间节点,否则将退回到最接近的时间节点。具体含义通过「时间模拟」来测试不同结束时间可以比较好地理解。
需要重点说明的地方在时间节点的描述上,我们通过闭合的$$
文本形式来传递不同的时间变量,以此保证描述对于时间是可变的。支持的变量十分简单且有限,主要分为三部分,模式、参数和运算。
- 纯模式形式:
模式 | 说明 |
---|---|
$d$ | 距离星期日的天数,如在星期一时该变量为 7 |
$h$ | 距离 24:00 的小时数,如在 01:00 时该变量为 23 |
- 模式 + 参数形式:
参数 | 说明 |
---|---|
$h-$ | 向下取整,如在 01:30 时该变量为 22 |
$h+$ | 向上取整,如在 01:30 时该变量为 23 |
- 模式 + 运算形式:
运算 | 说明 |
---|---|
$h-2$ | 配合数字进行加减运算,如在 01:30 时该变量为 20 |
以程序员之痛「996」为例,配置可以这样描述。
- 星期一至星期五显示单位为天,
$d-1$
表示距离星期六的天数。 - 进入星期六时显示单位为小时,
$h-2$
表示距离 21:00 的小时数,因为向下取整的原因这里应该为-2
而不是-3
;而超过 21:00 则正式进入周末。 - 星期日对剩余周末进行倒计时,
$h-$
表示向下取整,$h+$
表示向上取整,用以显示周末剩余的小时数。
从上面的配置我们就能大概明白,996 的程序员有多壮烈了。诶不对,我们大概能明白如何配置个性化描述了。
月进度 (Month Progress)
月进度为新增进度视图,实际上它与「月」没有严格关系,是一个设置事件倒计时的视图,只是它的时间周期较长,一般以月为单位。进入设置——月进度
,我们可以记录多个历史事件,设置相应的日期和名称。但小部件只能显示唯一一个事件,我们可以通过「设置为小部件显示」选项将其置顶,来配置需要显示在小部件的事件。
一般的倒数日时间线从创建时刻开始计算,而这里月进度时间横轴是动态的,通过跨月的方式进行进度显示。比如 2018-12-25 的事件在进入 11 月时,进度会以 11-01 为起点放大时间进度,到 12 月时再调整为 12-01,直至到达事件设置的日期。这样的设计,也是取名为月进度的其中一个来由。
年进度 (Year Progress)
年进度是常规的进度显示,所不同的是它还包含了法定假日倒数显示。也恰因为年进度的显示一切都以当年法定假日为依据,所以没有过多的个性化配置。但需要说明的一点是,配置一般需要在新一年法定假日公布后进行更新,届时我们可以通设置——年进度
选项进行本地配置更新。一般情况下,更新只会在年末推送。
所有配置完成后均可到「首页」刷新视图来进行模拟调试,检查配置的效果。其余的通用设置项还包括「清除缓存」。为了提升小部件的运行效率,每个进度视图都设计有相应的缓存策略,如果某些修改没能及时生效,我们可以按需进行缓存清除。
说明
- Progress 专门为小部件运行优化了许多地方,因此建议将小部件模式设置为「普通模式」,此时使用效果更佳。
- 在实际小部件运行过程中,并非全部视图都同时渲染,因此不同于主应用运行时模拟视图的横向滚动切换方式,小部件需要通过点击视图来载入和切换进度视图。
- iPhone X 上小部件高度参考值为 180,可在
config.json
中进行调整。一般情况下,我们不展开小部件就是最佳的显示效果。
附件
JSBox:Progress
V2.0 [2018-11-12 17:00]
- Added「Month Progress」.
- Added several settings, now all progress views are configurable.
如有问题,欢迎留言或邮件咨询