With the HTML plugin, you can integrate HTML tags into your Markdown content using simple shortcodes. The plugin supports various HTML tags, including div, span, address, mark, kbd, sub, sup, details, summary, time, small, progress, and button. Additionally, you have the flexibility to add classes and IDs to each tag and create slideshows, tabs, or accordion elements. To utilize this plugin, ensure you have a MAKER-license.
{.center loading="lazy" width="800" height="477"}
Traditionally, HTML tags are permitted in Markdown per its specification. However, for security reasons, they are disabled in Typemill. Responding to user feedback, this plugin offers a secure way to incorporate HTML tags into Typemill without relying on complex libraries for HTML sanitization.
HTML tags can be used both in the raw Markdown editor and the visual editor. When using the visual editor, HTML tags will appear in a paragraph element, enabling you to write HTML as you would write standard text.
In the visual editor, HTML tags are displayed in light gray, allowing you to distinguish your HTML code easily. You can even reposition HTML elements using drag-and-drop.
All HTML tags accept the attributes id and class. You have two options to style your elements with classes:
- Many themes such as the cyanine-theme utilize the css-library tachyons. Tachyons is a utility css library just like the popular Tailwind css library. You can simply add the tachyons-classes to style your HTML-elements. For example, to add a dark background with white text, you can use the class
bg-dark-gray white. - You can also use your own classes, and then write the css-rules into the themes configuration. Just open the theme configuration and scroll to the bottom of the configuration section. All themes have a dark textarea that accepts css-rules.
The div and span elements are probably the most useful tags. It is recommended to use div tags as block elements on separate lines.
[:div class="myclass test" id="myid":]
This is text inside the div with an [:span class="myclass":]inline span element[:/span:] inside the div.
[:/div:]
You can also nest div and span tags within the same line:
[:div class="myclass":][:span:]This is a span nested in a div in one line.[:/span:][:/div:]
[:div class="myclass test" id="myid":]
This is text inside the div with an [:span class="myclass":]inline span element[:/span:] inside the div.
[:/div:]
[:div class="myclass":][:span:]This is a span nested in a div in one line.[:/span:][:/div:]
The address tag should be used as a block element.
[:address:]
Typemill Inc.
Millerstreet 12
11223 Bread-City
[:/address:]
[:address:]
Typemill Inc.
Millerstreet 12
11223 Bread-City
[:/address:]
Inline usage is suitable for mark, kbd, sub, and sup tags:
A [:mark:]mark-tag[:/mark:] for marks, and the [:kbd:]kbd[:/kbd:] tag for keyboard buttons. The [:sup:]sup[:/sup:] and [:sub:]sub[:/sub:] tags are very useful too!
A [:mark:]mark-tag[:/mark:] for marks, and the [:kbd:]kbd[:/kbd:] tag for keyboard buttons. The [:sup:]sup[:/sup:] and [:sub:]sub[:/sub:] tags are very useful too!
Create a native accordion or disclosure widget without any JavaScript. Use the open attribute to start a section expanded.
[:details:]
[:summary:]First section[:/summary:]
Hidden content of the first section.
[:/details:]
[:details open=open:]
[:summary:]Second section[:/summary:]
This section is visible by default.
[:/details:]
[:details:] [:summary:]First section[:/summary:]
Hidden content of the first section.
[:/details:]
[:details open=open:] [:summary:]Second section[:/summary:]
This section is visible by default.
[:/details:]
The HTML plugin also adds CSS and JavaScript to the frontend, enabling you to create an accordion-style interface with div elements. This is an alternative to the native <details> element above.
[:div id="accordion" :]
### How To Use
[:div class="accontent" :]
You can use the HTML plugin to create elements like accordions, tabs, and slideshows with pure markdown and a little bit of HTML.
[:/div:]
### Code Examples
[:div class="accontent" :]
This is a second accordion panel.
[:/div:]
[:/div:]
[:div id="accordion" :]
[:div class="accontent" :]
You can use the HTML plugin to create elements like accordions, tabs, and slideshows with pure markdown and a little bit of HTML.
[:/div:]
[:div class="accontent" :]
This is a second accordion panel.
[:/div:]
[:/div:]
You can use the HTML plugin to create a tab element. Tabs are useful for various types of content. In documentation, they are often used to switch between coding examples for different languages.
[:div id="tabs":]
* [Tab 1](#tab1)
* [Tab 2](#tab2)
* [Tab 3](#tab3)
[:div id="tab1" class="tab-content":]
Content of tab 1.
[:/div:]
[:div id="tab2" class="tab-content":]
Content of tab 2.
[:/div:]
[:div id="tab3" class="tab-content":]
Content of tab 3.
[:/div:]
[:/div:]
[:div id="tabs":]
[:div id="tab1" class="tab-content":]
Content of tab 1.
[:/div:]
[:div id="tab2" class="tab-content":]
Content of tab 2.
[:/div:]
[:div id="tab3" class="tab-content":]
Content of tab 3.
[:/div:]
[:/div:]
You can use the HTML plugin to create a slideshow element. Slideshows can contain images or any other content elements.
[:div id="slideshow":]
[:div class="slide active":]
{.center loading="lazy" width="820" height="547"}
*Photo by [Jongsun Lee](https://unsplash.com/@sarahleejs) Unsplash*
[:/div:]
[:div class="slide":]
{.center loading="lazy" width="821" height="547"}
*Photo by [Mathew Schwartz](https://unsplash.com/@cadop) on Unsplash*
[:/div:]
[:div class="slide":]
{.center loading="lazy" width="821" height="547"}
*Photo by [Hendrik Kuterman](https://unsplash.com/@hendrik_martin) on Unsplash*
[:/div:]
[:div class="slide-nav":]
* [‹ previous](#prev-slide)
* [next ›](#next-slide)
[:/div:]
[:/div:]
[:div id="slideshow":]
[:div class="slide active":]
{.center loading="lazy" width="820" height="547"}
Photo by Jongsun Lee Unsplash
[:/div:]
[:div class="slide":]
{.center loading="lazy" width="821" height="547"}
Photo by Mathew Schwartz on Unsplash
[:/div:]
[:div class="slide":]
{.center loading="lazy" width="821" height="547"}
Photo by Hendrik Kuterman on Unsplash
[:/div:]
[:div class="slide-nav":]
[:/div:]
[:/div:]
Mark up dates, times, or durations with the datetime attribute.
The meeting starts at [:time datetime="2026-08-07T10:00:00Z" :]10:00[:/time:].
The meeting starts at [:time datetime="2026-08-07T10:00:00Z" :]10:00[:/time:].
Use small print for legal notes, side comments, or copyright text.
[:small:]Some fine print.[:/small:]
[:small:]Some fine print.[:/small:]
Show progress with numeric value and max attributes. Only numeric values are allowed. <progress> is not a void element in HTML, so it needs an opening and a closing shortcode.
[:progress value="70" max="100":]
[:/progress:]
[:progress value="70" max="100":] [:/progress:]
Add a simple button. For safety, only type="button" is allowed; other button types are ignored.
[:button type="button":]Click me[:/button:]
[:button type="button" disabled="disabled":]Disabled[:/button:]
[:button type="button":]Click me[:/button:]
[:button type="button" disabled="disabled":]Disabled[:/button:]