class: center, middle
Subtitle: A slide deck template powered by Remark.js and Go
Author: Your Name
CSWG Workshop June 10 2025
http://ciwg.github.io/workshop-YYYY-MM-DD-template/
For additional materials visit the repo on Github
- Quick Start
- Setting up Github Pages
- How it works
- Code Example
- Table Example
Copy this template
- Visit the workshop template, and click "Use this template".
- Make sure Owner is set to "ciwg" - This makes sure you still retain access to 'Github Pages' Settings later.
- Name your repository following 'workshop-YYYY-MM-DD-workshop-name' format.
Modify the content
- Clone the repo to your local machine.
- Edit
README.mdto create the content of your workshop. - In your terminal, run
maketo generate and hostindex.html - Open http://localhost:8192 to view your slides.
NOTE: Sometimes the browser caches too aggressively & recent changes won't displayed. Use Ctrl+Shift+R (or Cmd+Shift+R on Mac) to complete a 'hard refresh' of your browser tab.
- Push to GitHub
- Go to Settings > Pages
- Select source: main branch, / (root)
- Your slides will be live at: 'https://ciwg.github.io/your-workshop-name/'
- Update the URL on the cover page as needed.
Optional: Click the Settings ⚙️ in the About section of the repo. Check ✅ 'Use your GitHub Pages website'
This template uses remark and Go to build and serve slide presentation. Slides are written in Markdown using a couple 'formatting rules' and compiled with Go into a static HTML file.
--
- Use
---to separate slides,--to increment a slide - Highly customizable with CSS and JavaScript
- Supports speaker notes (press "P" to toggle in/out)
- Configurations (e.g. scroll navigation) can be enabled or disabled
Visit the wiki to understand more built-in formating options.
--
The Go code in this repo extends the basic functionality of Remark.js by automating the slide building process, incorporating a template file, and enabling live-reloading during presentating & development.
??? This is a speaker note. View speaker mode using "P" hotkey or insert #p to the url, for example: http://localhost:8192/#p5
package main
import "fmt"
// a long function that causes the code block to need a scrollbar
// to demonstrate that code blocks can be scrolled
func longFunction() {
// do nothing for several lines
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
fmt.Println("Hello, World!")
}
func main() {
fmt.Println("Hello, World!")
}Insert a table to display data:
| Feature | Description |
|---|---|
| Markdown | Simple syntax for writing slides |
| LaTeX | Support for mathematical expressions |
| Customization | CSS and JavaScript for styling |
You can modify table formatting by editing the CSS in the template file.
Some content that deserves a note.[1]
[2] You'll need to include a line break between each footnote.
Footnotes will be positioned at the bottom of the slide regardless if they are in-between two text blocks.[2]
class: center, middle
