mfontanini / presenterm

A markdown terminal slideshow tool
https://mfontanini.github.io/presenterm/
BSD 2-Clause "Simplified" License
1.19k stars 29 forks source link

Add table of contents for easier navigation to specific slides #123

Closed prabirshrestha closed 8 months ago

prabirshrestha commented 8 months ago

Would be great if there is a keybinding to see the slide number along with the title so one can easily navigate to a particular slide with up/down, j/k vim bindings. Even better if there is some sort of fuzzy finder.

1. Introduction slide
2. Headers
3. Other headers
4. Ending slides
....
mfontanini commented 8 months ago

Love this idea. Will have a look into implementing something soon!

pwnwriter commented 8 months ago

@mfontanini ,

I was planning to implement a configuration file for presenterm, which will include customizable keybindings in toml or json format. This will allow end-users to modify the keybindings according to their preferences.

Let me know your opinion!

mfontanini commented 8 months ago

@prabirshrestha I just pushed #128 which adds an index modal that you can toggle using control + p for now. I didn't add the fuzzy finding thing, as that's a very involved change, not because of the fuzzy finding itself but because it would mean we need to handle input in a more complex way. LMK your thoughts.

@pwnwriter I was thinking that would be a good thing to implement actually. Now with this modal thing it should be customizeable. There already is a configuration file, it should need to have this added to it. I can work on it tomorrow, otherwise if you'd like to take it up, go for it. Please move this combo to another issue tho, thanks!

pwnwriter commented 8 months ago

@mfontanini ,

If I were to work on, I would do so on Saturday. I believe you can proceed ;)

prabirshrestha commented 8 months ago

Demo looks good. Is there some sort scrollbar?

mfontanini commented 8 months ago

There is no scroll bar, but if there's too many slides, the size of the panel is capped and it will "follow" the currently selected slide:

asciicast