sneak
A template engine heavily inspired by jade and written with Tumblr in mind. It is a core component of peak, a Tumblr development environment.
Installation
$ npm install sneak -g
Why should you care?
Sneak is a template engine that looks familiar to jade users but has been sanded down and re-tooled for Tumblr theme development.
Example
! 5
html
head
- PageTitle:
title= Title
body
header.
My first Tumblr
- Posts:
h1 #{Title}
h1= Title
p= Content
{block:PageTitle} {Title} {/block:PageTitle} My first Tumblr {block:Posts} {Title} {/block:Posts}
Syntax
Blocks:
A Tumblr {block:} tag
- Posts:
h1 Title
{block:Posts} Title{/block:Posts}
Variables:
A Tumblr {variable} tag. Can be interpolated within text.
h1= Title
p Content: #{content}
{Title}Content: {Content}
Tags:
HTML tags can be rendered in several different ways.
h1 Title
h2.subtitle Subtitle
#content Content
.footer Footer
footer(name: "bottom") Footer #2
meta(name: "description", content: description)/
TitleSubtitleContentFooterFooter #2
Text:
All characters following a tag are treated as text
h1 Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Tags followed by a dot (.) will make all following indented text into a text string.
#content.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi consequat odio nec magna fermentum, sit amet placerat nisl fringilla.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi consequat odio nec magna fermentum, sit amet placerat nisl fringilla.
Doctype:
Render a doctype
! 5
Include:
Include sneak templates.
- Posts:
= "post.sneak"
{block:Posts} <!-- parsed contents of post.sneak -->{/block:Posts}
Comment:
Include comments
// Hello
<!-- Hello -->
Locals:
Sneak also accepts locals. Syntactically, they are variables with an exclamation mark appended to the end.
h1 #{foo!}
h2(name: name!)- bar!
<!-- assuming foo is "bar", bar is "foo", and name is "subheader" -->barfoo
Usage
CLI
$ npm install sneak -g
$ sneak --help
API
var sneak = ; // rendersneak; // renderFilesneak; // compilesneak; // compileFilesneak;
Options:
- basepath (string) a path to search for files included relatively.
- encoding (string) the encoding format to read and write files in.
for
render
andrenderFile
the options object is also used to pass locals.
License & Contributing
- Details on the license can be found here
- Details on running tests and contributing can be found here