Kitura-StencilTemplateEngine 是 Kitura 模板引擎的一个插件,用于在 Kitura 服务器框架中使用 Stencil 模板。 这使得可以轻松地使用 Stencil 模板和 Kitura 服务器来创建带有集成 Swift 变量的 HTML 页面。
最新版本的 Kitura-StencilTemplateEngine 需要 Swift 4.0 或更高版本。 您可以通过此链接下载此版本的 Swift 二进制文件。 不保证与其他 Swift 版本的兼容性。
模板文件基本上是 HTML,其中包含可以插入代码和变量的空白。 Stencil 是一种用于编写模板文件的模板语言,Kitura-StencilTemplateEngine 可以使用任何标准的 Stencil 模板。
Stencil 用户指南提供了关于如何编写 Stencil 模板文件的文档和示例。
默认情况下,Kitura 路由器将在 Views
文件夹中查找 Stencil 模板文件,即扩展名为 .stencil
的文件。
将 Kitura-StencilTemplateEngine
包添加到应用程序的 Package.swift
文件中的依赖项中。 将 "x.x.x"
替换为最新的 Kitura-StencilTemplateEngine
版本。
.package(name: "KituraStencil", url: "https://github.com/Kitura/Kitura-StencilTemplateEngine.git", from: "x.x.x")
将 KituraStencil
添加到你的目标依赖项中
.target(name: "example", dependencies: ["KituraStencil"]),
import KituraStencil
以下示例使用 kitura init
生成的服务器,并对其进行修改以从 .stencil
文件提供 Stencil 格式的文本。
本示例中将编辑的文件结构如下
<ServerRepositoryName> ├── Package.swift ├── Sources │ └── Application │ └── Application.swift └── Views └── Example.stencil
Views
文件夹和 Example.stencil
文件将在本示例的后面创建,因为它们不是由 kitura init
初始化的。
将依赖项添加到您的 Package.swift 文件中(如上面的添加依赖项中所定义)。
在 Application.swift
文件中,添加以下代码以在 "/articles" 路由上呈现 Example.stencil
模板文件。
import KituraStencil
在 postInit()
函数中添加以下代码
router.add(templateEngine: StencilTemplateEngine())
router.get("/articles") { _, response, next in
var context: [String: [[String:Any]]] =
[
"articles": [
["title" : "Using Stencil with Swift", "author" : "Kitura"],
["title" : "Server-Side Swift with Kitura", "author" : "Kitura"],
]
]
try response.render("Example.stencil", context: context)
response.status(.OK)
next()
}
创建 Views
文件夹,并将以下 Stencil 模板代码放入一个名为 Example.stencil
的文件中
<html>
There are {{ articles.count }} articles. <br />
{% for article in articles %}
- {{ article.title }} written by {{ article.author }}. <br />
{% endfor %}
</html>
此示例改编自 Stencil 用户指南代码。 它将显示文章数量,然后显示文章及其作者的列表。
运行应用程序,服务器运行后,访问 https://:8080/articles 以查看呈现的 Stencil 模板。
有关更多信息,请访问我们的 API 参考。
我们很乐意讨论服务器端 Swift 和 Kitura。 加入我们的 Slack 与团队见面!
此库在 Apache 2.0 许可下获得许可。 完整的许可文本可在 LICENSE 中找到。