Knotis
Connected instructional materials from Markdown.
Knotis is a teaching-focused extension to Zensical, distributed as a Python package with a command-line interface.
It helps instructors publish course notes in which readers can follow a lesson sequence, revisit concepts across pages, inspect their relationships and retrieve particular kinds of teaching content.
Instructors maintain Markdown files. Knotis indexes wikilinks such as [[concept]], outlining structure and content tags, then generates the Pane, Site graph, Page graph, Concept graph, Glossary and Search features, with optional Slide mode, alongside the rendered pages.
Documentation | Source code | PyPI | Issues
Documentation and Sample Site
- Knotis documentation: a functioning Knotis site with installation, authoring, feature and publishing guides.
- Regression Modeling in Social Sciences: data analysis teaching materials.
Features
- Outlining: headings and nested lists organize explanations, code, tables, images and media.
- Wikilinks:
[[concept]]markers connect occurrences across pages; aliases change the displayed wording without creating a separate concept. - Panes: inspect occurrences with surrounding teaching material, follow related concepts and return through pane history.
- Graphs: explore site, page and concept views derived from authored structure and navigation.
- Content tags: collect material such as
#code,#outputand#interpretationacross the site. - Glossary: a site-wide list of every concept, generated from the wikilinks.
- Slide mode: present lesson content without maintaining a separate slide deck.
- Search: find concepts and sections, narrow searches with content tags.
- Read aloud: a built-in text-to-speech control for pages.
- Supporting media tools: browser-based read-aloud, image viewing, GIF/MP4 playback controls and caption support.
An optional Knotis VS Code extension supports authoring and previewing.
Requirements
- Python 3.11 or later, with
pipand virtual-environment support. - A terminal and a plain-text editor.
- Git is needed only for source-based installation or Git-based publishing.
Knotis depends on Zensical. Installing Knotis installs its declared dependencies; do not independently upgrade Zensical beyond the version required by your Knotis release.
Installation
Create a working directory and an isolated Python environment. Keep the site in its own subdirectory.
macOS and Linux
python3 -m venv .venv
source .venv/bin/activate
pip install knotis
Windows PowerShell
python3 -m venv .venv
.venv\Scripts\activate
pip install knotis
Upgrade
pip install --upgrade knotis
Review the GitHub Releases page before upgrading.
It lists new features, renamed settings, removed settings, and any steps needed after an update.
Quick Start
With the environment active, create and preview a new site:
mkdir my-course
cd my-course
knotis new .
knotis serve
knotis new . creates a starter configuration, sample pages and supporting files, then performs an initial build. Use an empty site folder; the command refuses to scaffold over an existing zensical.toml.
Open the URL printed in the terminal, normally http://localhost:8000/. The server watches source changes and refreshes the local preview. Stop it with Ctrl+C.
To build without starting a server:
knotis build
Run build and serve commands from the site directory containing zensical.toml. The finished website is written to site/.
Configuration and Site Files
For newly scaffolded sites, the main files and directories are:
| Path | Purpose |
|---|---|
zensical.toml |
Site identity, navigation, theme and Knotis feature settings. |
docs/ |
Authored Markdown pages. |
docs/assets/ |
Author-managed images, media, data and downloads. |
docs/explore/ |
Entry pages for the site graph, glossary and content tags. |
docs/stylesheets/knotis-theme.css |
Site-specific appearance overrides. |
overrides/ |
Theme templates and hooks. |
.knotis/assets/ |
Generated runtime and index staging files. |
site/ |
Generated website, including assets/knotis/. |
License
Knotis is released under the MIT License.
Release files for knotis 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| knotis-0.1.6.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| knotis-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / knotis-0.1.6.tar.gz
| Download URL | knotis-0.1.6.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aee2fa5edc19e7558cf88a0b8f6a93e87a1ed4c3a76db22830159496e84d284f
|
|
BLAKE2b-256 checksum How to use checksums |
662de5d19e618adb05800b92f0d3fe142b50ca8506b0db115ea5719068e33790
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / knotis-0.1.6-py3-none-any.whl
| Download URL | knotis-0.1.6-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e8584df5148d2cb39845c72b0477c093dda3cfb683fef73a74214801ec0449d
|
|
BLAKE2b-256 checksum How to use checksums |
47b7785565fd6feac60159f2a8280117cfb3afa354a9105f983452b5b3928fff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|