Vapor plugin for type-safe, transformable HTML views using swift-html.
The most popular choice for rendering HTML in a Vapor web app is to use the Leaf templating language, but it exposes your application to runtime errors and invalid HTML. Our plugin prevents these runtime issues at compile-time by embedding HTML directly into Swift’s powerful type system. It uses the swift-html DSL for constructing HTML documents using plain Swift data structures.
To use the plugin all you have to do is return a Node
value from your router callback:
import HtmlVaporSupport
import Vapor
let app = try Application()
let router = try app.make(Router.self)
router.get("/") { _ in
h1(["Hello, type-safe HTML on Vapor!"])
}
try app.run()
If you want to use swift-html-vapor in a project that uses SwiftPM, it's as simple as adding a dependencies
clause to your Package.swift
:
dependencies: [
.package(url: "https://github.com/pointfreeco/swift-html-vapor.git", from: "0.1.0")
]
Submodule, clone, or download swift-html-vapor, and drag HtmlVaporSupport.xcodeproj
into your project.
All modules are released under the MIT license. See LICENSE for details.