Kitura

APIDoc Build Status - Master macOS Linux Apache 2 Slack Status

Kitura-StencilTemplateEngine

Kitura-StencilTemplateEngine 是 Kitura 模板引擎的一个插件,用于在 Kitura 服务器框架中使用 Stencil 模板。 这使得可以轻松地使用 Stencil 模板和 Kitura 服务器来创建带有集成 Swift 变量的 HTML 页面。

Swift 版本

最新版本的 Kitura-StencilTemplateEngine 需要 Swift 4.0 或更高版本。 您可以通过此链接下载此版本的 Swift 二进制文件。 不保证与其他 Swift 版本的兼容性。

Stencil 模板文件

模板文件基本上是 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

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()
}

Example.stencil

创建 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 文档

有关更多信息,请访问我们的 API 参考

社区

我们很乐意讨论服务器端 Swift 和 Kitura。 加入我们的 Slack 与团队见面!

许可证

此库在 Apache 2.0 许可下获得许可。 完整的许可文本可在 LICENSE 中找到。