# Obsidian-Techo **Repository Path**: ocarinalover/obsidian-techo ## Basic Information - **Project Name**: Obsidian-Techo - **Description**: Obsidia插件,这是一个手账日志类插件,对笔记的日志内容进行可视化,包括周计划、月计划、每月开销可视化 - **Primary Language**: JavaScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2022-09-13 - **Last Updated**: 2022-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 版本更新日志 ## 1.2.4 - 为周历添加了简单的统计功能 - ob版本更新,笔记内容的api变动追加一版1.2.4x - 修复了一些影响体验的小bug,例如小数无限长、 ## 1.2.5 - 添加了任务切换交互 - 添加了current关键字,current标识当前月份/周。用法示例如下(注意将单引号替换为反引号```) ``` '''techo-month current ''' ``` ``` '''techo-week 1,current ''' ``` ``` '''techo-bill 3,current,7 ''' ``` ``` '''techo-showBill current,1-2 ''' ``` ## 1.2.6 - 数据热更新,在当前笔记更改了日志数据后,切换到预览模式将直接更新数据 - 改变了周时间统计的显示方式,更加紧凑,节省屏幕空间(显示效果如下) - 可以选择展开/收起0~6小时这段时间的时间轴 ![周统计显示方式](IMG/image.png) ---- # 使用说明 techo插件迎来全新改版!! ## 旧版实现方式 旧版(1.1.4)实现是查找`techo-week`语言标识的代码块,使用特定的分隔符分割文本,根据文本内容绘制周历视图,并替换掉代码块 这么做有如下缺点: - 周历代码块需要记录的内容通常会在编辑视图很长,放在一个代码块里不便于阅读维护 - 手账、日志、时间、账本、日程之类的管理是自成一体的,不应该和其他普通笔记混杂在一起 - 多种分隔符$***$、$----$、$=======$使用太过繁琐,不够灵活智能 ## 新版的实现理念 只对特定文件名做出反应,文件名必须为`techo`+表示年份的四个数字+其他非空字符 在笔记文件中直接记录数据 使用`techo`标识的代码块表示想要显示的视图类型(如某几周周历、某几月月历、某几个月的账本) 切换到预览视图后将隐藏源数据,显示渲染好的页面 ## 快速上手 将压缩包readme文件夹下的`techo2022测试文档.md`放入obsidian的库中,切换到预览模式即可生效。 如果没反应,请 - 确认是否开启了插件 - 确认是否切换到了预览模式 - 试试切换到别的笔记再切换回来 ## 使用效果 源码内容: ![源码](IMG/Pasted%20image%2020220709234804.png) ### 调用月历 ```techo-month 1,3-5,7 ``` 切换到预览试图将显示1,3,4,5,7月月历, ![月历](IMG/Pasted%20image%2020220709235142.png) 如上图,如有月待办、日待办、日程将显示在月历中 ### 调用周历 ```techo-week 5,7-8,11 ``` ![周历](IMG/Pasted%20image%2020220709235340.png) 这部分功能和旧版基本一样,如果有周待办、日待办、每日时间日志,都会显示在周历中 ### 调用账本 ```techo-bill 1 ``` ![账本1](IMG/Pasted%20image%2020220709235551.png) ![账本2](IMG/Pasted%20image%2020220709235606.png) 显示1月的账本(可以选择是否跳过无记录的天数) ### 调用账本折线统计图 ```techo-showBill 1,2 ``` ![账本折线统计图](IMG/Pasted%20image%2020220709235815.png) # 源码语法规定 techo插件是根据正则表达式匹配笔记中的字符串的,因此每种数据内容都有相应的规则,不符合规则的数据将不会被匹配到 下面是一些正确的示例 ------------------- # 1月 - [x] 月待办1 - [ ] 月待办2 # 2M - [ ] 月待办3 - [x] 月待办4 月计划的标识如以上两种 ## 10周 - [ ] 周计划1 - [x] 周计划2 这句文字将会被忽略 ## 5W - [ ] 周计划1 - [x] 周计划2 这句文字将会被忽略 周计划的标识如以上两种 ### 3/2 - [ ] 本日待办 - [x] 本日待办1 0600-0900 a 时间备注 0930-1652 b1 这也是时间备注 1600-1800 z z标识的时间是日程,将会显示在月历而不是周历中 1802-2000 z1 z1也是日程的标识 待办、时间日志、记账没有先后顺序的要求,你甚至可以在待办之间夹杂时间日志、账本。(尽管处于可读性的考虑,不建议这么做,但这是可行的) 时间分类标识由一个小写字母(z除外,z表示日程)加数字(可有可无,最多两位)标识 如a、a1、d32都是可行的时间标识, 第一位字母表示这段时间属于哪一类,例如我将时间分为固定、工作、娱乐、休息。就可以用字母y表示固定类时间,用字母w表示工作类时间。 如果我想对工作类时间进行细分,例如我的工作包括若干个项目,就可以为这个项目赋予一个数字代号。 a、a1、a32标识的时间段都会被归类到a类时间,在周历时间轴上显示为对应的颜色。数字标识目前是没用的,但后续会添加对时间的统计功能。 -15 A 吃了午饭,备注一下 +20 B XX发的红包 -500 C XX结婚随分子(心痛) 上面就是记账,格式要求是 正负号+一位大写英文字母标识收支分类+文字备注 其之间可用若干个空格进行分隔 账目分类标识目前也没什么卵用,后续会添加对不同分类账目的统计功能 ----- ## 关于格式再多说一句 1. 月、周、日并不要求严格正确的嵌套,(尽管出于可阅读性的考虑我建议这样做) 2. 在所有源数据结尾除要求用单独一行的井号键作为分割(1个也可,最多不限) 原因是在插件中我写的正则表达式规则是 匹配月记录就查找以`# x月 换行`开头,再遇到下一个井号键结束 匹配周记录、日记录同理 这就有一个问题:如果某一段记录后面没有其他的井号键了,则这段记录不会被匹配