darrikonn / td-cli

A todo command line todo manager ✔️
https://pypi.org/project/td-cli/
MIT License
191 stars 10 forks source link

[Feature Request] Tasks in Markdown #16

Closed ArcherN9 closed 4 years ago

ArcherN9 commented 4 years ago

Have you considered enabling Markdown format for the tasks in edit mode?

When I started using the tool, I limited myself to using single line descriptions of the tasks. As I used the tool, I came up with a system that works best for me. My use case expanded to using indicative titles for the first line and a full-blown numbered task list underneath it that are a bunch of smaller tasks that contribute to complete the broader task defined.

A recursive task completion engine for the items defined within a task would be good but I'm guessing that's not where the project is headed. Markdown support would assist though. I could use strikethroughs for example! I currently retort to adding a "Complete" tag at the beginning of a bullet that tells me it's done.

darrikonn commented 4 years ago

Thanks for the feature request. Yeah, my initial approach to td-cli was to render the description using Markdown format. After API TDD I didn't see the need for it in my use-case due to project groupings.

However, I've been caught in a similar situation with sub-todos. I'd like to add Markdown rendering of the todo's description. Wouldn't that suit your use-case?

Btw. when you talk about the edit mode, are you referring to the interactive mode (td --interactive)?

md

ArcherN9 commented 4 years ago

In my opinion, both features are nice to haves and mutually exclusive. A sub task list is beneficial but it may further complicate the simplicity that you strived to achieve with the application.

Markdown has the capacity to alleviate the need for Subtask lists though that may just appear as a workaround. Regardless, markdown would be a terrific feature to have.

Btw. when you talk about the edit mode, are you referring to the interactive mode

No, I haven't tried the interactive mode. : )

I suggested edit mode because bringing in Markdown support can be a two pronged approach. I had focus on the first.

  1. Instead of text files, use '.md' with the 'td 85 edit' command. Vim with proper configurations will take care of the rest.
  2. With a 'td 85' command, we'd need the output rendered in Markdown. I suppose this is what you're referring to up above in your comments.
darrikonn commented 4 years ago

Aahh nice hadn't thought of case no. 1. To get the syntax highlighting + vim async markdown composer. Would be super cool! Yeah I agree that these tasks are mutually exclusive, would first do no. 1 (the one you suggested), then number 2 in a follow-up PR.

A sub task list is beneficial but it may further complicate the simplicity that you strived to achieve with the application.

Yeah exactly what I was thinking with the simplicity 👌.

Alright, I'm keen on adding this feature! My proposal looks like this:

  1. The user can explicitly set the format of the rendering in the td config file, something like:
    [settings]
    format: md

    Where format accepts [md, txt] (should maybe be markdown and text instead?).

  2. When editing/creating a todo, a temp .md file is created, so that the user's editor can syntax highlight and render markdowns asynchronously.
  3. (implemented later) When viewing a single todo, the description is rendered with a markdown format.

Any comments on this before I start?

(btw. I recommend the interactive mode. Came in as a feature request, and I use it on regular basis since then)

ArcherN9 commented 4 years ago

To get the syntax highlighting + vim async markdown composer. Would be super cool!

I agree!

Where format accepts [md, txt]

I foresee [md, txt] resonating with Linux users more than [markdown, text] but that's just one person's opinion.

I recommend the interactive mode

I'll try it out today!

No further comments. You seem to have got my thoughts on this feature through & through. Thanks!

P.S. I tried the interactive editor. It lets me modify only the titles of the Todo tasks. Doesn't apply to my use case but I see why people may like it - Todo on steroids.

darrikonn commented 4 years ago

Now available in version 2.0.0. Note that if you have XDG_CONFIG_HOME set (most likely at ~/.config since you're a Linux user), then the database will now live under (~/.config/td-cli/todo.db). You can either move the database + config from ~/.todo.db/~/.td.cfg to ~/.config/td-cli/todo.db/~/.config/td-cli/todo.cfg, or set the TD_CLI_HOME environment variable to ~.

darrikonn commented 4 years ago

Btw. you need to set:

[settings]
format: md

in .config/td-cli/todo.cfg in order to enable Markdown 👍 ... thanks for the feature request! Please let me know if anything is missing! (will move to rendering the todo's details in terminal next)

ArcherN9 commented 4 years ago

Tried a lot of things. Not once did any of the tasks came up in markdown. :( The file always opens with a .tmp extension.

darrikonn commented 4 years ago

Hmm, can you paste the output of cat ~/.config/td-cli/todo.cfg ?

ArcherN9 commented 4 years ago

I must have been super overworked the last time I tried to enable markdown and I couldn't. I kept moving the file .td.cfg to .todo.cfg. Notice the todo.cfg shouldn't have a . before it. I changed it today and markdown works as expected.

Thanks!

darrikonn commented 4 years ago

Ok awesome to hear! Thanks!