github / github/awesome-copilot

[External Plugin]: MarkdStage

Open
#3,210 1 comment 0 reactions 0 assignees View on GitHub
external-plugin external-plugin-canvas ready-for-review
Dominant language
JavaScript
Stars
39k
Forks
5k
Avg merge
1d 22h
Merged PRs (30d)
113

Description

### Plugin name

markdstage

### Short description

Create, edit, present, and export Markdown slides in a GitHub Copilot Canvas.

### GitHub repository

runceel/MarkdStage

### Plugin path inside the repository

.github/plugin/markdstage

### Ref to review

v4.2.4

### Commit SHA to review

34621f7217fbf2a10499c229229df4c86241095d

### Version

4.2.4

### License identifier

MIT

### Author name

Kazuki Ota

### Author URL

https://github.com/runceel

### Homepage URL

_No response_

### Keywords

canvas
copilot-canvas
markdown
slides
presentation

### Additional notes for reviewers

## Quick review scenario

Once the plugin is installed, the whole flow can be driven from chat:

1. Ask Copilot:

"Create github-copilot-app.md with about 10 MarkdStage-format slides that give an overview of
the GitHub Copilot app, include at least one Architecture DSL diagram and speaker notes, then
open that file in the MarkdStage canvas, check the layout for clipped slides, and show the
result in the fixed 16:9 output preview."

Copilot writes github-copilot-app.md, opens the MarkdStage Canvas on slide 1, and uses
inspect_layout to report clipping and Architecture measurements against the 1280x720 output
surface, fixing any overflow before showing the deck. More controls > Output preview toggles
the same fixed 16:9 surface by hand. Navigate with the on-canvas buttons, arrow keys, or the
slide list.

2. Move to the slide that contains the Architecture diagram.

3. Choose More controls > Shape editing. The Architecture editor canvas opens for that diagram:
move and resize nodes, add shapes, connect them, then Save to write the change back into the
Markdown source.

4. Back in the Canvas, exercise the presentation and output paths:
- More controls > Presenter view shows the current slide, the next slide, and speaker notes
side by side, with its own Previous / Next / Slide list controls.
- Start presentation in the presenter view opens a synchronized 1280x720 audience window
(F11 for full screen on Windows); End presentation closes it. More controls >
External window opens the same audience window directly from slide view.
- More controls > Export PDF writes a 16:9 PDF.
- More controls > Export PowerPoint... writes a hybrid editable .pptx, where diagram shapes,
connectors, and text stay editable PowerPoint objects and speaker notes become slide notes.

Presentation and export reuse an already-installed Edge, Chrome, or Chromium browser; the
extension never downloads one.

## Implementation notes

- This plugin is a Canvas extension. The tree at
.github/plugin/markdstage/com.github.copilot/extensions/markdstage is generated from the
canonical Extension source at .github/extensions/markdstage and verified byte-for-byte in CI
(npm run awesome:check).
- Besides Mermaid, the extension ships a stable Architecture DSL v1 (JSON in an `architecture`
fence) with a published JSON Schema, plus a dedicated diagram editor canvas, so diagram
positions, sizes, containers, and connectors stay deterministic across export.
- The extension runs locally, requires no network service and no API key, binds loopback HTTP
servers to 127.0.0.1, and bundles its own vendor assets with no runtime npm dependencies.

### Submission checklist

- [x] The plugin lives in a public GitHub repository.
- [x] The ref and/or sha I provided is immutable (release tag and/or full 40-character commit SHA), not a branch.
- [x] This submission follows this repository's contribution, security, and responsible AI policies.
- [x] This plugin is not already listed in the Awesome Copilot marketplace.

Contributor guide

Open the contributing guide

Research direction

Review the plugin at .github/plugin/markdstage and its canonical source at .github/extensions/markdstage, using ref v4.2.4 and commit 34621f7217fbf2a10499c229229df4c86241095d. Run the documented review scenario and npm run awesome:check. Done means the plugin is appropriately reviewed and the generated extension content passes the repository’s byte-for-byte verification.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, markdown
Domain
content, documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.