Introducing YAML format
EduTools 2.7 provides a completely reworked solution for storing course configuration files.
Previously, all course metadata was stored in XML format. Now you can see all the information about your course conveniently stored in YAML format. We worked hard to make this possible and we hope that you will enjoy using this feature.
YAML has a number of advantages such as:
Simple and understandable structure of configuration files. Configuring course properties becomes effortless.
Easy to store in a VCS, with a clearer diff.
Edit configuration files with ease: invalid values are highlighted and available value options are suggested via completion.
No extra delimiter. This makes the document more lightweight and much more readable.
course-info.yaml is a configuration file that contains basic information about a course.
It has the following structure:
|title||Title of the course||string||Java Basics, Kotlin for beginners|
|language||The language used for course materials||Any supported language||English, German, French, Spanish, Russian, and so on.|
|summary||A summary describing what the course is about||string||Let’s learn some basics of Java programming language|
|programming_language_version||A version of the programming language (optional)||The version of the programming language||3.8 (for Python)|
|environment||Additional information about the course environment||string||sbt (for Scala courses)|
|content||Directory names of lessons or sections included in the course||List of directory names|
|solutions_hidden||Hide "Peek Solution..."||boolean|
section-info.yaml is a course configuration file that specifies the structure of sections:
|content||Directory names of the lessons included in the section||List of directory names|
lesson-info.yaml is a course configuration file that manages the parameters of lessons:
|type||Lesson type||“lesson” (optional), “framework”|
|content||Directory names of tasks included in the section||List of directory names|
The type parameter has two possible values: lesson and framework. These values determine the type of lesson.
Change the value to ‘lesson’ or ‘framework’ if you want to convert your framework lesson to a simple one or vice versa.
task-info.yaml is a configuration file that describes the properties of a task:
|type||Task type||“edu”, “theory”, “output”, “ide”, “code”, “choice”|
|custom_name (optional)||Custom name for the task if it differs from its directory name. Useful when you need to use a symbol that is not allowed in directory names, for example, “:”.||string||Hello, World!|
|files||Files included in the task||List of file paths relative to task directory. Also contains the file’s name, visible fields, and placeholders’ parameters.|
|visible||Indicates whether the file is shown to the learner||boolean|
|feedback_link (optional)||Custom link for learners to leave their feedback about the task||string||Google Forms link: https://forms.gle/FNKFJTup5ACGfmMi5|
|placeholders||Answer placeholders. See this table to learn about the parameters.||array|
|solution_hidden||Hide Peek solution... for the particular task||boolean|
The type may have one of six possible values: edu, theory, output, ide, code, or choice. These values determine the type of task.
edu - a task that has local tests.
theory - a task that doesn't require tests but might contain a code sample.
output - a task that is validated by the provided output of the program.
ide - a task that helps to learn IDE functionality.
code - tasks that work with a remote checker (specific to Stepik only).
choice - quiz tasks, tasks with multiple answer choices (for their parameters see this table).
The specific parameters of multiple-choice tasks are described in the table below:
|is_multiple_choice||Indicates whether the multiple-choice task allows multiple correct answers||boolean|
|message_correct (optional)||Custom message to be shown to a learner if they choose the correct solution||string||“Great job!” or “Fantastic!”|
|message_incorrect (optional)||Custom message to be shown to a learner if they choose an incorrect solution||string||“Review how to define a function to solve this task”|
|options||The list of options. See this table to learn about the parameters.||string|
Options have the following parameters:
|text||The text of the option||string|
|is_correct||If the option is a part of the correct answer||boolean|
The specific parameters of placeholders are described in the table below:
|offset||Placeholder start offset||number||162|
|placeholder_text||Text to be shown to the learner as a placeholder||string||type_here|
|dependency (optional)||Dependency on another placeholder. See this table to learn about the parameters.||string|
Dependencies have the following parameters:
|section||Section directory name if the placeholder dependency is inside a section||string||Introduction to Java|
|lesson||Lesson directory name||string||Getting started|
|task||Task directory name||string||Hello World|
|file||File path relative to the directory of the task||string||src/Task.java|
|placeholder||Placeholder index starting from 0||number||1|
|is_visible||Indicates whether the placeholder is shown in place of a dependency||boolean|