Contents

loopwerk/sagaleafrenderer

A renderer for [Saga](https://github.com/loopwerk/Saga) that uses [Leaf templates](https://github.com/vapor/leaf-kit) to turn a rendering context into a string.

Example

Package.swift

// swift-tools-version:6.0

import PackageDescription

let package = Package(
  name: "Example",
  platforms: [
    .macOS(.v14)
  ],
  dependencies: [
    .package(url: "https://github.com/loopwerk/SagaParsleyMarkdownReader", from: "1.0.0"),
    .package(url: "https://github.com/loopwerk/SagaLeafRenderer", from: "1.0.0")
  ],
  targets: [
    .target(
      name: "Example",
      dependencies: [
        "SagaParsleyMarkdownReader",
        "SagaLeafRenderer"
      ]
    ),
  ]
)

main.swift:

import Saga
import SagaParsleyMarkdownReader
import SagaLeafRenderer

let saga = try Saga(input: "content", output: "deploy")
defaultLeafRenderer = createLeafRenderer(templatesDirectory: saga.rootPath + "templates")

try await saga
  // All the Markdown files will be parsed to html.
  .register(
    readers: [.parsleyMarkdownReader],
    writers: [
      .itemWriter(leaf("page"))
    ]
  )

  // Run the steps we registered above
  .run()

Please check out the Example app to play around.

Package Metadata

Repository: loopwerk/sagaleafrenderer

Default branch: main

README: README.md