This page documents every widget available in md2html2.py. For each widget that has a v03 implementation, the v03 source and its rendered output appear first, followed by the legacy equivalent and its rendered output. Widgets that exist only in legacy syntax appear at the end.

hero

The page hero block. Renders a full-width hero section at the top of the page. Place immediately after the H1.

v03 source


| param | value |
| --- | --- |
| kicker | Technology |
| body | Engineered for sites where conventional turbines cannot operate. |
| alt | WindWhisperer 100 Max installed on a commercial rooftop |
| btn | Request a site assessment ; contact.html |
< hero !>

v03 rendered

Technology

...

Engineered for sites where conventional turbines cannot operate.

Request a site assessment
WindWhisperer 100 Max installed on a commercial rooftop

Layout values: 2col (default) · splash (full-width, no image) · article (narrow reading column, no image).

btn separator is ; (semicolon) — not a pipe.

Legacy source

**Page hero:**

| key     | value |
| ------- | ----- |
| kicker  | Technology |
| body    | Engineered for sites where conventional turbines cannot operate. |
| alt     | WindWhisperer 100 Max installed on a commercial rooftop |
| layout  | 2col |
| btn     | Request a site assessment ; contact.html |

Legacy rendered

Identical HTML output to v03.

cta

Call-to-action block. Renders outside section flow as a standalone < section class="cta" >. Place at the end of the last content section before a closing ---.

v03 source


| param   | value |
| ------- | ----- |
| label   | Next step |
| heading | Start with an energy audit |
| body    | A 90-minute on-site assessment gives you a complete picture before any commitment. |
| button  | Book an energy audit |
| url     | contact.html |
| btn2    | Download the guide ; guide.pdf |
< cta !>

v03 rendered

Next step

Start with an energy audit

A 90-minute on-site assessment gives you a complete picture before any commitment.

Book an energy audit Download the guide

btn2 separator is ; (semicolon) — not a pipe.

Legacy source

**Page CTA:**

| key     | value |
| ------- | ----- |
| label   | Next step |
| heading | Start with an energy audit |
| body    | A 90-minute on-site assessment gives you a complete picture before any commitment. |
| button  | Book an energy audit |
| url     | contact.html |
| btn2    | Download the guide ; guide.pdf |

Legacy rendered

Identical HTML output to v03.

section

Explicit section block. Opens a < section > with an inner < div class="_section-inner" >. Use when you need a section with a specific CSS class, or to wrap mixed content in a single section boundary.

v03 source


## Why it works differently

Paragraph content here.
< section !>

v03 rendered

Why it works differently

Paragraph content here.

Legacy source

{section: highlight-section}

## Why it works differently

Paragraph content here.

---

Legacy rendered

Why it works differently

Paragraph content here.

Note: v03 < section > uses _section-inner as the inner div class; legacy {section:} uses container. Both are correct — do not mix within a single page.

columns

Two-column layout wrapper. Wraps content in a CSS grid div.

v03 source


  
### Column one heading
First column content.
  < card !>

### Column two heading

Second column content.
< card !>
< columns !>

v03 rendered

Column one heading

First column content.

Column two heading

Second column content.

count values: 2 · 3 (default) · 4. Optional class param appends an extra class to the grid wrapper.

Legacy source

{col}

### Column one heading

First column content.

{col}

### Column two heading

Second column content.

Legacy rendered

Column one heading

First column content.

Column two heading

Second column content.

Note: legacy {col} always produces exactly two columns and uses layout-2col; v03 supports 2, 3, and 4 columns and uses grid-N.

panel

Named div wrapper. Use for assessment panels, info boxes, or any content requiring a specific CSS class wrapper.

v03 source


### Key findings

Content inside the panel.
< panel !>

v03 rendered

Key findings

Content inside the panel.

Legacy source

{panel: assessment-panel}

### Key findings

Content inside the panel.

{/panel}

Legacy rendered

Identical HTML output to v03.

card

v03 source


### Self-limiting by design

No cut-out wind speed. The rotor geometry limits RPM mechanically — no electronic override required.
< card !>

v03 rendered

Self-limiting by design

No cut-out wind speed. The rotor geometry limits RPM mechanically — no electronic override required.

Optional class param appends an extra class: < ! card; class:"featured" >< div class="card featured" >.

Legacy equivalent: none. is v03 only.

card-raw

Bare div wrapper with no default class. Use when you need a wrapper div with a fully custom class and no card base class applied.

