Changelog
Version 1.3.13 (10 February 2025)
- Shower Slides: fix paddings for highlighted code blocks in Material theme
Version 1.3.12 (21 November 2024)
- Update dependencies
- Add support for Python 3.13
- Python 3.7 is no longer supported
Version 1.3.11 (14 October 2024)
- Fix paddings for highlighted code blocks
Version 1.3.10 (27 September 2024)
- Fix loading MathJax once again
- Stop using deprecated API of highlight.js
Version 1.3.9 (26 September 2024)
- Fix loading MathJax
Version 1.3.8 (26 September 2024)
- Fix header script error from previous release
Version 1.3.7 (26 September 2024)
- Remove polyfill.io CDN and update MathJaX inclusion tag
Version 1.3.6 (2 May 2024)
- Replace CDN used for external scripts
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.
Fixes:
- 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:
- Experimental support for presentation slides written in Markdown.
- Up to 30% faster full builds of large courses.
- Ended support for Python 3.6. Minimal required version of Python is now 3.7.
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
orPipfile
tohttps://repo.kpi.fei.tuke.sk/repository/pypi/simple
- Command
auto
was deprecated and replaced byserve
. This command does not open browser window by default, so if you want the same behaviour as withauto
, useit4kt-builder serve --open-browser
. This command also accepts--bind
and--port
options instead of configuration init4kt.yml
.
We recommend to copy files requirements.txt
, build.bat
and build.sh
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 inresources
,files
, orimages
. - 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.

- 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
andinit.py
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 classestask
,lecturer
andadmonition
.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 ofis_*
methods for testing type of the item and display them differently in themes. Thehidden
property was also replaced withis_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 theconfig.py
. Customization using Python code is still supported usinginit.py
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, whileit4kt-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
anda
. - 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.