Welcome! This guide shows you how to contribute presentation content to this repository without needing to know MARP or any technical presentation tools. If you can write markdown, you can create professional slides!
-
Get the template:
# If you've cloned the repo cp templates/contributor-template.md slides/your-talk-name.mdOr download it directly:
templates/contributor-template.md -
Fill in your content:
- Open
slides/your-talk-name.mdin any text editor - Replace placeholder text with your content
- Follow the instructions in the template comments
- See
slides/example-contribution.mdfor a complete example
- Open
-
Submit your slides:
- Commit and push to a new branch
- Open a pull request
- The CI/CD system will automatically build your slides
- Download the generated PDF/HTML from the PR
Don't want to use Git? No problem!
- Open a new GitHub issue
- Use the title: "Slide Submission: [Your Talk Title]"
- Paste your content in the issue body
- A maintainer will convert it to slides for you
If your team wants to submit multiple presentations:
- Contact the maintainers (open an issue or discussion)
- Discuss your needs and timeline
- We'll work with you on the best submission workflow
The contributor template (templates/contributor-template.md) is designed to be self-explanatory. Here's what you need to know:
---
marp: true
theme: edera-v2
paginate: true
---These lines at the top configure the presentation system. Don't modify or remove them.
<!-- _class: title -->These HTML comments tell the system what type of slide to create. Keep these in place.
---Three dashes create a new slide. Use these to separate your slides.
Everything else is yours to customize:
- All headings (
#,##,###) - All bullet points and numbered lists
- All paragraphs and text
- Code blocks
- Tables
- Images
- Blockquotes
<!-- _class: title -->
# Your Talk Title
## Your Subtitle
Your Name | Event | DateWhen to use: Opening slide and closing "Thank You" slide
<!-- _class: content -->
# Your Heading
- Bullet point one
- Bullet point two
- Bullet point threeWhen to use: 90% of your slides - standard content
<!-- _class: dark -->
# Important Message
- Key point
- Critical insightWhen to use: Highlight important information or transitions between sections
<!-- _class: two-columns -->
# Comparison
## Left Column
- Point A
- Point B
## Right Column
- Point X
- Point YWhen to use: Comparisons, before/after, pros/cons, side-by-side concepts
<!-- _class: content -->
# Your Heading

Caption text hereWhen to use: When images are central to your point
-
One idea per slide
- Don't try to fit too much on one slide
- Split complex topics across multiple slides
-
Limit text
- Maximum 5-7 bullet points per slide
- Keep bullet points to one line
- Use short sentences
-
Use visuals
- Images enhance understanding
- Code examples should be concise
- Tables work well for comparisons
-
Structure your talk
- Introduction (why it matters)
- Main content (3-5 key points)
- Key takeaways
- Thank you / contact info
For emphasis:
**Bold text** for important terms
*Italic text* for secondary emphasisFor code:
```python
def example():
return "Use code blocks for code"
```For quotes:
> Important quote or callout textFor tables:
| Header 1 | Header 2 |
|----------|----------|
| Data 1 | Data 2 |- ❌ Walls of text (use bullet points instead)
- ❌ Too many bullet points (max 7 per slide)
- ❌ Tiny images (minimum 800px wide recommended)
- ❌ Complex nested lists (keep it simple)
- ❌ Removing the special comments (
<!-- _class: -->) - ❌ Modifying the MARP frontmatter (lines at the top)
-
Place images in the
images/directory:images/ my-talk/ diagram1.png screenshot2.png -
Reference in your markdown:

-
Always include alt text (the text in brackets) for accessibility
- Format: PNG or JPG
- Size: Keep under 500KB per image
- Dimensions: Minimum 800px wide for quality
- Optimization: Use tools like TinyPNG to reduce file size
- Naming: Use descriptive filenames (
architecture-diagram.pngnotimg1.png)
Here's a recommended structure for a 20-30 minute talk:
-
Title Slide (1 slide)
- Talk title, your name, event, date
-
Introduction (2-3 slides)
- What you'll cover
- Why it matters
- Context/background
-
Main Content (8-12 slides)
- 3-5 main points
- Each point gets 2-3 slides
- Include examples, code, visuals
-
Key Takeaways (1-2 slides)
- Summarize main points
- Make them actionable
-
Closing (1 slide)
- Thank you
- Questions
- Contact information
Total: 12-20 slides for 20-30 minutes (roughly 1-2 minutes per slide)
---
<!-- _class: content -->
# Why Use Kubernetes?
- **Scalability** - Handle millions of requests
- **Reliability** - Automatic failover and recovery
- **Efficiency** - Optimal resource utilization
- **Portability** - Run anywhere (cloud, on-prem)
------
<!-- _class: content -->
# Basic Python Function
Here's how to create a simple greeting function:
```python
def greet(name):
"""Return a personalized greeting."""
return f"Hello, {name}! Welcome to our talk."
# Usage
message = greet("Developer")
print(message) # Output: Hello, Developer! Welcome to our talk.
```
------
<!-- _class: two-columns -->
# Monolith vs Microservices
## Monolithic Architecture
- Single codebase
- Easier to develop initially
- All-or-nothing deployment
- Scales entire application
## Microservices Architecture
- Multiple independent services
- More complex setup
- Independent deployment
- Scales specific components
----
Fork and clone the repository
git clone https://github.com/your-username/talks.git cd talks -
Create a new branch
git checkout -b slides/your-talk-name
-
Copy and fill the template
cp templates/contributor-template.md slides/your-talk-name.md # Edit slides/your-talk-name.md with your content -
Add images if needed
# Create directory for your images mkdir -p images/your-talk-name # Copy your images there
-
Commit and push
git add slides/your-talk-name.md images/your-talk-name/ git commit -m "feat(slides): add presentation on [your topic]" git push origin slides/your-talk-name -
Open a pull request
- Go to the repository on GitHub
- Click "New Pull Request"
- Select your branch
- Fill in the PR template
- Submit!
-
CI/CD builds your slides
- GitHub Actions automatically builds HTML and PDF
- Download artifacts from the Actions tab
- Review the generated output
- Make any needed adjustments
If you prefer not to use Git:
-
Open a new issue in the GitHub repository
-
Use this template:
Title: Slide Submission: [Your Talk Title] ## Talk Information - **Title:** Your Talk Title - **Event:** Conference/Event Name - **Date:** YYYY-MM-DD - **Speaker:** Your Name ## Slide Content [Paste your slide content here using the template format] ## Images - [Describe any images needed or attach them] ## Questions/Notes - [Any questions or special requests]
-
Submit the issue
- A maintainer will review
- They'll convert to the proper format
- You'll get a link to the generated slides
- Automated build - CI/CD generates HTML and PDF versions
- Review - Maintainer checks formatting and quality
- Feedback - You may get suggestions for improvements
- Merge - Once approved, your slides are merged
- Published - Your slides are available in the repository
Once merged, your slides will be available:
- Source:
slides/your-talk-name.md - HTML:
dist/your-talk-name.html - PDF:
dist/your-talk-name.pdf
You can also download them from the GitHub Actions artifacts during the PR review process.
If you want to preview your slides before submitting:
-
Install dependencies:
npm install
-
Build your slides:
# HTML output npm run build # PDF output npm run build:pdf # Watch mode (auto-rebuild on changes) npm run watch # Local server with live reload npm run serve
-
View the output:
- HTML:
dist/your-talk-name.html - PDF:
dist/your-talk-name.pdf
- HTML:
- Verify the image path is correct
- Images should be in
images/directory - Use forward slashes:
images/my-talk/diagram.png - Check image file size (under 500KB)
- Make sure you kept the
<!-- _class: -->comments - Check that you have
---between slides - Verify the MARP frontmatter at the top is intact
- Compare with
slides/example-contribution.md
- Make sure you're using triple backticks:
``` - Specify the language:
```python - Verify proper spacing around the code block
- Check that each row has the same number of columns
- Include the header separator row:
|---|---| - Keep tables simple (3-4 columns max)
- Check
slides/example-contribution.mdfor a complete example - Review existing slides in
slides/directory - See
docs/marp-usage.mdfor detailed MARP documentation - Open an issue with questions
- Tag a maintainer in discussions
No! The template handles all the MARP-specific syntax. Just write markdown and follow the template structure.
The Edera V2 theme is applied automatically. If you need custom styling for a specific project, discuss with maintainers.
The template is flexible - add or remove slides as needed. Just copy the slide patterns that fit your content.
We prefer markdown for consistency, but if you have slides in another format (Google Slides, PowerPoint), contact the maintainers to discuss conversion options.
If your slides are already merged, open a new PR with updates to your slide file. If still in review, push new commits to your PR branch.
Yes! Once generated, you can use the HTML or PDF versions for your presentations. The HTML version works in any web browser.
- Example slides:
slides/example-contribution.md - Template:
templates/contributor-template.md - Basic template:
templates/basic-presentation.md(for MARP users) - MARP documentation:
docs/marp-usage.md(advanced) - Theme guide:
docs/theme-guide.md(customization) - Main README:
README.md(project overview)
Your slides will automatically use the Edera V2 theme:
Colors:
- Dark Teal (#013a3b) - Title backgrounds, body text
- Light Mint (#d0fdf2) - Content backgrounds
- Cyan Accent (#02f4d5) - Headings, links
Fonts:
- Headings: Clean, modern sans-serif
- Body: Readable sans-serif
- Code: Monospace font
Accessibility:
- All color combinations meet WCAG AA standards
- High contrast for readability
- Properly sized fonts
You don't need to worry about any of this - it's all automatic!
Questions, suggestions, or need help?
- Open an issue: General questions or problems
- Start a discussion: Ideas for improvement
- Tag a maintainer:
@maintainer-namein issues or PRs
We're here to help make your slide submission as easy as possible!
Thank you for contributing! Your presentations help grow this resource for the entire community.