v03 source


A note about installation timelines.
< card-raw !>

v03 rendered

A note about installation timelines.

Legacy equivalent: none. is v03 only.

cards

Card grid from a GFM table. Auto-detects column count from row count (1 → grid-1, 2 → grid-2, 3 → grid-3, 4 → grid-2, 5+ → grid-3) unless cols is specified explicitly.

v03 source

< ! cards; cols:3 >
| Label | H3 | Body | Items |
| --- | --- | --- | --- |
| Wind | Self-limiting design | No cut-out speed required. | IEC II certified; 20-year design life |
| Storage | 430 kWh included | LFP battery chemistry as standard. | Day-ahead price optimisation; Grid export ready |
| Monitoring | AI energy management | Continuous optimisation across all assets. | Web dashboard; Mobile alerts |
< cards !>

v03 rendered

Wind

Self-limiting design

No cut-out speed required.

  • IEC II certified
  • 20-year design life
Storage

430 kWh included

LFP battery chemistry as standard.

  • Day-ahead price optimisation
  • Grid export ready
Monitoring

AI energy management

Continuous optimisation across all assets.

  • Web dashboard
  • Mobile alerts

Columns: Label (optional small label above H3) · H3 (card heading) · Body (paragraph) · Items (semicolon-separated list, optional).

Legacy source — 3-column grid

**Cards: System components**

| Label | H3 | Body | Items |
| --- | --- | --- | --- |
| Wind | Self-limiting design | No cut-out speed required. | IEC II certified; 20-year design life |
| Storage | 430 kWh included | LFP battery chemistry as standard. | Day-ahead price optimisation; Grid export ready |
| Monitoring | AI energy management | Continuous optimisation across all assets. | Web dashboard; Mobile alerts |

Legacy rendered (3-column)

Identical HTML output to v03 with cols:3.

Legacy source — 2-column grid

**Cards2: Two column example**

| Label | H3 | Body | Items |
| --- | --- | --- | --- |
| First | Card heading one | Body text for first card. | Item A; Item B |
| Second | Card heading two | Body text for second card. | Item C; Item D |

Legacy rendered (2-column)

First

Card heading one

Body text for first card.

  • Item A
  • Item B
Second

Card heading two

Body text for second card.

  • Item C
  • Item D

Note: Cards2: is the legacy 2-column shorthand. In v03, use .

stat

Dark stat card grid. Auto-detects column count from card count identically to . Supports two authoring patterns inside the tag: a GFM table or heading/paragraph pairs.

v03 source — table pattern

< ! stat >
| Value | Caption |
| --- | --- |
| 230 MWh | Annual output, 100 kW Max |
| 430 kWh | Battery storage included |
| 35 dB | Noise level at 3 m |
< stat !>

v03 rendered

230 MWh

Annual output, 100 kW Max

430 kWh

Battery storage included

35 dB

Noise level at 3 m

v03 source — heading/paragraph pattern


### 230 MWh
Annual output, 100 kW Max

### 430 kWh
Battery storage included
< stat !>

v03 rendered (heading/paragraph)

230 MWh

Annual output, 100 kW Max

430 kWh

Battery storage included

cols param: override auto-detection — .

Legacy source

**Stats: Key figures**

| Value | Caption |
| --- | --- |
| 230 MWh | Annual output, 100 kW Max |
| 430 kWh | Battery storage included |
| 35 dB | Noise level at 3 m |

Legacy rendered

Identical HTML output to v03 table pattern.

stats-image

Dark stat cards with a paired image — stats in one column, image spanning the full height in the other.

v03 source


| Value | Caption |
| --- | --- |
| 16 weeks | Typical installation timeline |
| 20 years | Design life |
| 2 | Certified installers in the UK |
< stats-image !>

v03 rendered

16 weeks

Typical installation timeline

farm installation
20 years

Design life

2

Certified installers in the UK

Parameters: src (image stem, required) · alt (optional, derived from src if absent) · side (right default · left).

When side:left, the image appears first in DOM order and sits in column 1.

Legacy source

**StatsImage: farm-installation**

| Value | Caption |
| --- | --- |
| 16 weeks | Typical installation timeline |
| 20 years | Design life |
| 2 | Certified installers in the UK |

Legacy rendered

Identical HTML output to v03. Left image variant: StatsImage: farm-installation | left.

table

General-purpose data table. Renders a

