<h1 align="center"> <img alt="Demo Time" src="./assets/logo/demotime.png"> </h1>
<h2 align="center">Demo Time empowers you to script flawless coding demonstrations and present slides seamlessly within Visual Studio Code. Eliminate typos and missteps, ensuring engaging and stress-free presentations.</h2>
<p align="center"> <a href="https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-demo-time" title="Check it out on the Visual Studio Marketplace"> <img src="https://vscode-marketplace-badge.vercel.app/api/badge/version/eliostruyf.vscode-demo-time?style=flat-square" alt="Visual Studio Marketplace" style="display: inline-block" /> </a>
<img src="https://vscode-marketplace-badge.vercel.app/api/badge/installs/eliostruyf.vscode-demo-time?style=flat-square" alt="Number of installs" style="display: inline-block;margin-left:10px" />
<a href="https://github.com/sponsors/estruyf" title="Become a sponsor" style="margin-left:10px"> <img src="https://img.shields.io/github/sponsors/estruyf?color=%23CE2E7C&logo=github&style=flat-square" alt="Sponsor the project" style="display: inline-block" /> </a> </p>
<h2 align="center"> <a href="https://demotime.show/" title="Demo Time Documentation"> Documentation 👉 demotime.show </a> </h2>
<p align="center"> <img alt="Demo Time" src="./assets/demotime.gif"> </p>
Features
- Scripted Demos: Automate your coding demonstrations to maintain a perfect
flow.​
- Code Highlighting: Emphasize specific code segments to draw audience
attention.​
- Integrated Slides: Present slides directly within VS Code for a cohesive
experience.​
- Customizable Actions: Execute various VS Code commands and tasks as part
of your demo.
- PowerPoint Integration: Seamlessly move from slides to code using the
Getting Started
- Installation: Install the extension.​
- Initialization: After installation, initialize the extension in your
project by opening the Explorer panel in VS Code. Locate the Demo Time view and click on the "Initialize" button. This action creates a .demo folder in your workspace containing either a demo.json or demo.yaml file, depending on your chosen format.​
- Creating Demos: Populate the act file with your actions, defining each
step and action as required.​ More information about the available actions can be found in the supported actions documentation section.
Documentation
For detailed instructions, advanced configurations, and best practices, please refer to the comprehensive documentation available at https://demotime.show. This resource offers in-depth guides and examples to help you maximize the extension's capabilities.
Example act file
Here is an example demo:
{
"$schema": "https://demotime.show/demo-time.schema.json",
"title": "Sample demo",
"description": "This is a sample demo configuration to show the capabilities of the extension.",
"demos": [
{
"title": "Step 1",
"description": "This is step 1",
"steps": [
{
"action": "create",
"path": "sample.json",
"content": "{\n \"firstName\": \"Elio\",\n \"lastName\": \"Struyf\"\n}"
},
{
"action": "open",
"path": "sample.json"
},
{
"action": "highlight",
"path": "sample.json",
"position": "2:3"
}
]
},
{
"title": "Step 2",
"description": "This is step 2",
"steps": [
{
"action": "snippet",
"contentPath": "./snippets/insert_and_highlight.json",
"args": {
"MAIN_FILE": "sample.json",
"CONTENT_PATH": "content.txt",
"CONTENT_POSITION": "3",
"HIGHLIGHT_POSITION": "4"
}
}
]
}
]
}
You can also explore a comprehensive example in the following GitHub Repositories:
- Introduction presentation about Demo Time
- presentation-github-actions
- presentation-m365-playwright-github-actions
Testing
Run linting and unit tests with:
npm run lint
npm test
Tests use Jest with built-in coverage. New tests are located in the tests/ directory.
Support
If you enjoy my work and find them useful, consider sponsor me and the ecosystem to help Open Source sustainable. Thank you!
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
<p align="center"> <a href="https://github.com/sponsors/estruyf" title="Sponsor Elio Struyf" target="_blank"> <img src="https://img.shields.io/badge/Sponsor-Elio%20Struyf%20%E2%9D%A4-%23fe8e86?logo=GitHub&style=flat-square" height="25px" alt="Sponsor @estruyf" /> </a> </p>
<br />
<p align="center"> <a href="https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Festruyf%2Fvscode-demo-time"> <img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Festruyf%2Fvscode-demo-time&labelColor=%23555555&countColor=%2397ca00" height="25px" alt="Demo Time visitors" /> </a> </p>
<br />
<p align="center"> <a href="https://struyfconsulting.com" title="Hire Elio Struyf via Struyf Consulting" target="_blank"> <img src="./assets/struyf-consulting.webp" height="25px" alt="Struyf Consulting Logo" /> </a> </p>






