Description

TimeWise Countdown is a plugin that continually calculates and displays the time remaining until a specified deadline.

Additional Information

Links:
Maintainers: flxholle
Version:1.0.1
Minimum app version:3.1
Downloads: This version:12
Last updated:2025-02-11T12:32:16Z

Latest Release Contributors Forks Stargazers Issues project_license [#top]


Logo

TimeWise Countdown

TimeWise Countdown is a plugin that continually calculates and displays the time remaining until a specified deadline.
View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Usage
  3. Build
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

Demo

TimeWise Countdown is a plugin that continually calculates and displays the time remaining until a specified deadline. It allows easy customization and formatting.

(back to top)

Built With

  • TypeScript
  • Joplin
(back to top)

Usage

TimeWise Countdown identifies special deadline markers in your text and replaces them with a live countdown. The markers follow this format:

[output](d[DEADLINE]{TEMPLATE})
  • output: The parsed template output
  • DEADLINE: The target time; if this date/time has passed, the plugin shows zeros.
    • Supported deadline formats:
      1. year-month-day:hour-minute (e.g., 2025-12-31:13-45)
      2. year-month-day (e.g., 2025-12-31)
      3. hour-minute (e.g., 13-45)
      4. Short years (less than 100) are interpreted as 20xx. For example, 25-12-31 -> 2025-12-31.
  • TEMPLATE: Specifies how the remaining time should be displayed. Separate tokens with underscores ( _ becomes a space).

Template Tokens

Each letter indicates how to count down:

  • y = Years
  • m = Months
  • w = Weeks
  • d = Days
  • H = Hours
  • M = Minutes

All non-token text (e.g., years, days, minutes) remains literal. For example:

y_years_d_days_M_minutes

could output something like 1 years 9 days 30 minutes.

Examples

  1. Full Date-Time

    [](d[2025-01-10:14-00]{y_years_d_days_H_hours})
    
    • Suppose today is 2024-01-01 00:00.
    • This might display: [1 years 9 days 14 hours](d[2025-01-10:14-00]{y_years_d_days_H_hours})
  2. Date Only

    [](d[2025-01-10]{m_months_d_days})
    
    • With a current date of 2024-01-01, you might see: [12 months 9 days](d[2025-01-10]{m_months_d_days}).
  3. Time Only

    [](d[15-30]{H_hours_M_minutes})
    
    • If it's currently 09:00, it could show: [6 hours 30 minutes](d[15-30]{H_hours_M_minutes}).
  4. Short Year

    [](d[25-01-01]{y_years_m_months})
    
    • Interpreted as 2025-01-01, so if we're in 2024-01-01, that might be: [1 years 0 months](d[25-01-01]{y_years_m_months}).
  5. Week Calculation

    [](d[2024-02-15]{w_weeks_d_days})
    
    • If only a few weeks remain until Feb 15, 2024, this might read: [2 weeks 3 days](...).
  6. Past Deadlines

    • If the deadline is in the past, all tokens become zero, e.g.:
    [](d[2023-12-31]{y_years_d_days_H_hours})
    

    becomes:

    [0 years 0 days 0 hours](d[2023-12-31]{y_years_d_days_H_hours})
    
(back to top)

Build

Prerequisites

Make sure you have Node.js (and npm) installed.

npm install npm@latest -g

Installation

  1. Clone the repo

    git clone https://gitlab.com/flxholle/timewise-countdown.git
    
  2. Install NPM packages

    npm install
    
  3. Build the plugin: The plugin is built using Webpack, which creates the compiled code in /dist

    npm run dist
    
(back to top)

Contributing

Contributions make open source amazing. If you have an idea or fix, please:

  1. Fork the Project
  2. Create a new branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request
(back to top)

License

Distributed under the MIT License. See LICENSE.txt for details.

(back to top)

Contact

Felix Hollederer - @flxholle - flxholle@posteo.com

Project Link: https://gitlab.com/flxholle/timewise-countdown

(back to top)

Acknowledgments

  • Joplin for a great note-taking platform
(back to top)