logseq-habit-tracker
logseq-habit-tracker copied to clipboard
Habit tracker for Logseq
If you like this plugin, you can buy me a ☕ here
Logseq Habit Tracker

Record your habits under #habit block in daily journal, then easily track your habits.
Click on gear (⚙️) icon to edit settings.
-
Habit marker is a keyword to match habits:
#habit, it wasHabitsbefore v0.2.0 -
Habit pattern is the regex to parse habits. See Customization for more examples.
Default format isHabit text - 1,2,3and you can add notes after a new line.^(TODO|DONE)?\s*(?<habit>.*?)(?:| - (?:(?<int>\d*?) times|(?<count>.*?)))$,- habit is the identifier for the habit and
- count is comma separated list of things (e.g. numbers, time)
- int is integer count in special format. i.e
5 times
-
Ignore Pattern is the regex to ignore habits matching the habitPattern.
Default value isTODO .*. So whileDONEblocks countTODOblocks not. -
Date format:
D.M\nddwhere\nis new line. -
Date width:
2em
For Frequency / Period, period is one of d (day), w (week), m (month), y (year).
3/dmeans 3 times per day4/2wmeans 4 times in 2 weeks
By checking At Most you can model bad habits to avoid.
Customization
Instead of nesting under #habit tag you can also use it in every line and change the format to suit your needs.
Example 1
14:10 pushups #habit
14:11 #habit drink water
Habit Pattern: \d{2}:\d{2} (?<habit>.*)
Example 1a
With optional time and notes. Thanks @someinternetguy
pushups #habit
pushups #habit did 10 more than usual today, go me!
14:17 pushups #habit
14:17 pushups #habit yay, I remembered to work out today!
Habit pattern: ((\d{2}:\d{2})|())(?<habit>.*#habit(\s|\b))
Example 2
Ignore habits with unfinished marker. See #10
- #habit
- qwer - 1,2
- qwe
- qwert - X
Ignore pattern: .*- X will ignore habit qwert
Running the Plugin
pnpm && pnpm buildin terminal to install dependencies.Load unpacked pluginin Logseq Desktop client.
Attribution
- Icon by Microsoft (CC BY 4.0): https://www.iconfinder.com/icons/8674458/ic_fluent_clipboard_pulse_regular_icon