Skip to content


Version 1.3.5 (5 October 2023)

  • Update dependencies for compatibility with Python 3.12

Version 1.3.4 (19 September 2023)

Notable changes:

  • Direct support dor all analytics services is now deprecated
  • Added generic property analytics-code for any analytics service

Version 1.3.3 (28 February 2023)

Notable changes:

  • Added direct support for Umami Analytics used at KPI
  • Support for GoatCounter is now deprecated

Other changes:

  • Updated some dependencies

Version 1.3.2 (18 November 2022)

  • Update dependencies to latest versions.

Version 1.3.1 (22 March 2022)

  • Fixed rendering of inline math fragments written as $ ... $.

Version 1.3.0 (10 March 2022)

This is a mostly a cleanup release, so the main changes are the following:

  • Removed legacy XML files from the example course.
  • Improved documentation.
  • Completely rewritten presentation slides processor using Mistletoe Markdown parser.
  • Added support for result and solution elements in the XML to Markdown translator.


  • Allow bold inline code (code) (#40).
  • Fixed incorrect slashes in URLs on Windows.

Version 1.2.5 (23 December 2021)

  • Updated Mistletoe Markdown parser (fixes #39)

Version 1.2.4 (21 October 2021)

  • Updated Shower presentation engine. New version provides better support for touch devices.
  • Improved LaTeX output. For better support of different languages, generated document expect usage of XeLaTeX.

Version 1.2.3 (6 May 2021)

Fix copying images and escaping of code fragments in LaTeX export.

Version 1.2.2 (6 May 2021)

  • Fix LaTeX export.
  • Update dependencies.

Version 1.2.1 (18 February 2021)

Improve font loading in the Bootstrap theme.

Version 1.2.0 (12 February 2021)

User-visible changes:

  • Directories with name lecturer are now copied only into lecturer version.
  • Added support for our self-hosted GoatCounter.

Version 1.1.1 (16 December 2020)

Update JavaScript libraries:

  • MathJax to version 3.1 — faster rendering of equations and support for additional TeX macros
  • Highlight.js to version 10.4

Version 1.1 (23 November 2020)

User-visible changes:

Internal changes: - Create student version of the content by removing all elements with class=”lecturer”. This means that the content would not be rendered twice. - Generate LaTeX from HTML instead of Markdown. This makes it independend from Markdown engine.

Version 1.0.3 (23 October 2020)

Fixed a bug causing copying of files to fail in some cases.

Version 1.0.2 (6 October 2020)

Fixed processing of markup in headings and step titles, for example:

## My *nice heading* with `some code`

Version 1.0.1 (1 October 2020)

Fixed counting of additional tasks (and also rewritten counters implementation).

Version 1.0.0 (14 September 2020)

This release incorporates a lot of work made by Sebastián Trebuňák as a part of his master thesis and some other changes.

Backward incompatible changes:

  • We use different package index, so update it in your requirements.txt or Pipfile to
  • Command auto was deprecated and replaced by serve. This command does not open browser window by default, so if you want the same behaviour as with auto, use it4kt-builder serve --open-browser. This command also accepts --bind and --port options instead of configuration in it4kt.yml.

We recommend to copy files requirements.txt, build.bat and from the latest version of example course.

Main changes:

  • Support for translation of the course into multiple languages.
  • LaTeX as an alternative output format (useful for producing PDF or printed version of the course).
  • All files without .html or .md suffix are now automatically copied to output. Content of subdirectories is copied without even checking file extensions. This means that files no longer need to be placed in resources, files, or images.
  • Folder without title can be defined. Contents of the folder would be converted to HTML, but it would not appear in the menu.
  • New types of blocks that can be used in pages: Example, Wrong Example, Solution, and Result. Solution and Result should be used immediately after the Task. They can also be used with a asterisk * after block name to make it collapsed by default.
  • New type of section for scenarios: Summary.
  • Special support for easier embedding of video and audio using Markdown image syntax, eg. ![Video caption](youtube:Q_gjCpTUp1o)
  • Course overview pages with the summary of course and its goals.
  • New Markdown parser — Mistletoe, that should be compatible with the CommonMark specification.
  • Validation system for checking correctness of page structure.

Internal changes:

  • New extension API for defining custom Markdown extensions.
  • Caching of HTML produced from Markdown or XML for much faster rebuilds.
  • More consistent logging.

Version 0.6.3 (27 March 2020)

Update lxml version to the one that includes binary wheels for Python 3.8.

Version 0.6.2 (16 April 2019)

Small fixes in the Light theme.

Version 0.6.1 (18 March 2019)

Fixed build specification for Gitlab CI.

Version 0.6.0 (18 March 2019)

User-visible changes:

  • Substantially improved Bootstrap theme (changed colors, improved behaviour of menu bar).
  • Improved Light theme (improved menu and header, added footer)
  • Builder would not run if there is not it4kt.yml file in the working directory.

Internal changes:

  • Automatically generated CSS and JS files are no longer committed into repository. They are built during the build process.
  • Some modules were renamed to better reveal their meaning: structure → configuration, main → build

Version 0.5.4 (7 March 2019)

Fixed bug in the Bootstrap theme: menu did not have correct height in Chrome (#22).

Version 0.5.3 (27 February 2019)

Bug fixes:

  • Support multiple paragraphs in tasks and other blocks.
  • Support * as initial character for objectives (#21).
  • Prevent bootstrap theme footer covering page content (#18).

Version 0.5.2 (21 February 2019)

User-visible changes:

  • Updated URL of deployment service to use HTTPS protocol.
  • Cleaned up example course. It now includes both Markdown and XML documents, so the second example (example-course-markdown) was removed.
  • Bootstrap theme uses current year in copyright notice in the footer.
  • Improved translation and styling of figures in both themes.
  • Improved support for tables in the Light theme.
  • Added .gitattributes file into the example course, so GitLab would properly count XML and Markdown in language usage diagram.

Internal changes:

  • Special testing-course for unit tests was added to clean up example-course.
  • Replaced urllib3 with requests for calling deployment service.

Version 0.5.1 (17 February 2019)

Updated URL of deployment service.

Version 0.5.0 (12 February 2019)

User-visible changes:

  • New command convert for converting documents from XML to Markdown format. Conversion supports both official and experimental XML formats.
  • Bootstrap theme: add margins around sections and steps.
  • Less strict parsing of References section in Markdown.

Internal changes:

  • Python-Markdown updated to version 3.0

Version 0.4.0 (26 November 2018)

User-visible changes:

  • Both themes were improved to become less cluttered. Notes and warnings for students are now less prominent, so tasks and notes for lecturers are more visible.
  • A new way to interconnect steps with objectives was introduced. A badge is displayed after each objective and step title with a popup containing links. In the Bootstrap theme this replaces old colorful circles marking steps.
  • Light theme become responsive.
  • In the auto mode, IT4KT Builder new watches the it4kt.yml and files. If they are changed, the Builder reloads itself to reflect the changes (for example the number of visible weeks).
  • It is now possible to specify extra language for syntax highlighting in the configuration, see reference for an example.
  • Output directory is now removed before each build to clean up obsolete files.

Internal changes:

  • In the auto mode, IT4KT Builder also watches theme directories, making life easier for theme authors.
  • CSS classes in the generated HTML were changed. Generic class block was replaced with separate classes task, lecturer and admonition. admonition includes variants for notes (admonition--note) and warnings (admonition--warning).

Version 0.3.4 (2 October 2018)

  • Fixed default GitLab CI configuration. Previous version did not always installed latest version of the builder.
  • Always use UTF-8 for reading configuration file it4kt.yml.

Version 0.3.3 (23 September 2018)

  • Fixed inappropriate modification of links URL.
  • Small improvements of the Bootstrap theme.

Version 0.3.2 (23 September 2018)

  • Fixed auto-rebuild functionality.

Version 0.3.1 (21 September 2018)

User-visible changes:

  • Bootstrap theme: Don’t show link to the course homepage twice in the menu.
  • All themes: Mark external links with an icon and open them in a new tab.

Internal changes:

  • MenuItem class now has a set of is_* methods for testing type of the item and display them differently in themes. The hidden property was also replaced with is_hidden() method.

Version 0.3 (18 September 2018)

Backward incompatible changes:

  • All content of the course must be stored inside of the content directory. This includes all pages, folders with pages and resources. This separates them from configuration files stored in the root of the course.
  • Configuration is done in YAML file it4kt.yml instead of the Customization using Python code is still supported using file that would be loaded after reading configuration file.
  • Python 3.5 is no longer supported. Minimal required version of Python is now 3.6.

User-visible changes:

  • Support for specifying week number for pages. These numbers are displayed in menus and used to sort pages in folders. It is also possible to hide future weeks from students by specifying option published-weeks in the configuration file.
  • Absolute URL in links (starting with /) are converted to relative ones, so they would work after course is deployed.
  • Support for Google Analytics tracking (enabled be setting option google-analytics with tracking ID as a value).
  • Command it4kt-builder build now runs in production mode by default, while it4kt-builder auto runs in development mode.
  • Custom Docker image with latest it4kt-builder installed.
  • Ability to configure development server host and port.
  • Various fixes in the generated HTML and themes.

Internal changes:

  • Complete HtmlElement tree is stored for pages to simplify preprocessing and analysis of content HTML.
  • New module structure is responsible for setting up processors based in the YAML configuration.

Version 0.2.1 (28 July 2018)

Quick fix for package build definition.

Version 0.2 (28 July 2018)

  • Experimental Markdown support contributed by Sebastián Trebuňák.
  • Updated structure of generated HTML.

Version 0.1 (30 January 30 2018)

  • Add support for using selected HTML elements without prefixes. Supported elements include p, ul, ol, li, strong, em and a.
  • New theme included: Bootstrap. Contributed by Sebastián Trebuňák.
  • The most important architecture decisions where documented using Lightweight Architecture Decision Records.

Version 0.0.2 (7 December 2017)

First official preview release.

Basic functionality and architecture including:

  • storing contents of the course in the in-memory model,
  • organizing pages into folders,
  • XSLT-less themes,
  • configurable folder processors, readers and writers,
  • utilizing GitLab-CI for building and deploying of course,
  • autobuild and autoreload.