Skip to content

jverkoey/slipstream

Repository files navigation

Tailwind CSS

Build static web pages with Swift and Tailwind CSS.

Build Status License


Slipstream is a static site generator built for Swift developers.

Usage

Add Slipstream to your package dependencies:

dependencies: [
  .package(url: "https://github.com/jverkoey/slipstream.git", branch: "main"),
],
targets: [
  .executableTarget(name: "MySite", dependencies: [
    .product(name: "Slipstream", package: "slipstream"),
  ]
],

And off you go:

import Slipstream

struct HelloWorld: View {
  var body: some View {
    Text("Hello, world!")
  }
}

print(try renderHTML(HelloWorld()))

Render a sitemap

Slipstream intentionally avoids making strong opinions about how your documents should be structured and written to disk. To help get you started though you can use Slipstream's lightweight sitemap renderer to write a dictionary of Slipstream views to disk:

let sitemap: Sitemap = [
  "index.html": HelloWorld()
]

// Assumes this file is located in a Sources/ sub-directory of a Swift package.
guard let projectURL = URL(filePath: #filePath)?
  .deletingLastPathComponent()
  .deletingLastPathComponent() else {
  print("Unable to create URL for \(#filePath)")
  exit(1)
}

let outputURL = projectURL.appending(path: "site")

try renderSitemap(sitemap, to: outputURL)

Documentation

View Slipstream's complete documentation.

Community

To discuss Slipstream-related topics with other Slipstreamers, ask questions, or explore ideas, please use GitHub discussions.

Releases

No releases published

Languages