Latest 2.1.1
Homepage https://github.com/sahandnayebaziz/Hypertext
License MIT
Platforms ios 10.0, osx 10.12
Authors

header

Compose valid HTML in Swift any way you want to.

Usage


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>

Requirements

  • Swift 3.0+

Full usage

  1. Rendering a tag

    
    div().render() 
    // <div></div>
    
  2. Rendering a tag with child text

    
    div { "hello world." }.render()
    // <div>hello world.</div>
    
  3. Rendering a tag with a child tag

    
    div { img() }.render()
    // <div><img/></div>
    
  4. Rendering a tag with multiple child tags

    
    div { [img(), img(), img()] }.render()
    // <div><img/><img/><img/></div>
    
  5. Rendering a tag with attributes

    
    link(["rel": "stylesheet", "type":"text/css", "href":"./style.css"]).render()
    // <link rel="stylesheet" type="text/css" href="./style.css"/>
    
  6. Rendering a tag with attributes and children

    
    div(["class": "container"]) { "hello world." }
    // <div class="container">hello world.</div>
    
  7. Rendering a doctype declaration

    doctype(.html5).render()
    // <!DOCTYPE html>
  8. Rendering unminified, with newlines and indentation

    
    head { title { "hello world." } }.render(startingWithSpaces: 0, indentingWithSpaces: 2)
    // <head>
    //   <title>
    //     hello world.
    //   </title>
    // </head>
    
  9. Rendering a tag in a novel way, any way you want to

    
    func createTitleTag(forPageNamed pageName: String) -> title {
     return title { "Hypertext - (pageName)" }
    }
    
    head { createTitleTag(forPageNamed: "Documentation") }.render()
    // <head><title>Hypertext - Documentation</title></head>
    
  10. Rendering a custom tag

    
       public class myNewTag: tag {
    
         override public var isSelfClosing: Bool { 
           return true 
         }
       }
    
       myNewTag().render()
       // <my-new-tag/>
    
  11. Rendering a custom type by adopting the protocol Renderable

    
       extension MyType: Renderable {
         public func render() -> String { ... }
         public func render(startingWithSpaces: Int, indentingWithSpaces: Int) -> String { ... }
       }
    

Latest podspec

{
    "name": "Hypertext",
    "version": "2.1.1",
    "summary": "Compose valid HTML in Swift any way you want to.",
    "description": "Hypertext provides a simple, powerful set of classes for composing HTML, including all standard HTML elements, and rendering composed HTML to a string. Best used with a Swift Server.",
    "homepage": "https://github.com/sahandnayebaziz/Hypertext",
    "license": "MIT",
    "authors": {
        "sahandnayebaziz": "[email protected]"
    },
    "source": {
        "git": "https://github.com/sahandnayebaziz/Hypertext.git",
        "tag": "2.1.1"
    },
    "platforms": {
        "ios": "10.0",
        "osx": "10.12"
    },
    "source_files": "Sources/*.swift",
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This