A "Copy prompt for your agent" button in the header copies SKILL.md as a prompt: one line pointing to the hosted file (for agents that can install skills) and then the skill itself, without its frontmatter, so it works in any agent, including one that can't open links. Until SKILL.md loads, or if it can't, the button copies a one-line prompt that points to it. SKILL.md teaches the format, the #d= link recipe in Python and Node, the #md= fallback for agents without code, and how to hand the link over. How it works gets a fourth card, and the README points to both. Two agents given only the copied prompt made working links, one compressed with code and one percent-encoded by hand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CYHXFvWMCs1GUmRmpySqQ6
55 lines
2.3 KiB
Markdown
55 lines
2.3 KiB
Markdown
---
|
|
name: mdeck
|
|
description: Make slide decks as .mdeck links, plain-text slides that open at mdecks.yolopreneur.lol with the whole deck inside the link and nothing uploaded. Use when asked for slides, a deck or a presentation to open in a browser or share as a link.
|
|
---
|
|
|
|
# Slide decks as .mdeck links
|
|
|
|
.mdeck (https://mdecks.yolopreneur.lol/) turns plain text into slides. The deck travels inside its link, after the `#`, so nothing is uploaded and opening it needs no account. Whoever opens the link can present it with the arrow keys, edit it, or copy it as one HTML file.
|
|
|
|
## Write the deck
|
|
|
|
- `# Title` starts a slide's title, and `## Subtitle` goes under it.
|
|
- `- point` (or `* point`) is a bullet.
|
|
- Any other line is a paragraph.
|
|
- `---` on its own line starts a new slide.
|
|
- Inline: `**bold**`, `*italic*`, `` `code` `` and `[text](https://...)`.
|
|
|
|
Nothing else renders: no images, tables, nested lists or code blocks. Aim for a title and three to six short bullets per slide. A slide that runs long shrinks its text and, past 70%, is cut in two with its title repeated, so nothing overflows, but your own `---` breaks will fall in better places.
|
|
|
|
For example:
|
|
|
|
```
|
|
# Q3 in one minute
|
|
## What shipped and what slipped
|
|
|
|
- Shipped: the new editor
|
|
- Slipped: PDF export, now due in November
|
|
- Next: a link for every deck
|
|
|
|
---
|
|
# Thanks
|
|
|
|
Questions welcome.
|
|
```
|
|
|
|
## Make the link
|
|
|
|
The link is `https://mdecks.yolopreneur.lol/#d=` followed by the deck's UTF-8 text compressed with raw deflate (no zlib header) and encoded as base64url without padding. In Python:
|
|
|
|
```python
|
|
import base64, zlib
|
|
|
|
c = zlib.compressobj(9, zlib.DEFLATED, -15)
|
|
data = c.compress(deck.encode()) + c.flush()
|
|
link = "https://mdecks.yolopreneur.lol/#d=" + base64.urlsafe_b64encode(data).decode().rstrip("=")
|
|
```
|
|
|
|
In Node: `"https://mdecks.yolopreneur.lol/#d=" + require("zlib").deflateRawSync(deck).toString("base64url")`.
|
|
|
|
If you can't run code, use `https://mdecks.yolopreneur.lol/#md=` followed by the text percent-encoded, the way `encodeURIComponent` does it. Those links are longer but work the same.
|
|
|
|
## Hand it over
|
|
|
|
Reply with the link, and keep the deck's text so you can revise it: every change makes a new link. Someone who wants a file can open the link and press **Copy deck as HTML** for one self-contained HTML file.
|