Skip to content
Stencil is a simple and powerful template language for Swift.
Branch: master
Clone or download
cruisediary and AliSoftware Update README.md (#270)
Simple change adding dot

as is
Sourcery, SwiftGen, Kitura, Weaver Genesis

to be
Sourcery, SwiftGen, Kitura, Weaver, Genesis
Latest commit 6addc46 Feb 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sources syntax error on empty variable tag Jan 12, 2019
Tests syntax error on empty variable tag Jan 12, 2019
docs updated docs Oct 1, 2018
.gitignore Update to Spectre 0.9.0 (#247) Sep 23, 2018
.swiftlint.yml Rules Nov 11, 2018
.travis.yml Run swiftlint on CI Nov 11, 2018
CHANGELOG.md syntax error on empty variable tag Jan 12, 2019
LICENSE
Package.resolved Update to Spectre 0.9.0 (#247) Sep 23, 2018
Package.swift Feat: Add support for Swift 4.0 Oct 1, 2018
Package@swift-4.2.swift Compile with Swift 4.2 if possible Sep 25, 2018
README.md Update README.md (#270) Feb 17, 2019
Stencil.podspec.json Version 0.13.1 Sep 26, 2018

README.md

Stencil

Build Status

Stencil is a simple and powerful template language for Swift. It provides a syntax similar to Django and Mustache. If you're familiar with these, you will feel right at home with Stencil.

Example

There are {{ articles.count }} articles.

<ul>
  {% for article in articles %}
    <li>{{ article.title }} by {{ article.author }}</li>
  {% endfor %}
</ul>
import Stencil

struct Article {
  let title: String
  let author: String
}

let context = [
  "articles": [
    Article(title: "Migrating from OCUnit to XCTest", author: "Kyle Fuller"),
    Article(title: "Memory Management with ARC", author: "Kyle Fuller"),
  ]
]

let environment = Environment(loader: FileSystemLoader(paths: ["templates/"]))
let rendered = try environment.renderTemplate(name: "article_list.html", context: context)

print(rendered)

Philosophy

Stencil follows the same philosophy of Django:

If you have a background in programming, or if you’re used to languages which mix programming code directly into HTML, you’ll want to bear in mind that the Django template system is not simply Python embedded into HTML. This is by design: the template system is meant to express presentation, not program logic.

The User Guide

Resources for Stencil template authors to write Stencil templates:

Resources to help you integrate Stencil into a Swift project:

Projects that use Stencil

Sourcery, SwiftGen, Kitura, Weaver, Genesis

License

Stencil is licensed under the BSD license. See LICENSE for more info.

You can’t perform that action at this time.