Skip to content

coderoad/coderoad-cli

Repository files navigation

Build Publish NPM

CodeRoad Buidler - CLI

Command line interface for CodeRoad.

Pre-Requisites

Install

Use CodeRoad CLI to set up and build a tutorial configuration file.

npm install -g @coderoad/cli

Create

Create templates files for building a new tutorial.

coderoad create

Templates for specific coding languages to come.

Build

Build the configuration file to be used by the extension to run the tutorial.

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

# 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

---
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

commit 8e0e3a42ae565050181fdb68298114df21467a74 (HEAD -> v2, origin/v2)
Author: creator <[email protected]>
Date:   Sun May 3 16:16:01 2020 -0700

    1.1 some message

commit 9499611fc9b311040dcabaf2d98439fc0c356cc9
Author: creator <[email protected]>
Date:   Sun May 3 16:13:37 2020 -0700

    1.1S some message

commit c5c62041282579b495d3589b2eb1fdda2bcd7155
Author: creator <[email protected]>
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.