超文本 2.1.1

超文本 2.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017 年 9 月
SwiftSwift 版本3.0
SPM支持 SPM

SAHAND NAYEBAZIZ维护。



超文本 2.1.1

  • sahandnayebaziz

header

以任何方式在 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>

要求

  • Swift 3.0+

完整用法

  1. 渲染一个标签

    div().render() 
    // <div></div>
    
  2. 渲染带有子文本的标签

    div { "hello world." }.render()
    // <div>hello world.</div>
    
  3. 渲染带有子标签的标签

    div { img() }.render()
    // <div><img/></div>
    
  4. 渲染带有多个子标签的标签

    div { [img(), img(), img()] }.render()
    // <div><img/><img/><img/></div>
    
  5. 渲染带有属性的标签

    link(["rel": "stylesheet", "type":"text/css", "href":"./style.css"]).render()
    // <link rel="stylesheet" type="text/css" href="./style.css"/>
    
  6. 渲染带有属性和子元素的标签

    div(["class": "container"]) { "hello world." }
    // <div class="container">hello world.</div>
    
  7. 渲染文档类型声明

    doctype(.html5).render()
    // <!DOCTYPE html>
  8. 渲染未压缩的,带有换行和缩进的标签

    head { title { "hello world." } }.render(startingWithSpaces: 0, indentingWithSpaces: 2)
    // <head>
    //   <title>
    //     hello world.
    //   </title>
    // </head>
    
  9. 以新奇的方式渲染标签,以任何您想要的方式

    func createTitleTag(forPageNamed pageName: String) -> title {
      return title { "Hypertext - \(pageName)" }
    }
    
    head { createTitleTag(forPageNamed: "Documentation") }.render()
    // <head><title>Hypertext - Documentation</title></head>
    
  10. 渲染自定义标签

public class myNewTag: tag {

  override public var isSelfClosing: Bool { 
    return true 
  }
}

myNewTag().render()
// <my-new-tag/>
  1. 通过采用 Renderable 协议来渲染自定义类型
extension MyType: Renderable {
  public func render() -> String { ... }
  public func render(startingWithSpaces: Int, indentingWithSpaces: Int) -> String { ... }
}