. First row is always the header row. Supports and prefixes on cells → td-yes / td-no CSS classes.

v03 source


| Phase | Weeks | Activity |
| --- | --- | --- |
| Planning | 0--2 | Planning application, grid company application |
| Civil works | 2--6 | Approvals, electrician booked, civil works |
| Installation | 6--10 | Mounting, commissioning |
| Grid connection | 10--16 | Grid owner inspection, full production |
< table !>

v03 rendered

PhaseWeeksActivity
Planning0--2Planning application, grid company application
Civil works2--6Approvals, electrician booked, civil works
Installation6--10Mounting, commissioning
Grid connection10--16Grid owner inspection, full production

Optional class param appends an extra class to the wrapper div.

Legacy source

**Table: Installation timeline | 20,15,65 | headers | data-table**

| Phase | Weeks | Activity |
| --- | --- | --- |
| Planning | 0--2 | Planning application, grid company application |
| Civil works | 2--6 | Approvals, electrician booked, civil works |
| Installation | 6--10 | Mounting, commissioning |
| Grid connection | 10--16 | Grid owner inspection, full production |

Legacy rendered

Installation timeline

    ...
  
PhaseWeeksActivity
Planning0--2Planning application, grid company application

Note: the legacy Table: renderer supports col_widths (comma-separated percentages), headers (show first row as ), and a custom table-class. The v03 does not support column widths; use the legacy form when precise column proportions are required.

Legacy extended syntax: Table: Label | col_widths | headers | table-class — all segments after the label are optional and pipe-separated.

image

Inline image. Self-closing tag.

v03 source

v03 rendered

WindWhisperer 50 Max on a farm building rooftop

Parameters: src (image stem or filename with extension) · alt · class · caption (optional — renders

below the image) · hidden:true (suppresses output, leaves HTML comment).

If src includes a file extension (.jpg, .png, etc.), the path is used verbatim. Without an extension, the parser probes for real image files and falls back to a _tmp.jpg placeholder.

Legacy source

{image: WindWhisperer 50 Max on a farm building rooftop | farm-rooftop | img-wide}

Legacy rendered

WindWhisperer 50 Max on a farm building rooftop

Legacy syntax variants:

{image: Alt text | stem | css-class}
{image: Alt text | stem.jpg | css-class}
{image: Alt text | css-class}
{image: Alt text | hidden}

The special class power-curve-chart wraps the image in a

with a caption.

figure

Image with semantic

and optional
. Self-closing tag. V03 only — no legacy equivalent.

v03 source

v03 rendered

Diagram showing wind director panel geometry
Wind directors extend 2--5 m radially from the stator

Optional class param adds an extra class alongside figure:

.

Legacy equivalent: none. Use for all new pages requiring a captioned image.

toc

Table of contents. Self-closing tag. Collects headings at the specified level and renders a

label

Sets a pending label string that is emitted as

immediately before the next heading. Block tag. V03 only — the legacy equivalent is inline ^Label^ heading syntax.

v03 source


About the technology
< label !>

## How it works

v03 rendered

About the technology

How it works

Legacy equivalent

## ^About the technology^ How it works

Legacy rendered

About the technology

How it works

Note: the v03 emits

; the legacy ^Label^ syntax emits . Both are correct for their respective contexts.

body

Sets the body_class on the page content wrapper. Self-closing tag. V03 only — no legacy equivalent.

v03 source

v03 rendered

No HTML output. Sets the CSS class applied to the body content wrapper at page level.

Legacy equivalent: none. Use front matter body_class key for the legacy equivalent.

spec

Key/value specification card. Renders a

with labelled rows.

v03 source


| Key | Value |
| --- | --- |
| Rated power | 100 kW |
| Rotor height | 4.4 m |
| Cut-in speed | 2.2 m/s |
| Noise | 35 dB @ 3 m |
| Lifetime | 20 years |
< spec !>

v03 rendered

Technical specification
Rated power100 kW
Rotor height4.4 m
Cut-in speed2.2 m/s
Noise35 dB @ 3 m
Lifetime20 years

Parameters: label (optional label above card).

Legacy source

**Spec: Technical specification**

| Key | Value |
| --- | --- |
| Rated power | 100 kW |
| Rotor height | 4.4 m |
| Cut-in speed | 2.2 m/s |
| Noise | 35 dB @ 3 m |
| Lifetime | 20 years |

Legacy rendered

Identical HTML output to v03.

powercurve

