A DSL for writing HTML in Swift

What's New

0.4.0: Explicit Void


Swim – Swift Markup

A DSL for building HTML documents with Swift function builders.

Currently in use on my personal website.

import Swim
import HTML

let myDocument = html(lang: "en-US") {
    head {
        meta(charset: "utf-8", content: "text/html", httpEquiv: "Content-Type")
    body(customAttributes: [ "data-foo": "bar" ]) {
        article(classes: "readme", "modern") {
            header {
                h1 {
                    "This is a great article."

            p {
                "Hello World!"
                "How are you?"

            p {
                "This is a"
                a(href: "") { "link to the Swift website" }

By generating all words in the language according to the HTML specification, we can make sure that only valid HTML can be expressed.

For example, the above would generate this HTML:

<html lang="en-US">
    <meta http-equiv="Content-Type" charset="utf-8" content="text/html" />
  <body data-foo="bar">
    <article class="readme modern">
          This is a great article.
        Hello World!
        How are you?
        This is a
        <a href="">
          link to the Swift website


  • Swift Tools 5.4.0
View More Packages from this Author


  • None
Last updated: Wed Mar 29 2023 05:56:52 GMT-0500 (GMT-05:00)