careteditor / issues

Caret issues
https://caret.io
325 stars 12 forks source link

Feature Request: Slideshow rendering #280

Closed stephen-bunn closed 10 months ago

stephen-bunn commented 7 years ago

I don't know if this has been discussed before, or what the general opinion of Markdown driven slideshows is... but I find myself frequently using markdown to throw together quick presentations. There are already several flavors of Markdown that support slideshow rendering such as Remark and Marp that I would be overjoyed to be able to use within Caret.

Opinions?

erusev commented 7 years ago

We are considering it.

Do you think it should a feature of Caret or a separate app that's dedicated to presentations and uses the Caret text engine?

Thanks.

stephen-bunn commented 7 years ago

I would prefer for it to be a feature of Caret itself. I would love if the Caret app became my go-to utility for anything related to Markdown. However, I don't know which option may better for the dev team.

erusev commented 7 years ago

Do you think you can tell me more about how it imagines it to work - would the preview show slides, how would it know that the document is a presentation and not a regular document, would there be a "play" mode that one could use to present directly from the app, I want to know everything :)

stephen-bunn commented 7 years ago

From a visual perspective, it would be nice to have options on how to view the presentation. Currently, Marp offers two ways of viewing markdown as a presentation:

The 1:1 display where it displays the single slide depending what slide your cursor is in. Imgur

And just a simple list of slides that is scrollable. Imgur

Because Caret has the synchronized scrolling feature, that might be a useful hook for visualizing slides within a list. However, I don't find myself using the 1:1 feature more often than the list.

Because markdown is markdown it might be useful to have just a checkbox to switch between viewing the text as a markdown document or as a presentation. Remark utilizes MultiMarkdown metadata to do simple styling and do other interesting things like variable substitution (example). Those metadata fields (if Caret supports multimarkdown syntax) could also be used for determining how the file should be visualized.

If you do decide to support markdown presentations, then I feel like some kind of "presenter view" is a must. Perhaps just an option in the command palette which could render the slide in a full-screen window with arrow key control.

One thing is deciding if you are going to stick with an existing syntax (since remark and marp define their own flavors) or if you are also going to come up with some hybrid flavor of markdown. Unsure of what exactly I could want out of Caret other than that it stays as aesthetically pleasing and user-friendly as possible. Which probably means hiding things (like a play button) since it could ruin the ui experience for some people.

erusev commented 7 years ago

Thanks for the detailed explanation, I appreciate it.

pslobo commented 7 years ago

I suspect this would be an ideal candidate for a plugin. I don't see myself using this feature and I imagine I'm not alone.

I'd rather see you focus on meaningful features that sets Caret above the rest. There is already a barrage of apps like Deckset, Marp, Remark.js, Reveal,js etc. that focus on slides with either some form of markdown or html.

There would be a couple issues you'd need to tackle, such as presentation styles. Probably CSS, but then you'd need files separate for presentations and preview/export. You'd also need to provide some nice out of the box templates for users.

As for how you could do it if you opted to:

I'd suggest taking a look at Deckset to see just how far along they are and consider what you'd need to do to make something similar and worthwhile using for presentations and consider if it's worth your time...

Sorry to rain on everybody's parade though...

erusev commented 7 years ago

Thanks @pslobo for the input.

If we decide to implement this, it'd most likely be a separate app as it's too different of a problem than what Caret tries to solve.