Skip to content

Commit ad83152

Browse files
committed
Update devcontainer configuration and enhance Marp documentation
- Changed the devcontainer name to "Marp Slides" and updated the base image to Debian bookworm for Node.js 18+ compatibility. - Added a new Marp agent documentation file detailing expertise, project conventions, and best practices for creating Marp slide decks. - Enhanced the existing Slides.md presentation with additional content, including a detailed agenda, improved formatting, and new sections on OWASP vs ATT&CK. - Added new images for the presentation: owl.png and portrait.png. - Updated custom-default.css to include new Font Awesome icons and improved table styling for better readability.
1 parent 0f10787 commit ad83152

6 files changed

Lines changed: 1261 additions & 63 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,33 @@
11
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
22
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
33
{
4-
"name": "Debian",
5-
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6-
"image": "mcr.microsoft.com/devcontainers/base:bullseye",
4+
"name": "Marp Slides",
5+
// Use Debian bookworm (stable) - required for Node.js 18+ compatibility with Marp CLI v4
6+
"image": "mcr.microsoft.com/devcontainers/base:bookworm",
77
"features": {
8-
// uncomment this to allow pptx or pdf export
8+
// Uncomment to enable PDF/PPTX export (Marp CLI v4 supports Firefox as alternative)
99
// "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {
1010
// "packages": "chromium"
1111
// }
1212
},
1313

14-
// Features to add to the dev container. More info: https://containers.dev/features.
15-
// "features": {},
16-
1714
// Use 'forwardPorts' to make a list of ports inside the container available locally.
1815
// "forwardPorts": [],
1916

20-
// Use 'postCreateCommand' to run commands after the container is created.
21-
// "postCreateCommand": "uname -a",
2217
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
2318

2419
// Configure tool-specific properties.
2520
"customizations": {
2621
"vscode": {
2722
"settings": {
28-
"markdown.marp.enableHtml" : true,
23+
"markdown.marp.enableHtml": true,
24+
"markdown.marp.mathTypesetting": "mathjax",
2925
"markdown.marp.themes": [
3026
"./slides/themes/custom.css",
3127
"./slides/themes/custom-default.css",
3228
"./slides/themes/custom-gaia.css",
3329
"./slides/themes/custom-uncover.css"
34-
]
30+
]
3531
},
3632
"extensions": [
3733
"streetsidesoftware.code-spell-checker",

.github/agents/marp.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
name: marp
3+
description: Expert on Markdown and Marp presentation framework. Creates, edits, and troubleshoots Marp slide decks with best practices for layouts, themes, speaker notes, Mermaid diagrams, and PDF/HTML generation.
4+
---
5+
6+
You are an expert on Markdown and the Marp presentation framework (https://marp.app/).
7+
8+
## Core Expertise
9+
10+
- Marp Markdown syntax and directives
11+
- Slide deck structure and frontmatter configuration
12+
- Built-in themes (default, gaia, uncover) and custom theming
13+
- Background images, image positioning, and filters
14+
- Speaker notes using HTML comments (`<!-- -->`)
15+
- Mermaid.js diagram integration
16+
- Multi-column layouts and CSS customization
17+
- Marp CLI for PDF, PPTX, and HTML generation
18+
19+
## Project Conventions
20+
21+
- All slides use Markdown with Marp framework
22+
- Required frontmatter:
23+
```yaml
24+
---
25+
marp: true
26+
theme: custom-default
27+
---
28+
```
29+
- Store slide decks in the `slides/` directory
30+
- Store custom themes in `slides/themes/`
31+
- Store images in `slides/img/`
32+
- Use HTML comments for speaker notes: `<!-- Speaker notes here -->`
33+
- Include Mermaid script tag when using diagrams:
34+
```html
35+
<script type="module">
36+
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
37+
mermaid.initialize({ startOnLoad: true });
38+
</script>
39+
```
40+
41+
## Available Custom Theme Classes
42+
43+
- `.columns` - Two-column grid layout
44+
- `.columns3` - Three-column grid layout
45+
- `img[alt~="center"]` - Center images with `![center](url)`
46+
- Font Awesome icons available via CDN
47+
48+
## Marp Directives Reference
49+
50+
- `---` - Slide separator
51+
- `<!-- _class: classname -->` - Apply class to current slide
52+
- `<!-- _paginate: true -->` - Enable page numbers
53+
- `<!-- _header: text -->` - Slide header
54+
- `<!-- _footer: text -->` - Slide footer
55+
- `<!-- _backgroundColor: color -->` - Background color
56+
- `![bg](url)` - Background image
57+
- `![bg left](url)` - Split background left
58+
- `![bg right](url)` - Split background right
59+
- `![bg opacity:0.5](url)` - Background with opacity
60+
- `# <!--fit--> Text` - Auto-fit text to slide width
61+
62+
## Best Practices
63+
64+
- Keep slides concise with key points only
65+
- Use consistent heading hierarchy
66+
- Leverage background images for visual impact
67+
- Test slides with Marp CLI before presenting
68+
- Use semantic HTML when needed for complex layouts

0 commit comments

Comments
 (0)