Power curve displayed as a spec card. Three-column table: wind speed in m/s, km/h, and output. Renders identically to with formatted key cells showing both speed units.

v03 source


| m/s | km/h | Output |
| --- | --- | --- |
| 2.2 | 8 | 1.2 kW |
| 4.2 | 15 | 9.0 kW |
| 5.6 | 20 | 22 kW |
| 7.0 | 25 | 42 kW |
| 8.3 | 30 | 62 kW |
< powercurve !>

v03 rendered

Power output at wind speed
2.2 (8)1.2 kW
4.2 (15)9.0 kW
5.6 (20)22 kW
7.0 (25)42 kW
8.3 (30)62 kW

Key format is {m/s} ({km/h}) — the km/h value appears in parentheses.

Legacy source

**PowerCurve: Power output at wind speed**

| m/s | km/h | Output |
| --- | --- | --- |
| 2.2 | 8 | 1.2 kW |
| 4.2 | 15 | 9.0 kW |
| 5.6 | 20 | 22 kW |
| 7.0 | 25 | 42 kW |
| 8.3 | 30 | 62 kW |

Legacy rendered

Identical HTML output to v03.

comparison

Comparison table with visual yes/no markers. First column is feature labels; subsequent columns are compared options. prefix → td-yes; prefix → td-no. Second column header gets th-green class; second column data cells get td-alt.

v03 source


| Feature | WindWhisperer | Conventional HAWT |
| --- | --- | --- |
| Cut-out wind speed | ✓ None -- self-limiting | ✗ Required (typically 25 m/s) |
| Urban installation | ✓ Approved for rooftop | ✗ Requires open land |
| Noise at 3 m | ✓ 35 dB | ✗ 55--65 dB typical |
| Bird strike risk | ✓ Low -- closed rotor | ✗ High -- open blade arc |
< comparison !>

v03 rendered

...
Feature WindWhisperer Conventional HAWT
Cut-out wind speed None -- self-limiting Required (typically 25 m/s)
Urban installation Approved for rooftop Requires open land

The and characters are stripped from the rendered cell text.

Legacy source

**Comparison: VAWT vs HAWT**

| Feature | WindWhisperer | Conventional HAWT |
| --- | --- | --- |
| Cut-out wind speed | ✓ None -- self-limiting | ✗ Required (typically 25 m/s) |
| Urban installation | ✓ Approved for rooftop | ✗ Requires open land |
| Noise at 3 m | ✓ 35 dB | ✗ 55--65 dB typical |
| Bird strike risk | ✓ Low -- closed rotor | ✗ High -- open blade arc |

Legacy rendered

Identical HTML output to v03.

checklist

Dot-style checklist. Renders

with dot markers.

v03 source — table pattern


| Item |
| --- |
| Self-limiting by design -- no cut-out speed |
| IEC II wind class certification |
| 20-year design life |
| LFP battery storage included as standard |
< checklist !>

v03 rendered

Self-limiting by design -- no cut-out speed
IEC II wind class certification
20-year design life
LFP battery storage included as standard

v03 source — list pattern


- Self-limiting by design -- no cut-out speed
- IEC II wind class certification
- 20-year design life
- LFP battery storage included as standard
< checklist !>

v03 rendered (list pattern)

Identical HTML output to table pattern.

Legacy source

**Checklist: What is included**

| Item |
| --- |
| Self-limiting by design -- no cut-out speed |
| IEC II wind class certification |
| 20-year design life |
| LFP battery storage included as standard |

Legacy rendered

Identical HTML output to v03 table pattern.

geostatus

Status-badged location cards in a three-column grid. Each card shows a coloured status badge, heading, and body text.

v03 source


| Status | H3 | Body |
| --- | --- | --- |
| Active | Sweden | Full installer network. Nationwide planning support available. |
| In progress | United Kingdom | Second certified installer joining. Installations underway. |
| On the horizon | Ireland & EU | Expanding from 2026. Contact us to register interest. |
< geostatus !>

v03 rendered

Active

Sweden

Full installer network. Nationwide planning support available.

In progress

United Kingdom

Second certified installer joining. Installations underway.

On the horizon

Ireland & EU

Expanding from 2026. Contact us to register interest.

Status values and CSS classes:

Status value CSS class
Active status-active
In progress status-progress
On the horizon status-horizon

Any other value falls back to status-active.

Legacy source

**GeoStatus: Market availability**

