https://github.com/coderoad/coderoad-cli
CLI for CodeRoad tutorial creation
https://github.com/coderoad/coderoad-cli
Last synced: 7 months ago
JSON representation
CLI for CodeRoad tutorial creation
- Host: GitHub
- URL: https://github.com/coderoad/coderoad-cli
- Owner: coderoad
- License: agpl-3.0
- Created: 2020-05-23T02:04:41.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T21:33:03.000Z (almost 3 years ago)
- Last Synced: 2024-11-06T19:17:31.717Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 1.32 MB
- Stars: 8
- Watchers: 4
- Forks: 2
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README



# CodeRoad Buidler - CLI
Command line interface for [CodeRoad](https://marketplace.visualstudio.com/items?itemName=CodeRoad.coderoad).
## Pre-Requisites
- [NodeJS](https://nodejs.org/)
- [Git](https://git-scm.com/downloads)
## Install
Use CodeRoad CLI to set up and build a tutorial configuration file.
```shell
npm install -g @coderoad/cli
```
## Create
Create templates files for building a new tutorial.
```shell
coderoad create
```
Templates for specific coding languages to come.
## Build
Build the configuration file to be used by the extension to run the tutorial.
```shell
coderoad build
```
Defaults assume:
- a `TUTORIAL.md` markdown file (change with `--markdown OTHER.md`)
- a `coderoad.yaml` file (change with `--yaml other.yaml`)
- an output file of `tutorial.json` (change with `--output other.json`)
The configuration file is created by matching the `level` and `step` ids between the `TUTORIAL.md` and `coderoad.yaml` files against git commit messages with the same ids. For example:
**TUTORIAL.md**
```markdown
# Tutorial Title
Tutorial description.
## 1. This is a level with id = 1
This level has two steps...
### 1.1 First step
The first step with id L1S1. The Step id should start with the level id.
#### HINTS
- The first hint available when a user requests a hint
- The second hint that will show
- The third and final hint, as it is last in order
### 1.2 The second step
The second step...
```
**coderoad.yaml**
```yaml
---
levels:
- id: "1"
config: {}
steps:
- id: "1.1"
setup:
files:
- package.json
commands:
- npm install
solution:
files:
- package.json
commands:
- npm install
- id: "1.2"
setup:
files:
- src/server.js
commands:
- npm install
solution:
files:
- src/server.js
```
... and the commit messages
```text
commit 8e0e3a42ae565050181fdb68298114df21467a74 (HEAD -> v2, origin/v2)
Author: creator
Date: Sun May 3 16:16:01 2020 -0700
1.1 some message
commit 9499611fc9b311040dcabaf2d98439fc0c356cc9
Author: creator
Date: Sun May 3 16:13:37 2020 -0700
1.1S some message
commit c5c62041282579b495d3589b2eb1fdda2bcd7155
Author: creator
Date: Sun May 3 16:11:42 2020 -0700
1.2 some message
```
Note that the step `1.1` has two commits, one with the suffix `S`. The first commit refers to the required tests and setup, while the second optional commit contains the solution. If there are multiple commits for a level or step, they are captured in order.