Content
In Typemill, all content is stored as flat files. The text content is written in Markdown files (.md
), while all meta data and page settings are stored in separate YAML files (.yaml
). Media files like images, videos, or documents are stored in the /media
folder and simply referenced from within the Markdown or YAML files.
Folder and File Structure
Typemill organizes content in a folder and file structure – very similar to working with files on your local computer. You can create deeply nested folder structures to organize your content.
A special feature of Typemill: Folders can also have their own content, just like pages. This is done with an index.md
for the content and an index.yaml
for the meta data of that folder.
Here is an example of how your /content
folder might look:
/content
index.md // Content of the homepage
index.yaml // Meta data of the homepage
01-my-first-page.md // Content of /my-first-page
01-my-first-page.yaml // Meta data of /my-first-page
/02-subfolder
index.md // Content of /subfolder
index.yaml // Meta data of /subfolder
/content
index.md // markdown content of the homepage
index.yaml // meta data of the homepage
01-my-first-page.md // markdown content of /my-first-page
01-my-first-page.yaml // meta data of /my-first-page
/02-subfolder
index.md // markdown of the /subfolder
index.yaml // meta data of the /subfolder
01-my-subfolder-page.md // markdown of the /subfolder/my-subfolder-page
01-sub-page.md // Content of /subfolder/sub-page
01-sub-page.yaml // Meta data of /subfolder/sub-page
01-my-subfolder-page.yaml // metadata of the /subfolder/my-subfolder-page
03-another-page.md // Content of /another-page
03-another-page.yaml // Meta data of /another-page
Pages and Posts
By default, all pages and folders in Typemill are sorted in a hierarchical order. To control the order, each file or folder is prefixed with a number like 01-
, 02-
, 03-
, and so on. Inside subfolders, the numbering starts again with 01-
.
You can easily change the order of pages and folders by moving them in the interactive navigation within the author interface of Typemill.
In addition to the manual sorting of pages, Typemill also supports "Posts". Posts are sorted automatically by date (newest first) — similar to a blog or news system. The format for posts is always YYYYMMDDHHMM-title.md
(Year, Month, Day, Hour, Minute).
/02-folder-with-posts
202502011834-my-newer-post.md
202502011834-my-newer-post.yaml
202501051523-my-older-post.md
202501051523-my-older-post.md
To turn a folder with pages into a folder with posts, just use the radio selection in the meta-tab of a folder. it will automatically transform the files for you.
When a folder contains posts, a few things work differently:
- The posts are ordered automatically by their date – you cannot change their order with drag & drop.
- In the navigation of the author interface, posts are not listed directly. Instead, there is a separate list of posts shown below the content structure.
- To change the order of posts, simply edit the date of the post in the Meta tab of the post editor.
- Post-folders cannot contain subfolders – it is always a flat list of posts (just like blog posts in WordPress).
Draft and Live
In Typemill, each page can have two different versions:
- A Live version → published and visible on the website.
- A Draft version → unpublished changes you are still working on.
The live version of a page is stored as a plain Markdown file (.md
). You can easily read or edit it with any text editor. The draft version is stored as a .txt
file in a special array-based format. This structure allows faster processing for the block editor, but is not meant to be edited manually.
Example of a page with a live version and a draft version:
/content
01-my-first-page.md
01-my-fist-page.txt
01-my-first-page.yaml
Example of a page that only exists as draft and has not been published yet:
/content
01-my-fist-page.txt
01-my-first-page.yaml
Example of a page that only exists as live page (no draft changes):
/content
01-my-first-page.md
01-my-first-page.yaml
When you publish your draft, the txt-version is transformed into markdown and will overwrite the existing md-version.
Updating Content Manually
Right now, it is technically possible to upload new Markdown files manually (e.g. via FTP), but there is one important limitation: Typemill caches the navigation of your website for better performance. If you add new Markdown files manually, these new pages will not automatically show up in the navigation.
To include manually added files in the navigation, you can refresh the navigation cache in the Kixote interface using the command: refresh navigation
In future Typemill versions, the navigation cache will be updated automatically — for example, every few minutes — so manual updates via FTP will work more smoothly without extra steps.