Parser for skillstester (markdown) challenges


Parser for skillstester (markdown) challenges

[Back To Top]

This project contains a parser for the scenario language used on

Sample scenarios can be found at

[Back To Top]

A skillstester scenario is defined in Markdown.

This skilltester-parser will convert the Markdown in a machine usable Json Scenario.

A scenario file consists of multiple Sections. Each Section is specified as level h1.

  • h1. Scenario contains the tasks & extra information
  • h1. Actions contains the actions
  • h1. Checks contains the checks
  • h1. Hardware contains the hardware
  • h1. Settings contains the settings

To reference an element inside the scenario you can use the following syntax - @<special-type>: [a description](#<reference-to-special-definition>)

Known special-types are:

  • action: this will contain a block that will execute something
  • check: a check that will be executed
  • setting: a setting that can be loaded

A can contain any characters. But if you avoid spaces or '.', github will create autolink to your subsection elements.


- @check: [A simple check](#simple-check-element)
- @action: [A simple check](#simple-action-element)

A h2. level element will define the id of the element you can refer to

Any list-item element of the form key: value will result in parameter

if you specify a @codeblock inside a value, if will load the next code element as a parameter

In values or text blocks, you can use the [mustache] syntax {{{ }}}.

Any settings you define in your settings block can be referenced with prefix:

  • scenario..

Other available prefixes are:

  • player.
  • hardware.<id>.ip_address

Any action defined in a h3. block Solution will only be executed on request or in test-mode.

  actions: [],
  checks: [],
  hardware: [],
  scenario: []

Known action types are:

  • Exec: ssh execs on a machine

    • command:
    • username:
  • Http: performs an http request

Checks extend action types with criteria to check if success full or not

  • Exec:
    • exitcode:
    • content:
  • Explain combo types
  • Figure out merging of attributes
  • aliasing elements