Feature request: Checkboxes in Markdown

It would be fantastic to have support for GFM-style checkboxes in Markdown syntax; that is, the ability to add a checklist to a markdown document using this syntax:

- [ ] Item 1
- [ ] Item 2

Etc. These should then render as checkboxes the user can interact with when viewing the document in its rendered form; clicking them would toggle them on and off, updating the underlying markdown. For instance, clicking Item 2 above would change the markdown to:

- [ ] Item 1
- [x] Item 2
4 Likes

See e.g. Checkboxes in Markdown?

Agreed, GFM-Markdown would be great to have as an option. But when sticking to multimarkdown this is not possible.

Adding support for other Markdown engines (like Pandoc) would do the job! :slight_smile:

It is infeasible to add every Markdown flavor people may want. MultiMarkdown is considered the natural successor and extension of Gruber’s original spec, so we support that.

I think this should be revisited. The increasingly popular standard for Markdown is CommonMark, and Github-Flavored Markdown is now implemented as an extension to CommonMark.

I haven’t encountered MultiMarkdown in quite a while now outside of DEVONthink.

2 Likes

We will look into this as time allows.

2 Likes

completely agree @meta . I tried indexing just now one of the notes I use inside of obsidian and I was shocked that devonthink doesnt render my checkboxes. I don’t think im going to use the markdown preview features in devonthink because of this. I was planning to use it as a pinned note to the top of each database for a to-do list. bummer. @BLUEFROG

I have to agree with @meta and @obadiahcruz when they say that most modern apps using Markdown are not implementing Multimarkdown.

The landscape of Markdown-supporting note-making apps has exploded in the last two years. Obsidian is amazing, as is Noteplan and many others. It’s great that Devonthink plays nicely with these apps. I can view and edit my plain-text documents inside Devonthink if I want to and sync changes automatically with Obsidian or Noteplan and vice-versa. However, a key ingredient to seamless cross-compatibility is ensuring that Devonthink also renders markdown in a similar way to these other apps.

Checkbox task lists have become a standard in this type of application. I believe Devonthink should at least support the rendering and styling of them in CSS, even if you can’t ‘click to complete’ a task like you can in other editors.

Welcome @Vlahn

However, a key ingredient to seamless cross-compatibility is ensuring that Devonthink also renders markdown in a similar way to these other apps.

Given these other apps are the late-comers to the party, it’s also easy to make the case they should ensure they render Markdown in a similar way to DEVONthink. :slight_smile:

As mentioned in other forum posts, we are not trying to ensure we conform to every feature other apps decide to implement just as we aren’t trying to turn DEVONthink into a Zettelkasten or “second brain” application. However, some changes we make may benefit those apps or proponents as well as our broader user base.

Requests are welcome for sure, but there isn’t a concerted effort to make sure Obsidian/Noteplan/Roam (which no one seems to talk about any more), etc. features are integrated into DEVONthink.

As far as switching to a different Markdown flavor, that would be something that would need to be considered and discussed internally. It isn’t a simple, _“Well of course we’d make that change!”, especially as MultiMarkdown is great, not “new on the block”, and has some very nice features that have benefitted our users.

PS: You can already set a checkbox in Markdown in DEVONthink, though no it’s not a live item that can be clicked on and off.

- [ ] Something to do
- [x] Something that's done

image

1 Like

Switching, i.e. discontinuing MultiMarkdown, would be a very bad thing for those users who already use MultiMarkdown …

2 Likes

Thanks for your response @BLUEFROG.

I hear what you are saying with regards to DevonTHINK sticking to it’s core principles and not trying to be something its not. At the same time, my argument is that DevonTHINK is so flexible and compatible, it often does 90% of the cross-compatibility feature-set of other apps - it’s a shame not to have the other 10%. Particularly if that 10% are features that a reasonable proportion of users would utilise.

@pete31 Good point. As I think other commenters in this and other threads have said, better to offer users a choice of markdown processors rather than forcing a choice on everyone. DevonTHINK offers users many other options, including support for MathJAX etc, why not Markdown processor? Those who don’t care will just use the default, those that do then can… Put the burden on the user by making them need to download and install the files for other processors themselves (even make it an additional purchase from DevonTHINK or something, so you can recoup development costs).

@BLUEFROG With regard to those checkboxes, what is the CSS selector needed for styling them? That’s the sticking point for me, rather than the clicking functionality (though that is also nice).

You’re very welcome!

DevonTHINK is so flexible and compatible

Indeed! And sometimes this is our strength and our cross to bear :wink:

@BLUEFROG With regard to those checkboxes, what is the CSS selector needed for styling them? That’s the sticking point for me, rather than the clicking functionality (though that is also nice).

It’s actually not user-definable. It’s U+2611 and set internally.

1 Like

In general I’m definitely for offering as much (hidden) preferences as possible. That’s one reason why I think Tinderbox is a wonderful piece of software.

In this case however I can imagine it would require a lot of stuff that needed to be implemented. There’s probably a reason why most apps stick to one processor. I think Obsidian (which I don’t use) is one of few apps that offer two flavours. I’m not aware of any app that allows users free choice of the markdown processor they like to use. Well, that’s probably not true, Tinderbox can be used with any processor, I think.