Hi everyone!
I built a plug that renders an interactive media slider / carousel inside fenced media-slider code blocks. It's inspired by the Obsidian Media Slider plugin — useful for grouping photos, clips, or mixed media into one compact widget instead of a long page of embeds.
Features:
- Mixed media — images, video, audio, and YouTube embeds; other files open as links
- Thumbnails — position top / bottom / left / right, collapsible via a toggle button
- Captions — overlay or below the media (![[photo.jpg|A sunrise]])
10 transition effects — fade, slide, zoom, slide-up, slide-down, flip, flip-vertical, rotate, blur, squeeze - Autoplay / slideshow with configurable speed
- Navigation — arrow keys, touch swipe, prev/next buttons (hidden for a single slide)
- Zoom & pan on images — click to zoom at the click point, drag to pan, +/-/reset buttons, Ctrl+scroll to zoom
- Fullscreen (iframe-aware) and a copy-markdown-link button for the current slide
Usage
A fenced block where each line is one slide:
```media-slider
---
carouselShowThumbnails: true
thumbnailPosition: bottom
transitionEffect: slide
transitionDuration: 300
enhancedView: true
---
![[photo1.jpg|A sunrise]]
![[photo2.png|A calm lake]]
![[clip.mp4]]
![[song.mp3]]
https://www.youtube.com/watch?v=dQw4w9WgXcQ
```
Thumbnails, captions, widths/heights, transitions, and slideshow speed are all configurable via YAML options — see the README for the full list.
GitHub: GitHub - glechic/silverbullet-media-slider: A SilverBullet plug that renders image/audio/video/PDF/markdown media sliders inside fenced media-slider code blocks. · GitHub
It's built as a codeWidget plug with renderMode: iframe — the UI is a small Preact app sandboxed in the widget iframe, so it can't touch the rest of your space.
Feedback, bug reports, and feature requests are very welcome — either here or in the GitHub issues.
