jupyter-book / jupyterlab-myst

Use MyST Markdown directly in Jupyter Lab
https://jupyter-book.github.io/jupyterlab-myst/
BSD 3-Clause "New" or "Revised" License
146 stars 18 forks source link

Clickable check lists #63

Closed nthiery closed 1 year ago

nthiery commented 1 year ago

Context

In my student assignments, I include a checklist so that student can check tasks as they are achieved to keep track of their progress through the assignment. For now, they have to edit the underlying markdown (double click, and replace - [ ] by - [x]) which is inconvenient and error-prone.

Proposal

When a rendered markdown cell contains a check-list, enable to check/uncheck a checkbox by a simple click in the check-box. Like e.g. in github/gitlab issue trackers.

Note: this involves not only rendering of cells, but also editing the underlying markdown. So this may well be out of scope of jupyterlab-mystjs and/or may require coordination with the progress with prosemirror wysiwig cell editor.

Bonus: enable markdown cells that are read-only but for checking/unchecking check boxes. This would require a third value to the editable cell option: non editable/checkable/editable, a change which goes even further away of jupyterlab-mystjs.

Tasks and updates

No response

welcome[bot] commented 1 year ago

Thanks for opening your first issue here! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out EBP's Code of Conduct. Also, please try to follow the issue template as it helps other community members to contribute more effectively.
If your issue is a feature request, others may react to it, to raise its prominence (see Feature Voting).
Welcome to the EBP community! :tada:

agoose77 commented 1 year ago

Prosemirror is something I always wanted to look at for next-level JupyterLab Markdown support. I know that Jason Grout also used to to add inline widgets, which was quite interesting.

Nevertheless, that's a much bigger task than just making checklists actionable. @rowanc1 MDAST includes the token position information, right? If so, we should be able to do this.

rowanc1 commented 1 year ago

We do have access to the token line numbers, so editing that x shouldn't be too difficult in this context. We probably want to keep some scope in check for how much the rendered view can edit the markdown, but this part seems very doable. I am tracking the underlying work here.

From the prosemirror/wysiwyg editor, I would vote to keep that out of scope of this repository. I absolutely want to work on that, and through open source work + curvenote have been working on these editors for >3 years. It will happen, just not sure if this extension is the best place for the wysiwyg push, which may appeal to slightly different users? Super open to feedback though if you think they should live in the same place!

nthiery commented 1 year ago

I am tracking the underlying work here.

Excellent, thanks! Looking forward to it :-)

prosemirror/wysiwyg editor

You will know better what makes sense implementation wise :-) It indeed sounds like a sensible strategy to keep for a while a small focused project to explore at an agile pace the interplay between myst and rendering in the browser before bringing the features to larger projects like prosemirror, either as some sort of plugin or by cross-pollinisation.

rowanc1 commented 1 year ago

Related to https://github.com/executablebooks/mystjs/issues/244

rowanc1 commented 1 year ago

Here is the current version @nthiery @agoose77:

tasklists-in-jupyterlab tsx

Let me know your thoughts, I think it is pretty cool. :)

nthiery commented 1 year ago

Nice!!! Can't wait to try it out :-)

agoose77 commented 1 year ago

Closed by #121