HTMLKit-Vapor-Provider

A provider that makes it possible to use HTMLKit with Vapor 4. If you are using Vapor 3, check this provider out.

Getting started

Installation

Add the packages as dependecies to your package.

/// [Package.swift]
...
dependencies: [
    ...
    ///1. Add the package
    .package(name: "HTMLKitVaporProvider", url: "https://github.com/vapor-community/htmlkit-vapor-provider.git", from: "1.2.0")
],
.targets: [
    .target(
    ...
        dependencies: [
            ...
            /// 2. Add the product
            .product(name: "HTMLKitVaporProvider", package: "HTMLKitVaporProvider")
        ]
    ),
    ...

Implementation

This will expose HTMLKit on Request and Application as shown below.

Preload

You can preload a layout to optimize rendering.

/// [configure.swift]

app.htmlkit.add(view: UserTemplate())

Rendering

/// [SimpleController.swift]

...
/// Returns a Response
try req.htmlkit.render(UserTemplate.self, with: user)

/// Returns a View
try req.htmlkit.render(view: UserTemplate.self, with: user)

/// Returns an EventLoopFuture<View> and will not require the preload
UserTemplate().render(with: user, for: req)

Localization

You can also set a localizationPath to enable Lingo.

/// [configure.swift]

app.htmlkit.localizationPath = "Resources/Localization"
app.htmlkit.defaultLocale = "nb"