Lab instruction authoring has been improved to allow a function to show/hide lab instructions and lab instruction elements. Instructions and elements in Sections and code blocks can be shown or hidden based on the lab variable set via Life Cycle Actions, Activity Based Assessments, an IDLx textbox or an IDLx drop-down menu.

 

This can also work in conjunction with labs that use instructions stored in GitHub and displayed in the lab via a Markdown include. This allows the lab instructions to be displayed dynamically based on the variable set in the lab. For example, you could configure the drop-down menu to have 2 language options; en and fr. Then in GitHub where the lab instructions are stored you could create 2 copies of the lab instructions; one in English and one in French, with the lab variable value at the end of the file name. The lab user could then select en or fr in the drop-down menu in their launched lab, and the corresponding lab instruction file from GitHub would be displayed in the lab.

 

Additionally, the variable can be selected with an API launch. This allows the lab to display a specific Section when the lab launches.

 

  • Sections: Sections are used to group lab instructions and elements together so they may be called up on and manipulated as one. This is done by assigning a lab variable that has been set via LCA, ABA, an IDLx textbox¬† or an IDLx drop-down menu.

 

Syntax for Sections:

:::SectionName(variableName=variableValue)

Lab instructions or markdown elements

:::

 

  • IDLx Drop-down: there is a new @lab token to add a drop-down menu to lab instructions, and assign multiple values to the drop-down menu. The values added to the drop-down become variables in the lab and can be assigned to IDLx sections as a way to show/hide lab instructions. The @lab token can be found in the @lab button when editing lab instructions or by using the syntax below.

 

IDLx Drop-down:

@lab.DropDownList(variableName)[value1,value2]

 

  • Dynamic Includes: IDLx already supports displaying lab instructions stored in GitHub via a Markdown Include. That functionality has been expanded to use variables set in the lab to display lab instructions based on the drop-down menu selection. This requires the file names of the content in GitHub to have the variable value at the end of the file name, and a Section created in the lab instructions with a variable that has been set via LCA, ABA, an IDLx textbox or an IDLx drop-down menu.

 

GitHub file name example:

sample1-en.md.

 

Include syntax with variable in file name:

!instructions[](https://raw.githubusercontent.com/dillonreese/samples/master/sample1-@lab.Variable(language).md)

 

  • API Launch Command Parameter: the LOD API Launch command can now accept and submit a variable value parameter and select the variable in the lab when the lab launches.

 

API launch command with parameter example:

http://labondemand.com/api/v3/launch?labid=100&userid=555&firstname=Joe&lastname=Smith&email=joe.smith@email.com&variable-name=value

 

These are not limited to language selections. Lab variables, Sections and code blocks can be used to show/hide content based on the lab variable. Another use case for this could be Choose your difficulty, where there are multiple versions of the lab instructions with varying difficulty levels and the lab user selects their preference and lab instructions are displayed accordingly.