/handx

Markdown handouts + exercises

Primary LanguageJavaScriptOtherNOASSERTION

handx

Markdown handouts + exercises

An example handout!

Clone this repository and open example/handout/index.html.

Example slides!

Clone this repository and open example/slides/index.html.

JavaScript and CSS for rendering and running handouts.

For local development, the handout HTML file includes handout-render.js to render the page in the browser. handout-render then loads handout-run.js to handle exercises and interactive elements. Exercise answers are checked locally.

For deployment, the handout HTML page is loaded in Headless Chrome, pre-rendered, and the resulting HTML file only includes handout-run. Exercise answers are also stripped from the file and checked server-side.

Shell scripts for pre-rendering handouts.

deliver-handouts pre-renders a directory of handouts as described above. It delivers HTML files to one directory, for display on the web, and JSON files with exercise answers to another directory, for use by the server-side exercise checker.

repo-post-receive-hook is designed for use with Git Meta-Hooks and deliver-handouts-athena on Athena.

Scripts for pre-rendering handouts with AWS Lambda.

Server-side exercise checking for use with scripts.mit.edu and Omnivore.

status.php is shown in the right margin of exercise groups and allows the reader to log in via cert/login.php.

submit.php handles exercise submission. It checks exercises using the JSON files delivered to data when handouts are pre-rendered. It also reports results to an Omnivore grade server.