| Status | H3 | Body |
| --- | --- | --- |
| Active | Sweden | Full installer network. Nationwide planning support available. |
| In progress | United Kingdom | Second certified installer joining. Installations underway. |
| On the horizon | Ireland & EU | Expanding from 2026. Contact us to register interest. |

Legacy rendered

Identical HTML output to v03.

people

Founder and team cards. Each card shows title, name, bio, and optional phone and email contact buttons.

v03 source


| Name | Title | Bio | Email | Phone |
| --- | --- | --- | --- | --- |
| Rune Holm | Founder, HNordic | 25 years maritime engineering. Designed the WindWhisperer rotor geometry. | {{CONTACT-RUNE_email}} | {{CONTACT-RUNE_phone}} |
| Thomas Emerald White | Partner, HNordic | Financial services and technology background. Leads commercial and web operations. | {{CONTACT-THOMAS_email}} | {{CONTACT-THOMAS_phone}} |
< people !>

v03 rendered

Founder, HNordic
Rune Holm

25 years maritime engineering. Designed the WindWhisperer rotor geometry.

...

Columns: Name · Title · Bio · Email · Phone. Email and Phone cells accept TOKEN slot references or literal values. Literal phone numbers are wrapped in tel: links; literal email addresses get a pre-filled mailto: with a default subject.

cols param: number of columns in the grid, default 2.

Legacy source

**People: Meet the founders**

| Name | Title | Bio | Email | Phone |
| --- | --- | --- | --- | --- |
| Rune Holm | Founder, HNordic | 25 years maritime engineering. | {{CONTACT-RUNE_email}} | {{CONTACT-RUNE_phone}} |
| Thomas Emerald White | Partner, HNordic | Financial services and technology background. | {{CONTACT-THOMAS_email}} | {{CONTACT-THOMAS_phone}} |

Legacy rendered

Identical HTML output to v03 with cols:2 (default). For a 3-column layout in legacy syntax: People: Meet the founders | cols=3.

blog

Blog article card grid. Each card shows date, category, title, excerpt, and a read-more link.

v03 source


| Date | Category | Title | Excerpt | URL |
| --- | --- | --- | --- | --- |
| 2026-06-01 | Installation | Planning your grid connection | What to expect from the grid company application process and how to avoid the most common delays. | grid-connection.html |
| 2026-05-15 | Technology | How self-limiting design works | The rotor geometry that removes the need for a cut-out speed -- and why it matters on exposed sites. | self-limiting-design.html |
< blog !>

v03 rendered

All columns are optional. Cards with no URL render the title without a link and omit the read-more link.

Legacy source



| Date | Category | Title | Excerpt | URL |
| --- | --- | --- | --- | --- |
| 2026-06-01 | Installation | Planning your grid connection | What to expect from the grid company application process. | grid-connection.html |
| 2026-05-15 | Technology | How self-limiting design works | The rotor geometry that removes the need for a cut-out speed. | self-limiting-design.html |

< blog !>

Legacy rendered

Identical HTML output to v03.

Legacy-only constructs

The following constructs exist in legacy syntax and have no direct v03 equivalent. They remain fully supported. Use the indicated v03 alternative for new pages.

Section divider ---

Closes the current section and allows the next content to open a new one.

Paragraph in section one.

---

## New section heading

v03 alternative: structure content inside explicit blocks, which have clear open and close boundaries.

Plain GFM table

A pipe table with no Type: prefix renders as a standard data table.

| Header one | Header two | Header three |
| --- | --- | --- |
| Cell A | Cell B | Cell C |
| Cell D | Cell E | Cell F |

Rendered:

Header oneHeader twoHeader three
Cell ACell BCell C
Cell DCell ECell F

v03 alternative: use for explicit control and optional class param.

Heading label syntax ^Label^

Inline label prefix on H2 and H3 headings.

## ^About the technology^ How it works

### ^Step 1^ Site assessment

Rendered:

About the technology

How it works

Step 1

Site assessment

v03 alternative: use block before the heading.

H4 card heading ####

Renders a small card-style sub-heading.

#### Self-limiting by design

Rendered:

Self-limiting by design

No v03 equivalent — use #### directly in both legacy and v03 content.

Blockquote pullquote

> Operational data from four years of commercial installations shows consistent annual output within 5% of specification.

Rendered:

Operational data from four years of commercial installations shows consistent annual output within 5% of specification.

No v03 equivalent — use > directly in both legacy and v03 content.