{"id":13597124,"url":"https://github.com/zwpaper/obsidian-progressbar","last_synced_at":"2025-03-17T02:31:01.019Z","repository":{"id":77715137,"uuid":"594432677","full_name":"zwpaper/obsidian-progressbar","owner":"zwpaper","description":"Code block plugin for Obsidian generating a progress bar","archived":false,"fork":false,"pushed_at":"2024-07-23T06:02:21.000Z","size":103,"stargazers_count":46,"open_issues_count":10,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-16T07:22:43.844Z","etag":null,"topics":["obsidian-plugin","progressbar"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwpaper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["zwpaper"],"patreon":null,"open_collective":null,"ko_fi":"kweizh","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-01-28T14:42:10.000Z","updated_at":"2025-03-14T08:52:03.000Z","dependencies_parsed_at":"2024-10-27T11:52:28.928Z","dependency_job_id":"7ba2bfe6-2e08-4abc-9f7b-78fe889bf508","html_url":"https://github.com/zwpaper/obsidian-progressbar","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":"obsidianmd/obsidian-sample-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwpaper%2Fobsidian-progressbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwpaper%2Fobsidian-progressbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwpaper%2Fobsidian-progressbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwpaper%2Fobsidian-progressbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwpaper","download_url":"https://codeload.github.com/zwpaper/obsidian-progressbar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243961661,"owners_count":20375283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["obsidian-plugin","progressbar"],"created_at":"2024-08-01T17:00:21.581Z","updated_at":"2025-03-17T02:31:00.711Z","avatar_url":"https://github.com/zwpaper.png","language":"TypeScript","funding_links":["https://github.com/sponsors/zwpaper","https://ko-fi.com/kweizh"],"categories":["原生中文插件，欢迎支持"],"sub_categories":["任务与日程管理"],"readme":"English | [简体中文](./README.zh-CN.md)\n\n\u003ch1 align=\"center\"\u003eObsidian ProgressBar\u003c/h1\u003e\n\n\u003cp align=center\u003e\n\u003ca href=\"https://github.com/zwpaper/obsidian-progressbar/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/zwpaper/obsidian-progressbar\" alt=\"release\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/zwpaper/obsidian-progressbar/actions/workflows/ci.yml\"\u003e\u003cimg alt=\"continuous integration\" src=\"https://github.com/zwpaper/obsidian-progressbar/actions/workflows/ci.yml/badge.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opensource.org/licenses/Apache-2.0\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"license\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\nThis is a code block plugin for Obsidian (https://obsidian.md) generating a progressbar.\n\nObsidian ProgressBar plugin can render the `progressbar` code block\ninto a progressbar based on Time or Manually,\nwhich support:\n- **day-year**: a progress bar showing how many days passed in this year.\n- **day-month**: a progress bar showing how many days passed in this month.\n- **day-week**: a progress bar showing how many days passed in this week.\n- **day-custom**: a progress bar showing how many days passed in custom start and end.\n- **month**: a progress bar showing how many months passed in this year.\n- **manual**: a progress bar specified by user\n\n![all kinds](./images/all-kinds.jpg)\n\n## Configuration\n\nObsidian ProgressBar plugin will work when creating a `progressbar` code block,\nand use [Yaml](https://yaml.org/) to configure.\n\nthe name is showing as the description before the progressbar,\nand it support templates, please refer to the [Name Templates](#name-templates).\n\nfor example:\n\n```\n    ```progressbar\n    kind: day-year\n    name: This Year\n    ```\n```\n\nwill generate:\n\n![this year](./images/this-year.jpg)\n\n### Supported configurations\n\nThis is the example configuration obsidian progressbar support with some remarks\n\n``` yaml\n# == kind ==\n# Required when specifying a time based progress bar\n#\n# Optional if manually specifying value\n#\n# Possible values:\n#   day-year:\n#   day-month:\n#   day-week:\n#   month:\n#   day-custom: min, and max is required, both min and max should in format: YYYY-MM-DD\nkind: day-year\n\n# == name ==\n# Specify the progress bar name, in front of the bar\n# support templates: max, value, percentage\n#\n# quote is recommanded if templates are used\n#\n# Optional, will use kind as name if not specified\nname: \"{percentage} from {min} to {max}\"\n\n# == width ==\n# Specify the progress bar width\n# Optional\n# Possible format: 50%, 100px\nwidth: 50%\n\n# == value ==\n# Specify the progress bar current value\n# Optional when specified a valid kind\n# Required when not having a kind\n# Possible format: numbers\nvalue: 10\n\n# == min ==\n# Specify the progress bar max value\n#\n# Optional when specified a valid kind\n# Only Required when kind is day-custom\n#\n# Possible format:\n#   day-custom: YYYY-MM-DD\n#   others: number\nmin: 2024-02-01\n\n# == max ==\n# Specify the progress bar max value\n#\n# Optional when specified a valid kind\n# Required when not having a kind\n#\n# Possible format: numbers\n#   day-custom: YYYY-MM-DD\n#   others: number\nmax: 2024-04-30\n\n# == button ==\n# Specify whether you wish to show the buttons to +1 or -1 the current value\n#\n# Requires an id\n# Can only be used with kind manual/others or no kind\n#\n# Possible format: boolean (true or false)\nbutton: true\n\n# == id ==\n# Specify the id for a progressbar. \n# Multiple progressbar throughout the same document will be synced for buttons\n#\n# Optional when buttons are turned off\n# Required when buttons are turned on\n#\n# Possible format: numbers, text\nid: homework-progressbar\n```\n\n\n### Name Templates\n\nthe `name` option for `progressbar` supports the following templates:\n- max\n- value\n- percentage\n\nit can be used in format `{max}`,\nthe plugin will replace it to the real value automatically.\n\nfor example, `currently is {value}, it's {percentage} to {max}`\nwill produce: `currently is 123, it's 34% to 365`.\n\nthe no supported template will no be changed, for example, `I am {unknown}`,\nwill still stay as `I am {unknown}`.\n\nIf no name specified, name will be `kind({percentage})` by default.\n\n### Using `id` and `button` together\nThe `button` option is supposed to be used with the `id` options where the `id` option can be used anywhere but will have no practical use without the buttons, It will be the same as not having and id.\n\n`id` can be used to have multiple progressbar throughout the same document to represent the same quantity. Two progressbar having the same id will be updated together whenever one is updated **using the `button`**.\n\nThe progressbars will not be synced automatically without the button's click. The auto syncing between progressbars with same id can be implemented in future releases.\n\nIf the written `value` by the user differ between different progressbar with the same id, then the value of the progressbar from which the buttons are clicked will be updated in all of the applicable.\n\nexample:\nThese will have the same id, synced together on button clicks, but notice that we can have different names(along with the usage of templates).\n```\n    ```progressbar\n    id: test \u003c-- an id assigned as \"test\"\n    kind: manual\n    name: \"manual with buttons 1 {max}\" \u003c-- Notice the name\n    button: true\n    value: 5\n    max: 10\n    ```\n\n\n    ```progressbar\n    id: test \u003c-- The same id used in a different place\n    kind: manual\n    \n    # Notice that progressbar with same id can still be used with different names\n    name: manual with buttons 2 \u003c-- Notice the name here\n\n    button: true\n    value: 5\n    max: 10\n    ```\n```\nwill generate:\n\n![alt text](./images/Manual%20with%20buttons.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwpaper%2Fobsidian-progressbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwpaper%2Fobsidian-progressbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwpaper%2Fobsidian-progressbar/lists"}