{"id":13783415,"url":"https://github.com/c6p/logseq-habit-tracker","last_synced_at":"2026-01-17T04:15:03.353Z","repository":{"id":39404788,"uuid":"396461039","full_name":"c6p/logseq-habit-tracker","owner":"c6p","description":"Habit tracker for Logseq","archived":false,"fork":false,"pushed_at":"2024-11-07T12:10:36.000Z","size":127,"stargazers_count":103,"open_issues_count":3,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-11T19:38:45.997Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/c6p.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-15T19:04:44.000Z","updated_at":"2025-05-06T03:15:29.000Z","dependencies_parsed_at":"2024-11-17T20:35:48.373Z","dependency_job_id":"b7c39263-1193-4564-bc36-91f427095bfb","html_url":"https://github.com/c6p/logseq-habit-tracker","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/c6p/logseq-habit-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c6p%2Flogseq-habit-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c6p%2Flogseq-habit-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c6p%2Flogseq-habit-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c6p%2Flogseq-habit-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/c6p","download_url":"https://codeload.github.com/c6p/logseq-habit-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/c6p%2Flogseq-habit-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28494584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T19:00:20.961Z","updated_at":"2026-01-17T04:15:03.341Z","avatar_url":"https://github.com/c6p.png","language":"Vue","funding_links":["https://www.buymeacoffee.com/c.6p"],"categories":["🔌 Plugins"],"sub_categories":[],"readme":"\u003e If you like this plugin, you can [buy me a ☕ here](https://www.buymeacoffee.com/c.6p)\n\n# Logseq Habit Tracker\n\n![image](https://user-images.githubusercontent.com/80478/141788606-44566dfe-bbf7-4272-a3ea-5a9a48eba313.png)\n![image](https://user-images.githubusercontent.com/80478/141792679-3c164eab-be20-4c2f-a4fe-757676c3b4c7.png)\n\nRecord your habits under `#habit` block in daily journal, then easily track your habits.\n\nClick on gear (⚙️) icon to edit settings.\n\n* **Habit marker** is a keyword to match habits: `#habit`, it was `Habits` before v0.2.0\n* **Habit pattern** is the [regex](https://regex101.com/) to parse habits. See [Customization](#customization) for more examples.  \n  Default format is `Habit text - 1,2,3` and you can add notes after a new line.  \n  Default: `^(TODO|DONE)?\\s*(?\u003chabit\u003e.*?)(?:| - (?:(?\u003cint\u003e\\d*?) times|(?\u003ccount\u003e.*?)))$`,  \n  capture groups:\n  * **habit** group is the identifier for the habit and\n  * **int** is integer count in special format. i.e `5 times`\n    * only required to specify a count number - else count\n  * **count** is comma separated list of things (e.g. numbers, time)\n    * only required to count comma-seperated list - else 1\n\n* **Ignore Pattern** is the regex to ignore habits matching the habitPattern.  \n  Default value is `TODO .*`. So while `DONE` blocks count `TODO` blocks not.\n* **Date [format](https://day.js.org/docs/en/display/format)**: `D.M\\ndd` where `\\n` is new line.\n* **Date [width](https://developer.mozilla.org/en-US/docs/Web/CSS/width#syntax)**: `2em`\n\nFor `Frequency / Period`, period is one of `d` (day), `w` (week), `m` (month), `y` (year).\n\n* `3/d` means 3 times per day\n* `4/2w` means 4 times in 2 weeks\n\nBy checking `At Most` you can model bad habits to avoid.\n\n### Customization\n\nInstead of nesting under `#habit` tag you can also use it in every line and change the format to suit your needs.\n\n#### Example 1\n\n```\n14:10 pushups #habit\n14:11 #habit drink water\n```\n\nHabit Pattern: `\\d{2}:\\d{2} (?\u003chabit\u003e.*)`\n\n##### Example 1a\n\nWith optional time and notes. Thanks @someinternetguy\n\n```\npushups #habit\npushups #habit did 10 more than usual today, go me!\n14:17 pushups #habit\n14:17 pushups #habit yay, I remembered to work out today!\n```\n\nHabit pattern: `((\\d{2}:\\d{2})|())(?\u003chabit\u003e.*#habit(\\s|\\b))`\n\n#### Example 2\n\nIgnore habits with unfinished marker. See [#10](https://github.com/c6p/logseq-habit-tracker/issues/10)\n\n```\n- #habit\n  - qwer - 1,2\n  - qwe\n  - qwert - X \n```\n\nIgnore pattern: `.*- X` will ignore habit `qwert`\n\n#### Example 3\n\nDo not count comma-separated items. See [#29](https://github.com/c6p/logseq-habit-tracker/issues/29)\n\n```\n- #habit\n  - qwerty - 1,2\n  - qwerty\n```\n\nBoth will be counted as 1. Habit pattern: `^(TODO|DONE)?\\s*(?\u003chabit\u003e.*?)(?:| - .*)$`\n\n### Running the Plugin\n\n* `npm \u0026\u0026 npm build` in terminal to install dependencies.\n* `Load unpacked plugin` in Logseq Desktop client.\n\n### Attribution\n\n* Icon by Microsoft (CC BY 4.0): \u003chttps://www.iconfinder.com/icons/8674458/ic_fluent_clipboard_pulse_regular_icon\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc6p%2Flogseq-habit-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc6p%2Flogseq-habit-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc6p%2Flogseq-habit-tracker/lists"}