Vaux 是一个允许你使用 Swift 生成 HTML 的库。它包含一个用 Swift 编写的 HTML 领域特定语言 (DSL),其目的是允许开发者使用 Swift 来编写 HTML。
警告: 如果你正在阅读本文,那么这是一个基于 Swift 5.1 的 alpha 软件,目前只能从 swift.org 或者 Xcode 11 Beta 下载。 这是一个名副其实的进行中的工作。
在 WWDC2019 上,苹果公司宣布了 Swift 中一项名为 Function Builders 的新功能。 Vaux 的核心功能,包括 HTML 的 Swift DSL,很大程度上受到了这个提案和相应的例子的启发。 因此,该库的存在有两个主要目标
在这个库的首次开源发布时,它站在巨人的肩膀上,非常感谢。
假设你想编写以下 HTML
<html>
<head>
<title>
Page title
</title>
</head>
<body>
<div>
Page body
</div>
</body>
</html>
你可以先编写一个函数,使用 Vaux 返回 HTML,而不是手动编写它
var pageTitle = "Page title"
var pageBody = "Page body"
func simplePage() -> HTML {
html {
head {
title(pageTitle)
}
body {
div {
pageBody
}
}
}
}
然后,你可以使用 Vaux 将函数结果渲染成一个静态 html 文件,如下所示
let vaux = Vaux()
vaux.outputLocation = .file(name: "testing", path: "/tmp/")
do {
try vaux.render(html)
} catch let error {
print("Uh-oh, something happened: \(error.localizedDescription)")
}
最终结果是,你在你的 /tmp/
目录下拥有一个名为 testing.html
的文件。
注意: 要查看 Vaux 的一系列实际用例,请查看 VauxTests.swift
以查看不同标签的示例。
编写一个返回 HTML
的函数,并在该函数内部添加你的构建器
func buildPage() -> HTML {
}
即将推出...
Vaux 在 GitHub 上以 Swift 包的形式提供。 如果你正在使用 Xcode 11 beta,你可以简单地添加这个 url (https://github.com/dokun1/Vaux) 作为依赖项。 否则,你必须将其作为依赖项包含在你的 Package.swift
文件中,并使用命令行来为它创建一个项目。