# How to make a slide post?

**URL:** https://meta.discourse.org/t/how-to-make-a-slide-post/214026
**Category:** Support
**Created:** [January 6, 2022, 9:41am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026 "2022-01-06T09:41:20Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![hokod](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hokod/32/239410_2.png) [@hokod](https://meta.discourse.org/u/hokod)
#### Post date: [January 6, 2022, 9:41am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/1 "2022-01-06T09:41:20Z")

</div>

Suppose I have 3 images posted by 3 links, and 3 captions for these 3 images.  
How to make a slide post like in the 4th image (in this topic)

iMage1:

[![](https://global.discourse-cdn.com/meta/optimized/3X/1/d/1d48f1560be09ddbc91475f514a1c84ca6001846_2_1023x717.png) ](https://global.discourse-cdn.com/meta/optimized/3X/1/d/1d48f1560be09ddbc91475f514a1c84ca6001846_2_1023x717.png)

image2:

 ![](https://global.discourse-cdn.com/meta/original/3X/c/c/ccabeec02c0aa475e8216b1028db497f9048795f.png)

image3:

 ![](https://global.discourse-cdn.com/meta/original/3X/1/c/1c326c9a7537f1d419f24124952d5aa32be382cf.jpeg)

=================  
image4:

[![](https://global.discourse-cdn.com/meta/original/3X/9/9/991558b60814588064e68db7e079ea39e4f0dce6.gif) ](https://global.discourse-cdn.com/meta/original/3X/9/9/991558b60814588064e68db7e079ea39e4f0dce6.gif)

Thanks!

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 6, 2022, 10:41am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/2 "2022-01-06T10:41:38Z")

</div>

It’s not possible to achieve this on the Topic List because only one image is serialized per Topic.

However, on a single Topic you could look at: [Slick Image Gallery](https://meta.discourse.org/t/slick-image-gallery/81952)

---

<div class="post-metadata">

### Author: ![hokod](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hokod/32/239410_2.png) [@hokod](https://meta.discourse.org/u/hokod)
#### Post date: [January 6, 2022, 10:59am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/3 "2022-01-06T10:59:06Z")

</div>

Thank you for your support.  
As you say is not feasible.  
So if I just want to create a slide for the content (no images),  
then how can i create slide for conent in post.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 6, 2022, 11:08am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/4 "2022-01-06T11:08:04Z")

</div>

You can embed a Google presentation as a slideshow in an iframe:

 ![image](https://global.discourse-cdn.com/meta/original/3X/3/d/3d312537910da99975bbb30890c6349d2f9efcd0.png)

You need to permit this source for iframes in `allowed iframes`

> **[Google Slides: Presentation Slideshow Maker | Google Workspace](https://workspace.google.com/products/slides/)**
>
> Create stunning presentations with Google Slides. Discover slide templates for every use case, use AI to generate unique visualizations, and more.

Once you’ve made your presentation, go to `File -> Publish to Web` and copy the link at the end of the short wizard.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 6, 2022, 11:13am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/5 "2022-01-06T11:13:41Z")

</div>

Same thing also works with PowerPoint [Sign in to your Microsoft account](https://www.office.com/launch/powerpoint?ui=en-US&rs=GB&auth=1)

 ![image](https://global.discourse-cdn.com/meta/original/3X/2/6/267b0890b3ac389f7ad60c344e7a485b281ed552.png)

Use Office 365 online, access Powerpoint and once ready go to `File -> Share -> Embed` to get the iframe link

---

<div class="post-metadata">

### Author: ![hokod](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hokod/32/239410_2.png) [@hokod](https://meta.discourse.org/u/hokod)
#### Post date: [January 6, 2022, 11:16am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/6 "2022-01-06T11:16:31Z")

</div>

I’m worried, this will affect SEO,  
because the content is not in the discourse editor.  
Instead, the content is in Powerpoint (google , or Microsoft)

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [January 6, 2022, 11:17am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/7 "2022-01-06T11:17:25Z")

</div>

I think it’s a lot to expect Discourse to be a fully featured presentation tool 🙂

Perhaps you can include Markdown versions of the slides in the following posts.

---

<div class="post-metadata">

### Author: ![hokod](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hokod/32/239410_2.png) [@hokod](https://meta.discourse.org/u/hokod)
#### Post date: [January 6, 2022, 11:21am UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/8 "2022-01-06T11:21:14Z")

</div>

I hope, there is a way to create a slide for the content in the post (discourse).

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [February 23, 2026, 3:21pm UTC](https://meta.discourse.org/t/how-to-make-a-slide-post/214026/9 "2026-02-23T15:21:56Z")

</div>

Currently exploring options as well. It should be possilbe to implement it as theme component, right?

E.g. there are markdown to slides libraries that could be used:

> [@](#):
>
> Here are the best GitHub repositories for this, ranked by how easily they can be adapted into a Discourse Theme Component.
> 
> ### 1. Remark.js (Highly Recommended for Discourse)
> 
> - **GitHub:** [gnab/remark](https://github.com/gnab/remark)
> 
> - **How it works:** Remark is designed specifically to run entirely in the browser. You feed it a Markdown string (where slides are separated by `---`), and it dynamically generates the HTML/CSS required for the presentation on the fly.
> 
> - **Why it fits Discourse:** Because it requires zero build steps, you can easily load the `remark.min.js` script via your Discourse theme component. You can capture the Markdown from a user’s post and pass it directly into the Remark engine.
> 
> ### 2. Reveal.js
> 
> - **GitHub:** [hakimel/reveal.js](https://www.google.com/search?q=https://github.com/hakimel/reveal.js)
> 
> - **How it works:** Reveal.js is the heavy hitter of web presentations. While it is primarily an HTML presentation framework, it has a built-in Markdown plugin.
> 
> - **Why it fits Discourse:** It is extremely feature-rich (speaker notes, PDF export, animations, math typesetting). It _can_ run client-side, but it is much heavier than Remark.js. You would need to load the core Reveal library, the Markdown plugin, and the Reveal CSS theme into your Discourse component.
> 
> ### 3. Marp (Markdown Presentation Ecosystem)
> 
> - **GitHub:** [marp-team/marp](https://github.com/marp-team/marp)
> 
> - **How it works:** Marp is the modern standard for Markdown slides, utilizing a concept called “Directives” to handle CSS theming directly inside the Markdown frontmatter.
> 
> - **Why it fits Discourse:** Marp relies heavily on CLI tools and Node.js for rendering. However, they do offer **Marpit** (`@marp-team/marpit`), the core framework which can parse Markdown and output HTML/CSS. Implementing this in Discourse would require you to bundle Marpit into a client-side JavaScript file using a tool like Webpack or Rollup before uploading it as a theme component.
> 
> * * *
> 
> ### How to Implement This as a Discourse Theme Component
> 
> To repurpose one of these (like Remark.js) into a Discourse theme component, you’ll want to use the **Discourse Plugin API** to intercept specific Markdown blocks before they render on the page.
> 
> Here is a high-level blueprint of how you can build it:
> 
> 1. **Define a Trigger:** Decide how users will tell Discourse to render slides. A great way is to use a specific code block language, like ````slides` or a Discourse BBCode wrap like `[wrap=slides]`.
> 
> 2. **Load the Library:** In your theme component’s `about.json`, include the external script for Remark.js or Reveal.js so it loads when the user visits the forum.
> 
> 3. **Decorate the Cooked Content:** Use the Discourse JavaScript API (`api.decorateCookedElement`) to look for your trigger blocks whenever a post is rendered.
> 
> 4. **Render:** When the API finds a ````slides` block, it hides the default code block, creates a new `<div>` container, and initializes the slide library inside that container using the raw text from the code block.
