测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017 年 9 月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由SAHAND NAYEBAZIZ维护。
以任何方式在 Swift 中组合有效的 HTML。
import Hypertext
title { "hello world." }.render()
// <title>hello world.</title>
head { title { "hello world." } }.render()
// <head><title>hello world.</title></head>
head { title { "hello world." } }.render(startingWithSpaces: 0, indentingWithSpaces: 2)
// <head>
// <title>
// hello world.
// </title>
// </head>
渲染一个标签
div().render()
// <div></div>
渲染带有子文本的标签
div { "hello world." }.render()
// <div>hello world.</div>
渲染带有子标签的标签
div { img() }.render()
// <div><img/></div>
渲染带有多个子标签的标签
div { [img(), img(), img()] }.render()
// <div><img/><img/><img/></div>
渲染带有属性的标签
link(["rel": "stylesheet", "type":"text/css", "href":"./style.css"]).render()
// <link rel="stylesheet" type="text/css" href="./style.css"/>
渲染带有属性和子元素的标签
div(["class": "container"]) { "hello world." }
// <div class="container">hello world.</div>
渲染文档类型声明
doctype(.html5).render()
// <!DOCTYPE html>
渲染未压缩的,带有换行和缩进的标签
head { title { "hello world." } }.render(startingWithSpaces: 0, indentingWithSpaces: 2)
// <head>
// <title>
// hello world.
// </title>
// </head>
以新奇的方式渲染标签,以任何您想要的方式
func createTitleTag(forPageNamed pageName: String) -> title {
return title { "Hypertext - \(pageName)" }
}
head { createTitleTag(forPageNamed: "Documentation") }.render()
// <head><title>Hypertext - Documentation</title></head>
渲染自定义标签
public class myNewTag: tag {
override public var isSelfClosing: Bool {
return true
}
}
myNewTag().render()
// <my-new-tag/>
Renderable
协议来渲染自定义类型extension MyType: Renderable {
public func render() -> String { ... }
public func render(startingWithSpaces: Int, indentingWithSpaces: Int) -> String { ... }
}