🆓 Free Forever
No expensive licenses or subscriptions. Open source and completely free.
此内容尚不支持你的语言。
Create stunning presentations using simple Markdown. Present at conferences, teach courses, or share your research with slides that you can edit anywhere, version control with Git, and present with just a browser.
🆓 Free Forever
No expensive licenses or subscriptions. Open source and completely free.
🔓 No Vendor Lock-In
Plain Markdown files. Edit in any text editor. Not tied to PowerPoint, Keynote, or Google.
📝 Version Control
Track changes with Git, collaborate with GitHub pull requests, maintain presentation history.
🌍 Edit Anywhere
Use Lore Studio, VS Code, Obsidian, or even Notepad. Your slides, your tools.
🎨 Professional Design
15+ built-in themes, syntax highlighting for 50+ languages, LaTeX math support.
🔮 Future-Proof
Plain text format will never become obsolete. Works today, works in 20 years.
Install the Reveal.js Plugin
Add the blox-plugin-reveal module to your site’s config/_default/module.yaml:
imports: - path: github.com/HugoBlox/kit/modules/blox-tailwind - path: github.com/HugoBlox/kit/modules/blox-plugin-revealInitialize Hugo Modules
Run in your site’s root directory:
hugo mod get -uhugo mod tidyVerify Installation
Check that the module appears in your go.mod:
module github.com/USERNAME/my-site
go 1.19
require ( github.com/HugoBlox/kit/modules/blox-tailwind v0.X.X github.com/HugoBlox/kit/modules/blox-plugin-reveal v0.X.X)Create Your First Slide Deck
Create a new file at content/slides/my-first-talk/index.md:
---title: "My First Presentation"date: 2024-01-15type: slides
slides: theme: black highlight_style: dracula---
# My First Presentation### Your Name · Your Organization
---
## Overview
- First point- Second point- Third point
---
## Conclusion
Thank you for your attention!
**Questions?**Preview Your Slides
Start your Hugo server:
hugo serverVisit: http://localhost:1313/slides/my-first-talk/
Present!
Press F for fullscreen or use the embedded slides in your event pages.
Slides are separated by --- (horizontal rule):
# First Slide
Content here
---
## Second Slide
More content
---
## Third Slide
And so on...Display beautiful code blocks with 50+ language support:
```pythondef calculate_accuracy(y_true, y_pred): correct = sum(1 for true, pred in zip(y_true, y_pred) if true == pred) return correct / len(y_true) * 100```Supported languages: Python, JavaScript, R, Julia, Go, Rust, C++, Java, and more.
Write LaTeX equations inline or in blocks:
Inline math:
Einstein's famous equation is $E = mc^2$.Block math:
$$\nabla \times \vec{E} = -\frac{\partial \vec{B}}{\partial t}$$Add private notes only visible in presenter view:
## My Slide
Visible content here
Note:- This is a speaker note (press S to view)- Only you see these in presenter mode- Perfect for talking points and remindersPress S during your presentation to open the presenter console.
Hide slides from the presentation while keeping them in your source:
## Visible Slide
This slide will appear in the presentation.
---<!-- hide -->## Hidden Slide
This slide won't appear but stays in source for reference.
Perfect for:- Backup slides in case of questions- Speaker-only reference material- Work-in-progress content- Alternative explanations
---
## Another Visible Slide
Back to normal presentation flow.Why hide slides?
Hidden slides remain in your Markdown source but won’t appear during the presentation. Perfect for maintaining comprehensive slide decks while delivering focused presentations.
## Comparison
<div class="r-hstack">
<div>
### Before
- Slow: 2.5s- Memory: 4GB- Cost: $100/mo
</div>
<div>
### After
- Fast: 0.3s ✅- Memory: 512MB ✅- Cost: $15/mo ✅
</div>
</div>## Code + Explanation
<div style="display: flex; gap: 2rem;">
<div style="flex: 2;">
\`\`\`pythonclass Transformer: def __init__(self): self.layers = []\`\`\`
</div>
<div style="flex: 1;">
### Key Points
- Multi-head attention- Feed forward network- Residual connections
</div>
</div>## Results
<div style="display: flex; gap: 2rem; align-items: center;">
<div style="flex: 1;">

</div>
<div style="flex: 1;">
### Findings
- 95% accuracy- 10x faster- 50% cost reduction
</div>
</div>Create hierarchical slides by navigating down for details:
## Main Topic
Overview content here
Press **↓** for details
---
{{< slide id="detail-1" >}}
### Detail Level 1
More information
---
{{< slide id="detail-2" >}}
### Detail Level 2
Even more detail
Press **→** to continueChoose from 15+ built-in themes:
slides: theme: black # black, white, league, sky, beige, simple, serif, blood, night, moon, solarizedblack (default) - Clean dark backgroundnight - Dark blue/purpleblood - Dark red accentleague - Gray with orangewhite - Clean white backgroundsimple - Minimal whitebeige - Warm beigesky - Light blue gradientsolarized - Solarized color schememoon - Purple/blue gradientserif - Serif font stylingslides: highlight_style: dracula # dracula, monokai, github, etc.Add color, image, or video backgrounds to individual slides:
{{< slide background-color="#1e3a8a" >}}
## Blue Background
This slide has a custom blue background!
---
{{< slide background-image="background.jpg" >}}
## Image Background
Content over image
---
{{< slide background-video="video.mp4" >}}
## Video Background
Dynamic background!Reveal content progressively (on click/keypress):
## Step-by-Step
{{< fragment >}}First appears{{< /fragment >}}
{{< fragment >}}Then this{{< /fragment >}}
{{< fragment >}}Finally this{{< /fragment >}}
{{< fragment class="highlight-red" >}}Highlighted!{{< /fragment >}}## Demo Video
{{< youtube dQw4w9WgXcQ >}}## Recorded Demo
{{< video src="demo.mp4" controls="yes" >}}## Podcast Excerpt
{{< audio src="interview.mp3" >}}## Bilibili Video
{{< bilibili id="BV1WV4y1r7DF" >}}Create flowcharts, sequence diagrams, and more from text:
# Enable in frontmatter:slides: diagram: trueThen use Mermaid syntax:
## Research Workflow
```mermaidgraph LR A[Question] --> B{Hypothesis} B -->|Valid| C[Experiment] B -->|Invalid| D[Revise] C --> E[Analyze] E --> F{Significant?} F -->|Yes| G[Publish] F -->|No| D```| Key | Action |
|---|---|
→ ← | Navigate slides (horizontal) |
↓ ↑ | Navigate substeps (vertical) |
Space | Next slide |
S | Open speaker notes |
F | Fullscreen mode |
ESC | Exit fullscreen / Overview mode |
O | Overview mode (see all slides) |
/ | Search slides |
? | Show keyboard help |
Press S to open a separate presenter window showing:
Associate slide decks with conference talks or events:
Create Your Slides
content/slides/neurips-2024/index.md
Create Your Event
content/events/neurips-talk/index.md:
---title: "My Conference Talk"event: "NeurIPS 2024"date: "2024-12-10T14:00:00Z"
# Link to your slides folder nameslides: "neurips-2024"---
Talk details and abstract here...Result
---title: "My Presentation"date: 2024-01-15type: slides
# Slide settingsslides: # Theme (black, white, league, sky, beige, simple, serif, blood, night, moon, solarized) theme: black
# Code highlighting theme highlight_style: dracula
# Enable Mermaid diagrams diagram: true
# Reveal.js options reveal_options: controls: true # Show navigation controls progress: true # Show progress bar slideNumber: true # Show slide numbers hash: true # URL reflects slide position history: true # Browser history per slide keyboard: true # Keyboard shortcuts overview: true # Overview mode (ESC) center: true # Vertically center slides touch: true # Touch navigation loop: false # Loop presentation rtl: false # Right-to-left shuffle: false # Randomize slide order fragments: true # Fragment animations fragmentInURL: false # Fragment state in URL help: true # Show help overlay (?) showNotes: false # Show speaker notes to all autoPlayMedia: null # Auto-play media (null|true|false) preloadIframes: null # Preload iframes (null|true|false) autoSlide: 0 # Auto-advance delay (0=off) autoSlideStoppable: true # Stop auto-slide on interaction mouseWheel: false # Mouse wheel navigation hideInactiveCursor: true # Hide cursor when inactive hideCursorTime: 5000 # Cursor hide delay (ms) menu_enabled: true # Enable slide menu plugin---
# Your slides content hereMost options have sensible defaults:
---title: "My Talk"type: slides
slides: theme: black---Present research results and benchmarks:
## Benchmark Results
| Model | Accuracy | Latency | Memory ||-------|----------|---------|--------|| GPT-3 | 87.3% | 450ms | 4GB || GPT-4 | 92.1% | 890ms | 8GB || **Ours** | **95.8%** | **320ms** | **2GB** |## Related Work
> "The best way to predict the future is to invent it."> — Alan Kay
Recent research by Chen et al. (2024) demonstrates significant improvements[^1].
[^1]: Chen, S. et al. (2024). *Advances in AI*. Nature.## Implementation
**Training:**\`\`\`pythonmodel = Transformer(d_model=512)optimizer = Adam(model.parameters(), lr=1e-4)\`\`\`
**Inference:**\`\`\`pythonoutput = model.generate(prompt, max_tokens=100)\`\`\`Features:
VS Code
Install Markdown extensions for syntax highlighting and preview.
Obsidian
Note-taking app with excellent Markdown support and callout compatibility.
Typora
Minimal distraction Markdown editor with WYSIWYG mode.
Any Text Editor
Notepad, Vim, Emacs — anything works with Markdown!
Conference Presentations
Present at NeurIPS, ACL, ICML with slides you can share on GitHub for reproducibility.
Group Meetings
Version control your lab meeting slides. Track changes over time.
Thesis Defense
Professional slides with citations, equations, and diagrams.
Grant Proposals
Presentation slides that match your written proposal (both in Markdown).
Benefits:
Course Lectures
Create a slide deck for each lecture. Students can fork and study from source.
Tutorial Workshops
Live coding demonstrations with syntax highlighting.
Student Presentations
Students submit slides via pull requests. Review and provide feedback via comments.
Benefits:
| Feature | PowerPoint | Google Slides | Hugo Blox |
|---|---|---|---|
| Cost | $159.99/year | Free* | Free Forever |
| Format | Binary (.pptx) | Proprietary | Plain Markdown |
| Offline Editing | ✅ Yes | ⚠️ Limited | ✅ Fully Offline |
| Version Control | ❌ Difficult | ❌ Very Limited | ✅ Git Native |
| Platform Lock-in | ⚠️ Microsoft | ✅ None | |
| Code Highlighting | ⚠️ Basic | ⚠️ Limited | ✅ 50+ Languages |
| Math Equations | ⚠️ Clunky | ⚠️ Basic | ✅ Full LaTeX |
| Portability | ❌ Poor | ❌ Cloud Only | ✅ Works Anywhere |
| Edit Anywhere | ❌ App Required | ⚠️ Internet Required | ✅ Any Text Editor |
| Future-Proof | ❌ Format Changes | ⚠️ API Changes | ✅ Plain Text Forever |
| Collaboration | ⚠️ Complex | ✅ Good | ✅ Git-based |
One Idea Per Slide
Don’t cram multiple concepts. Split into separate slides.
Use Visual Hierarchy
Headers (##), bold (text), and fragments guide attention.
Consistent Spacing
Use gap: 2rem consistently across dual-column layouts.
Test Speaker Notes
Always test presenter view (S key) before presenting.
Keep It Simple
Markdown’s simplicity is a feature, not a limitation.
Version Control
Commit slides to Git, tag releases for different versions.
Problem:
<div>### This won't work</div>Solution:
<div>
### This works!
</div>Always add blank lines before and after Markdown inside HTML tags.
Check:
```pythonassets/css/libs/chroma/Press S to open presenter console in a new window. Make sure pop-ups aren’t blocked.
---title: "My Amazing Talk"date: 2024-06-15type: slides
slides: theme: black highlight_style: dracula diagram: true reveal_options: controls: true progress: true slideNumber: true---
# Title Slide### Your Name
---
## Agenda
- Introduction- Methods- Results- Conclusion
---
# Thank You!
Questions?Use the slide shortcode for advanced customization:
{{< slide id="custom" class="my-class" data-background-color="#ff0000" >}}
## Custom Slide
This slide has:- Custom ID for linking- Custom CSS class- Red backgroundAuto-advance slides (useful for kiosks):
slides: reveal_options: autoSlide: 5000 # Auto-advance every 5 seconds loop: true # Loop back to startExport slides to PDF:
?print-pdf to URL: localhost:1313/slides/my-talk/?print-pdfShare presentation URL:
https://yoursite.com/slides/my-talk/Embed in another site:
<iframe src="https://yoursite.com/slides/my-talk/" width="960" height="540" frameborder="0"></iframe>Good news! You already think in text-based slides:
\frame → --- delimiter$$...$$Thousands of researchers worldwide use Hugo Blox slides at:
Yes! Add custom CSS:
.reveal { font-family: 'Your Font', sans-serif;}Then load the font via Google Fonts or self-host.
Yes! Reveal.js supports slide transitions and custom animations:
slides: reveal_options: transition: 'slide' # none, fade, slide, convex, concave, zoomHugo generates static HTML. Just:
hugopublic/slides/my-talk/index.html in browserUse Netlify’s password protection or host behind authentication. Slides are static HTML.
Not dynamically, but you can create multiple versions with different themes and switch between them.
Yes! Slides are responsive. Touch gestures work for navigation. Best on tablets or larger screens.