GithubHelp home page GithubHelp logo

hackberrydev / alas Goto Github PK

View Code? Open in Web Editor NEW
14.0 3.0 1.0 628 KB

A command line utility for managing your plan in a single Markdown file.

Home Page: https://www.hackberry.dev/alas/

License: MIT License

Shell 0.08% Janet 99.48% Dockerfile 0.43%
todo markdown schedule

alas's Introduction

Alas

Alas is a command line utility for managing a plan in a single Markdown file.

An example plan:

# My Plan

## Inbox

- [ ] #home - Fix the lamp
- [ ] Update Rust

## 2020-08-01, Saturday

- [ ] Develop photos
- [X] Pay bills

## 2020-07-31, Friday

- Met with Mike and Molly
- [X] #work - Review open pull requests
- [X] #work - Fix the flaky test

The plan file has days in present and future that serve as your plan, but also past days that serve as a log.

Alas can insert new empty days into your plan, remove empty days from past, schedule tasks and help you stay in touch with your contacts.

For more information, visit the the main Alas website.

Development

Install dependencies with:

jpm load-lockfile --local

Run tests with:

./test.sh

alas's People

Contributors

strika avatar kwbr avatar

Stargazers

Joshua Crewe avatar  avatar Silas Vedder avatar  avatar Papi Peppers avatar  avatar Samuel Ludwig avatar Ian Henry avatar Gadzhi Kharkharov avatar Kyle Mitchell avatar Josef Pospíšil avatar Nik Kantar avatar  avatar Bojan Čoka avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

kwbr

alas's Issues

Wrong date when using `--insert-days`

When I run --insert-days in my timezone, at 9am the first day inserted is not today but the day before. Seems to be a timezone problem. Sometime later that day (did not investigate deeper) it correctly inserts the actual day.

$ date --iso-8601=minutes
2024-01-31T09:01+11:00
$ cat plan.md 
# My Plan

## Inbox
$ ./alas-x86_64-linux --insert-days 3 plan.md
Created backup.
$ cat plan.md
# My Plan

## Inbox

## 2024-02-01, Thursday

## 2024-01-31, Wednesday

## 2024-01-30, Tuesday

When combined with --insert-task it adds the task to the last day which is not what I would expect:

$ ./alas-x86_64-linux --insert-days 3 --insert-task "Hello World" plan.md
Created backup.
$ cat plan.md
# My Plan

## Inbox

## 2024-02-01, Thursday

## 2024-01-31, Wednesday

## 2024-01-30, Tuesday

- [ ] Hello World

I just found alas and like the idea very much. I would be happy to contribute a patch but I am not used to reading and understanding Lisp dialects.

Alas should respect missing inbox

If # Inbox is present in the plan, but there are no tasks in the inbox, Alas should serialize an empty inbox. If # Inbox is not present in the plan, Alas should not serialize the inbox.

A new scheduled task is listed as missed when it's very old

When a new scheduled task is added, the next time --schedule-tasks is executed, the task will be listed as missed. That's OK sometimes, but it can be confusing if the scheduled task is very old. For example, it can be 11 months old.

Maybe skipped scheduled tasks should not be scheduled as missed if they are older than 30 days or something like that.

Validate task schedule

Show an error if a task is incorrectly scheduled. For example, if a user mistypes a day - "every Tursday".

Parsing failure when last list item lacks preceding checkbox

If a day ends with a list item that is not preceded with a checkbox parsing the plan file fails:

$ alas --stats test.md
Plan can not be parsed: last parsed line is line 9.

Here is a minimal example reproducing the problem:

# My Plan

## Inbox

## 2022-07-28, Thursday

- [ ] Develop photos
- [X] Pay bills
- Met with Mike and Molly

Whereas if the line is somewhere in between parsing works.

# My Plan

## Inbox

## 2022-07-28, Thursday

- Met with Mike and Molly
- [ ] Develop photos
- [X] Pay bills

Add warning to README

Add warning that Alas can destroy data and that it's advisable to make a backup of the plan every time.

Wrong indentation in a task body breaks parsing

If a task body has wrong indentation, Alas fails silently. No errors are displayed, but no commands are executed.

Example of a plan:

## 2024-03-28, Thursday

- [ ] 16:00 Pair programming with Mary
 - Re: New chart
- [ ] Standup

In the example - Re: New chart is indented only one space instead of two.

Introduce a new state for skipped tasks

Pending tasks are marked with - [ ]. Completed tasks are marked with - [X]. If we want to skip a task - so that it's not scheduled over and over again, we have to mark it as completed, which is misleading. We should introduce a new state for skipped tasks. Examples:

- [>] Skipped task
- [-] Skipped task
- [0] Skipped task
- [o] Skipped task
- [/] Skipped task
- [~] Skipped task

The last option is used by [x]it!.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.