Creating Instructions with Markdown Syntax
    • 02 May 2024
    • 24 Minutes to read

    Creating Instructions with Markdown Syntax


    Article Summary

    Markdown Syntax why should I use it?

    Markdown is an easy to use markup language to format text, that offers multiple ways to achieve the same result. Markdown was designed to be easy to learn as well as be easy to read and write. When creating Lab Instructions, you may use Markdown to format text. Markdown allows the author to keep their hands on the keyboard and focus on writing content.

    Markdown Syntax Overview

    The following is an overview of the syntax that you can use to format text with Markdown. You can use Markdown to create headings, text formatting, lists, tables, links, images, videos, and more. You can also use HTML tags in combination with Markdown, if you need more flexibility or functionality

    Best Practices For Markdown Syntax

    • When creating headings, always put a space between the number signs and the heading name.
    • Leave a blank line before and after a heading, this helps to visually separate the heading from the surrounding text when viewing the raw Markdown, making it easier to read and maintain.

    Headings

    In Markdown, headings are created by adding a number of hash (#) symbols before your text, followed by a space. The number of hashes corresponds to the heading level, with one hash (#) for the largest heading size (equivalent to <h1> in HTML), and six hashes (######) for the smallest (equivalent to <h6> in HTML). This is typically used to distinguish titles or subtitles at the beginning of sections within your document, helping to structure your content and make it easier to read. For example, to create a third-level heading, you would use three hashes, like so: ### Heading3.

    # Heading1
    ## Heading2
    ### Heading3
    #### Heading4
    ##### Heading5
    ###### Heading6

    Text Formatting

    Text formatting in Markdown allows you to modify the appearance of text, including its font, size, color, alignment, and style. Here are some key formatting options:

    • Spacing and Indentation

      • Indent Size: Pressing the tab key indents the line by 4 spaces.
      • Single Space: Pressing the tab key at the end of a line or pressing the space bar four times creates a single space on the next line.
      • Double Space: Leaving no spaces at the end of a line double spaces the next line.
    • Emphasis

      • Bold: To emphasize text, enclose it in two asterisk (*) symbols. Example: **Bold text**.
      • Italic: To distinguish text, enclose it in two underscore (_) symbols. Example: _Italic text_.
      • Bold and Italic: To distinguish text, enclose it in three underscores (_) symbols. Example: ___Italic text___.
      • Strikethrough: To mark text for deletion, enclose it in two tilde (~) symbols. Example: ~~Strikethrough text~~.
    • Escape Character: To prevent text from being formatted into Markdown, prepend it with a backslash (\). Example: \escaped text.

    • Code Blocks

      • Inline code block: used to provide a snippet of code that can be copied and pasted. Type a ` (backtick) on each side of the text that is to be displayed in the code block. Example:

        `code block`
        

        Code block

      • Fenced Code Block: To display a language-specific code snippet, enclose it in three backtick (`) symbols and specify the language on the first line. Example:

        ```PowerShell
        get-service | stop-service -whatif
        ```
        

        Fenced code block

      • Code Block Modifiers: These change the way code blocks are displayed. They can be used with or without a language directive. Simply leave out the language directive and only include the code block modifier. Examples include

        • Prevents code from being highlighted.

           ```PowerShell-nocolor
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
           ```
          

          Code block modifier with nocolor

        • Prevents the code block from rendering with a tab that displays the language used.

          ```PowerShell-notab
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
          ```
          

          Code block modifier with notab

        • Prevents the code block from being highlighted, no language tab and is not copyable.

          ```PowerShell-nocode
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
          ```
          

          code block modifier with nocode

        • Code is highlights but is not copyable.

          ```PowerShell-nocopy
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
          ```
          

          code block modifier with no opiton to copy

        • Multi line commands wrap to the next line.

          ```PowerShell-wrap
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
          ```
          

          code block modifier without wordwrap

        • Adds line numbers in the code block.

          ```PowerShell-linenums
           
           $processes = Get-Process
           $sorted = $processes | Sort-Object -Property WS -Descending
           $sorted | Select-Object -First 5
          
          ```
          

          code block modifier with line numbers

    Page formatting

    • Page break: Used to separate content into pages. Separating into pages creates a next button that the student must select to navigate to the next page. This is useful for displaying small sections of instruction to the student at a time, rather than all instructions on the same page within the lab. Type three = (equals) symbols on the line where the current page should end. The new page will begin on the line following the three = symbols.

      ===

    • Horizontal Line: Used to separate content on the same page. Type three --- (dash or hyphen) on the line where the horizontal line should appear.

      ---

    • Block quote: Used to quote information from other sources. Block quote text appears indented from other content in the document. Type a > (greater-than sign) before text that should appear in the block quote. Most Markdown syntax will render inside of block quotes.

      > text here

      > additional text here

    Embedded content

    Image ALT Text

    You should enter alt text and title to the embedded content, so that when a user mouses over it, a description will appear. You can add alt text and a title with the following syntax: !IMAGE[image alt text](Image.jpg "image title text")

    • Image: Used to embed an image inline with other content. When images are selected, they will open in a new window and display at the images full resolution.

      ![text to display](url)

    • Image Dimensions: You can specify image dimensions in your lab. Dimension values are in pixels and are placed inside curly braces, immediately after the end of the link URL syntax. Height and width are separated by a "x" in this format:{widthxheight}
      It's also possible to simply supply the width: {width}. In this case, the height is automatically calculated for you to be proportional to the provided width.

      ![image title](image url){heightXwidth} or {height}

    • Video: Used to embed a video inline with other content. The syntax format should look the same as an image, except the video should begin the word VIDEO (all caps).

      • Videos are used to provide rich media content, such as short, step-specific videos, that can serve a variety of purposes: to demonstrate a series of steps, to assist visual learners, to provide clarity, to provide additional information and others. Videos showing the steps in the task are particularly useful for difficult and complex tasks as well.
      • The video can be any URL that points to a video. Videos that are hosted on YouTube will be embedded in the lab instructions, and do not need to open in a separate window, for the video to play. Alternatively, you can link videos hosted by other sources in the lab instructions, using Markdown syntax.

      The following are some guidelines for creating videos that are associated with lab tasks:

      • Keep the video short, between 30 – 60 seconds at most.
      • Make sure the video covers only the relevant step.

      !video[text to display](url)

    • Audio: Used to embed an inline audio player, or a link to an audio recording.The syntax format should look the same as a video, except the audio should begin with a ! (explanation mark), followed by the word audio.

      !audio[text to display](url)

    • Image with link: Used to embed an image that can be selected to navigate to a specific URL (internal or external).

      [![text to display](url or file path "Optional image title")](url "Optional link title")

    • Portal Link: used to launch a hyperlink. In the Cloud Client, this will open the hyperlink in the left window (Resource Portal). In the traditional virtualization client (vm-based labs), this will open the hyperlink in a new local browser window.

      <[text to display](URL)

    • Image Link: used to display a link with a camera icon, to suggest that the hyperlink opens an image. Opens in a new window.

      image[text to display](URL to image)

      image link

    • Video Link: used to display a link with a video camera icon, to suggest that the hyperlink opens a video. Opens in a new window.

      VIDEO[text to display](URL to video)

      video link

    Task and List formatting

    • Unordered list: Used to list items in no particular order, separated by bullets rather than numbers. Type a - (dash or hyphen) followed by a space and then the text to be listed. Pressing enter at the end of the text will start the next line with a bullet.
    • Ordered list: Used to list items in a particular order, separated by numbers rather than bullets. Type the number 1, followed by a space and then the text to be listed. Pressing enter at the end of the text will start the next line with number 2.
    • Both Unordered and Ordered lists can contain Task Checkboxes for the student to check off steps as completed. Both list types can be combined in the same list. Task Checkboxes are used track and report lab progress to Skillable Studio and TMS, as well as a visual marker for students. Lab progress is calculated by the percentage of Task Checkboxes that are checked in the lab instructions.
    - [] Item 1
    - [] Item 2
    - [] Item 3
    - [] Item 4
    - [] Item 5
    
    1. [] Item 1
    1. [] Item 2
    1. [] Item 3
    1. [] Item 4
    1. [] Item 5
    

    Table formatting

    • Tables can be aligned left, right or center by placing a : (colon) on the head row of the table. Placing a colon on the left side, right side or both sides of the dashes in the header row, will align the text in the table accordingly.

    Left-aligned text

    | column 1 | column 2 |
    |:---------|:---------|
    | data 1   | data 2   |
    | data 3   | data 4   |
    

    Right-aligned text

    | column 1 | column 2 |
    |---------:|---------:|
    | data 1   | data 2   |
    | data 3   | data 4   |
    

    Center-aligned text

    | column 1 | column 2 |
    |:--------:|:--------:|
    | data 1   | data 2   |
    | data 3   | data 4   |
    

    Link formatting

    Knowledge

    You should enter alt text and title to the link, so that when a user mouses over it, a description will appear. You can add alt text and a title with the following syntax: !IMAGE[image alt text](Image.jpg "image title text")

    • Internal link: Used to link to a specific section within a document. Internal links must be all lower-case, alphanumeric and separated by hyphens. Any characters that are not alphanumeric should be omitted, and spaces should be replaced with a hyphen.

      • remove anything that is not a letter, number, space or hyphen
        • changes any space to a hyphen.
        • If that is not unique, add "-1", "-2", "-3",... to make it unique

      [text to display](#heading-to-link-to "optional link title")

    • External link: Used to link to a page outside of the document.

      [text to display](url "optional link title")

    • Relative link: used to link to a page in the same directory without the need to display the full URL of the page.

      [text to display](../folder/file.htm "optional link title")

    • Reference link: used to provide a link that will be referenced multiple times. The link can be referenced by typing the text value between the [ ] (square brackets). It is not necessary to include the full URL, as long as the text value in both sets of brackets is the same.

      • Text lookup:

        [Reference link text value]
        [Reference link text value]: URL "Optional link title"

      • Label lookup:

        [Reference link][Name of URL]
        [Name of URL]: URL "Optional link title"

      • Footnote style:

        [Reference link][1]
        [1]: URL "Optional link title"

    • Help Link: used to provide a link that will help the student with the section of the lab they are working on.

        > help[help text here](https://URL.com)
      
    • Hint Link: used to provide a hint that will help the student with the section of the lab they are working on. This is most effective as a dialog (see Link Behavior Prefixes).

        > hint[hint text here](https://URL.com)
      
    • Knowledge Link: used to provide a link, that will give the student additional knowledge about with the section of the lab they are working on.

        > knowledge[knowledge text here](https://URL.com)
      

    Link Behavior Prefixes

    • Open in a Dialog: used to open a link in a dialog window, that will overlay on the lab. This is useful to show students information, without leaving the lab environment.

      ^[link text](https://URL.com)

    • Open in portal window (or a new window if there is no portal window): used to open a link in a Portal window of the lab, or a new window if there is no portal window in the lab.

      <[link text](https://URL.com)

    • Open in a New Window: used top open a link in a new window.

      [link text](https://URL.com)

    Special formatting

    • Variables: Used to store information that is not known at the time of lab authoring. Variables use Replacement tokens; @lab.textbox(name), @lab.Variable(name) and @MaskedTextBox(name).

      • Use @lab.texbox(name) to define the variable in the (name).

      • Use @lab.Variable(name) to recall the information store in the variable. For example, you could create a variable with @lab.textbox(studentPassword) and ask the student to enter a password in the field. Later in the lab you could call back the student's password with @lab.Variable(studentPassword). This prevents the student from having to remember or write down their password, since it is stored in the lab by a variable.

      • Defining Variable in lab instruction editor view:

      Variables in lab instruction editor

      • Defining the variable in the lab from student view in the lab:

      Variables in a lab

      • The student enters their password in the lab:

      Enter password in Variables

      • The password is recalled in later lab steps using the Replacement Token below

      • Calling Variable in lab instruction editor view:

      Variables syntax to callback the entered password in the instruction editor

      • Calling Variable in lab from Student view in the lab:

      Variables syntax to callback the entered password in the lab

    • Masked Textbox: Alternatively, you could use @MaskedTextBox (name) to store the user's password and define the variable in the (name), and then use @lab.Variable(name) to recall the password later in lab instructions, or in automated activities.

    Knowledge

    Masked Textboxes only obscures the text of the password from view. It does not encrypt the text that is entered into the textbox.

    - Defining the password as a variable in the lab instruction editor view:

    ![Password entered in Variable in lab instruction editor](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/password-in-lab-instruction-editor%281%29.png){height="" width=""}
    
    - Defining the password as a variable in the lab from the student view: 
    

    Empty Masked Textbox

    - The student enters their password into the Masked textbox in the lab instructions:

    ![Masked Textbox](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/masked-textbox%281%29.png){height="" width=""}
    
    - The password is recalled in later lab steps using the Replacement Token below:
    
    ![Masked Textbox callback password in lab](https://cdn.document360.io/a298db04-a0fe-47e0-bfe3-c52d6f9d7c8c/Images/Documentation/masked-textbox-callback-password-in-lab%281%29.png){height="" width=""}
    
    • Knowledge Block: Used to provide additional information, to help students better understand lab steps or lab content. It can also be used to provide alternative instructions or store commands that you want users to enter. Knowledge blocks are limited to only show 4 lines of the lab content. After 4 lines, a more link will be shown, allowing the student to expand the Knowledge Block and review additional information.

      • If you use the Knowledge box for lab steps or a series of commands, please make sure you include a note directing users to execute the steps or commands there. (For example, “At the PowerShell prompt,type the commands listed in the Knowledge box, pressing ENTER after each one.”)

      > [!Knowledge] knowledge text here.

      Knowledge Block

    • Alert Block: Used to draw attention to important issues, such as showing additional information or steps that the student may need complete to avoid other issues. Alerts are useful whenever you want the users to pause and take note of additional and important information. From the user’s perspective, alerts are mandatory because they will appear inline in lab instructions.

      > [!Alert] alert text here.

      Alert Block

    • Hint Block: Used to provide a hint for the for the section of the lab that the student is working on.

      > [!Hint] hint text here.

      Hint Block

    • Help Block: Used to provide help, such as showing additional about the section of the lab that the student is working on.

      > [!Help] help text here.

      Help Block

    • Note Block: used to provide additional information, similar to a Knowledge Block, with the only difference being that Notes do not collapse and show a more link to expand the section.

      > [!Note] note text here.

      Note Block

    • Expandable Alert Block: an expandable block used to draw attention to important issues, such as showing additional information or steps that the student may need complete to avoid other issues. Some of the information shown in this block can be hidden from view until the block is expanded.

      > [+Alert] Your alert text here.

      >

      > More of your alert goes here.

      Expandable Alert

      Expandable Alert expanded

    • Expandable Hint Block: an expandable block used to provide a hint for the for the section of the lab that the student is working on. Some of the information shown in this block can be hidden from view until the block is expanded.

      > [+Hint] hint text here.

      >

      > More of your hint goes here.

      Expandable Hint Block collapsed

      Expandable Hint Block expanded

    • Expandable Help Block: an expandable block used to provide help, such as showing additional about the section of the lab that the student is working on. Some of the information shown in this block can be hidden from view until the block is expanded.

      > [+Help] help text here.

      >

      > More of your help goes here.

      Expandable Help Block collapsed

      Expandable Help Block expanded

    • Expandable Note Block: an expandable block used to provide additional information, similar to a knowledge block. Some of the information shown in this block can be hidden from view until the block is expanded.

      > [+Note] note text here.

      >

      > More of your note goes here.

      Expandable Note Block collapsed

      Expandable Note Block expanded

    • Sections: 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.

      :::sectionName(variableName=variabelValue)

      section text or markdown elements

      :::

      Section displayed in lab instructions

    • Key Combo: used to generate a button that sends a combination of key codes to the active VM. The key codes used are standard JavaScript event key codes. Characters supported for key combo labels include: A-Z, 0-9, underscore, dash and plus. Other special characters will not work.

      Some key codes may not function as expected when using vSphere. It is highly recommended to test each key combo before publishing the lab instructions for production use.

      > @lab.KeyCombo(label)[keyCode1,keyCode2].

      Key Combo

    • Dialog: Used to open a dialog popup, to display additional information. This can be useful to make additional information available to the student. Dialogs should not be used to display websites that are in an iFrame, as this can cause some abnormal page rendering in the dialog.

      ^[Text to display in lab instructions][Reference Link]

      >[Reference Link]:

      >This appears in the Dialog

    • Instruction Dialog: Used to open a dialog popup, to display rendered Markdown or IDLx content that is located anywhere on the internet and accessible from a URL. This can be useful to provide additional information, from external sources on the internet.

      ^instructions[text](url)

    • Reference Instruction Blocks: Used to reference content multiple times throughout the lab instructions. First, Define the content, then reference the content using the syntax below. Defined content can be text, links, copyable text, code blocks or rich media content such as images and videos. Defined content will not appear in lab instructions until it is referenced using the Reference Content syntax.

      Note

      The best practise when creating multiple page instructions is to define the reference content at the beginning of the first page, this way it can be referenced on all pages, this approach can save siginificant time when defining a page header and/or footer.

      • Define content

        >[reference label]: Content goes here

      • Reference Content

        !instructions[][label]

        Reference Instruction Blocks

    • Commands: Used to target the current resource in the Resource Portal to input commands. To mitigate risk of error and to enhance the overall experience of the lab, the IDLx platform supports executing commands directly in the area of focus of the Resource Portal. Selecting the text in the lab instructions will input the command into the item in focus, on the Resource Portal. Commands can be a single line (shown below) or multi-line.

      There are 4 different kinds of commands that you can configure:

      • Type Text. This is not a command per se. Rather, this command type allows the user to input a predetermined string. To use this, simply add +++ on each side of the text that you wish to have typed.

      • PowerShell. This allows the user to execute a PowerShell command in the background. The user does not see the execution of the command. To use this, simply add {PowerShell} to the end of the command.

      • PowerShell with UI. This opens a command prompt window in the VM and shows the command execution. To use this, simply add {PowerShell visible} to the end of the command.

      • Shell. This causes a command to be executed in the background. The user does not see the execution of the command. To use this, simply add {Shell} to the end of the command.

      • Shell with UI. This command opens a command prompt window in the VM and shows the command execution. To use this, simply add {Shell visible} to the end of the command.

    Commands require Integration Services to be installed on the VM. After installing Integration Services, you must save a differencing disk for Integration Services to be installed on all future launches of the lab.

    • Single Line Command:
    @[Text to display](`command`)
    
    • Multi Line Command:
    @[Text to display][multi-line-command]
    
    Multi-line-command-id:
    ```
    Multi-line-command-id
    Command-goes-here
    ```
    

    Below is an example of how a multi line command would look for a PowerShell cmdlet, with no UI. Shell commands can be executed the same way, by replacing PowerShell with Shell.

    @[Click this to run the get-service cmdlet][Get Service]{PowerShell}
    
    [Get Service]:
    ```PowerShell
    get-service | stop-service -whatif
    ```
    
    Knowledge

    PowerShell commands are executed in a CMD prompt, in the lab. The command will still function as intended.

    Commands can perform any action that is possible to do from a command or Windows PowerShell prompt. For example, the command could open File Explorer at a particular location within a directory structure, open dialog boxes, start scripts, open documents and web pages, and many others.

    Knowledge

    When using the command prompt to run commands that are not in the command path, and have spaces in their fully qualified name, they need special attention. For
    example if there is a requirement to run MSEdge (C:\Program Files (x86)\Microsoft\Edge\Applications\msedge.exe), this will not work as expected surrounded by double > quotes. To run this type of command either proceed the command with an & or use the PowerShell Start-Process command, as per these examples:

    • @[Text to display](`& "c:\program files (x86)\microsoft\edge\application\msedge.exe"`){shell}
      Or
    • @[Text to display](`Start-Process "c:\program files (x86)\microsoft\edge\application\msedge.exe"`){PowerShell}

    Although potentially any task could be reduced to an action that can be executed as a command shell or Windows PowerShell command, you should use this feature judiciously. Users should still know how to open File Explorer and perform other basic actions. This feature is most useful for a complex task that involves numerous steps, opening file locations deep down in directory structures, opening specific Web pages, and other similar activities.

    • Include: Used to input text from a GitHub raw link. This is useful to use to pull in content hosted on GitHub. Navigate to the GitHub page containing the content to be used, select the Raw button, then copy the URL of that page and include it in the below syntax.

      • Note: GitHub hosted content can be changed by the repo maintainer of the content and will change the instructions displayed in the lab that is using the Include syntax.

      [!include [label](url)]

    • Copyable Text: Used to make text copy to the local clipboard when the student selects the text. Type two + (plus) symbols on each side of the text that should be made copyable.

      ++copyable text++

      Copyable text in a lab

    • Type Text: Used to input text into the current cursor location inside of a managed virtual machine showing in the Resource Portal. Selecting the text in the lab instructions will automatically type the text into the managed virtual machine. When authoring lab instructions, use three + (plus) symbols on each side of text to convert it into Type Text.

      +++Type Text+++

      Type text in a lab

    • Copyable and Type Text: used to make text copy to the local clipboard and type into a virtual machine when the student selects the text. Type four + (plus) symbols on each side of the text that should be made copyable and type text.

      ++Click to copy to clipboard and type into a VM++

      Copyable and Type Text in a lab

    • Embed YouTube video: Used to embed a YouTube video inline with the lab instructions. URLs from YouTube.com automatically embed. Videos from any other URL will not embed.

      !video[text to display](url)

    • Replacement Token: Used to replace text with a variable that is unknown at the time of authoring the lab. The value of these variables may not be generated or created until the lab is launched by the student. These can include usernames, user first name, user last name, running lab instance ID number, etc.

      Replacement tokens use the syntax @lab.replacementTokenName. You can see the list of all @lab replacement tokens available to your lab by simply editing the instructions, and selecting the @lab button.

      Lab Replacement TokenDescription
      @lab.Activity(Automated1)Inserts activity Automated1 into the instructions.
      @lab.Activity(Question1)Inserts activity Question1 into the instructions.
      @lab.LabInstance.IdThe unique ID of the running lab instance.
      @lab.LabInstance.GlobalIdThe globally unique ID of the running lab instance.
      @lab.LabInstance.StartDateThe UTC start date of the running lab instance. Format: yyyyMMdd
      @lab.LabProfile.IdThe unique ID of the lab profile.
      @lab.User.IdThe unique ID of user running the lab.
      @lab.User.FirstNameThe first name of the user running the lab.
      @lab.User.LastNameThe last name of the user running the lab.
      @lab.User.EmailThe e-mail address of the user running the lab.
      @lab.User.ExternalIdThe external ID of the user running the lab (if launched via API).
      @lab.User.Organization.IdThe ID of the organization the user belongs to.
      @lab.User.Organization.NameThe name of the organization the user belongs to.
      @lab.TagThe tag associated with the lab instance (if specified when launched via API).
      @lab.CtrlAltDeleteSends Ctrl+Alt+Delete to the currently active virtual machine.
      @lab.VirtualMachine(VirtualMachineName).SelectLinkA link to select the VirtualMachineName virtual machine.
      @lab.VirtualMachine(VirtualMachineName).UsernameUsername for signing into the VirtualMachineName virtual machine.
      @lab.VirtualMachine(VirtualMachineName).PasswordPassword for signing into the VirtualMachineName virtual machine.
      @lab.VirtualMachine(VirtualMachineName).ConsoleInline console for the VirtualMachineName virtual machine.
      @lab.OpticalMedia(1).LoadLinkA link to load optical media on the active virtual machine.
      @lab.FloppyMedia(1).LoadLinkA link to load floppy media on the active virtual machine.
      @lab.Container(containerName).InstanceNameThe instance name for container (containerName).
      @lab.Container(containerName).TerminalTerminal for (containerName)
      @lab.Container(containerName).ExpostedPort(portValue).AddressThe address for the exposed port (portValue) on container (containerName).
      @lab.Container(containerName).ExpostedPort(portValue).HostNameThe host name for the exposed port (portValue) on container (containerName).
      @lab.Container(containerName).ExpostedPort(portValue).HostPortThe host port for the exposed port (portValue) on container (containerName).
      @lab.Container(alias).WebDisplayUrlThe web display URL for container (alias).
      @lab.Container(alias).WebDisplayPathThe web display path (folder portion of the URL) for container (alias).
      @lab.CloudSubscription.IdThe unique ID of the subscription the lab is launched against.
      @lab.CloudSubscription.NameThe name of the subscription the lab is launched against.
      @lab.CloudSubscription.TenantNameThe tenant name of the subscription the lab is launched against.
      @lab.CloudResourceGroup(1).NameThe instance name of the ResourceGroup1 resource group.
      @lab.CloudResourceGroup(StackName).NameThe instance name of the (StackName) resource group. This applies to AWS only
      @lab.CloudResourceGroup(StackName).LocationThe cloud platform region/location where (StackName) resources are deployed.
      @lab.CloudResourceTemplate(Template1).NameThe instance name of the VNET resource.
      @lab.CloudResourceTemplate(Template1).DeploymentLinkA deployment link for the VNET resource.
      @lab.CloudResourceTemplate(Template1).DeploymentUrlA deployment URL for the VNET resource (rendered as text, not a link).
      @lab.CloudResourceTemplate(Template1).Parameters[complex-VNETName]The value sent for the complex-VNETName parameter when creating the VNET resource.
      @lab.CloudPortalCredential(User1).UsernameThe username of the User1 cloud portal user account.
      @lab.CloudPortalCredential(User1).PasswordThe password of the User1 cloud portal user account.
      @lab.CloudCredential(PoolName).UsernameThe Username assigned from the PoolName credential pool.
      @lab.CloudCredential(PoolName).PasswordThe Password assigned from the PoolName credential pool.
      @lab.CloudCredential(PoolName).TenantNameThe TenantName assigned from the PoolName credential pool.
      @lab.CloudCredential(PoolName).TenantPrefixThe TenantPrefix assigned from the PoolName credential pool.
      @lab.CloudPortal.LinkA link to the cloud portal.
      @lab.CloudPortal.UrlThe cloud portal URL (rendered as text, not a link).
      @lab.CloudPortal.SignInLinkA cloud portal sign-in link.
      @lab.CloudPortal.SignInUrlThe cloud portal sign-in URL (rendered as text, not a link).
      @lab.CloudPortal.SignOutLinkA cloud portal sign-out link.
      @lab.CloudPortal.SignOutUrlThe cloud portal sign-out URL (rendered as text, not a link).
      @lab.TextBox(name)A text box that allows the user to set the value of a named variable. This variable value can then be displayed elsewhere using @lab.Variable(name).
      @lab.MaskedTextBox(name)A text box with hidden contents used for passwords.
      @lab.DropDownList(name)[val1,val2]A dropdown list that allows the user to set the value of a named variable. This variable value can then be displayed elsewhere using @lab.Variable(name).
      @lab.KeyCombo(label)[key combo]Generates a button that sends a combination of key codes to the active VM.
      @lab.EssayTextBox(name)[height]A larger essay style text box that can hold up to 5000 characters. Height in number of lines declared by [height] is optional. This variable value can then be displayed elsewhere using @lab.Variable(name).

    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.