MDL MDL
Markdown language

MDL builds clean sites from readable outlines

Write .mdl files, keep styling in CSS, add JavaScript only when behavior belongs, and compile everything to static HTML.

Start in one minute

mkdir my-mdl-site
      cd my-mdl-site
      npm install @tosiiko/mdl
      npm exec -- mdl init
      source bin/activate
      mdl serve
      
  • MDL

    Author structure and content.

  • CSS

    Own layout, color, and typography.

  • JS

    Add behavior with explicit handlers.

  • HTML

    Ship static output.

  • Why MDL

    Small language, normal web output

    MDL is intentionally narrow: it gives names to structure, maps common sections to semantic HTML, and leaves the browser platform visible.

    Readable

    Pages stay close to the idea

    Indentation describes hierarchy, Markdown handles prose, and sections such as hero:, card:, form:, and footer: describe the page.

    Predictable

    Every section gets a stable class

    pricing: becomes .mdl-pricing, unknown names still compile, and author classes append after the MDL class.

    Static

    Built output is boring HTML

    mdl build writes .html, copies assets, bundles CSS when configured, and does not require a framework runtime.

    Docs map

    Learn the full flow

    Install

    Set up the npm package, activate the local bin, and create your first project.

    Open install guide

    Language

    Sections, inline elements, attributes, Markdown, comments, scripts, and UI patterns.

    Read language guide

    Project config

    Configure mdl.json, multi-page builds, CSS bundles, scripts, assets, and ports.

    View config

    CLI

    Use mdl init, mdl new, mdl check, mdl format, mdl build, and mdl serve.

    Open CLI reference

    Examples

    Copy practical snippets for cards, forms, pricing, tabs, Tailwind, and JavaScript.

    Browse examples

    Deploy

    Build static output and host it on GitHub Pages with getmdl.site.

    Ship a site

    Documentation for the language, CLI, and deployment path is ready.

    Build your first page locally, then publish static HTML anywhere.