# shoko

> a templating engine

Latest version **1.0.12** (published 2017-09-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install shoko
pnpm add shoko
yarn add shoko
bun add shoko
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.12 |
| Published | 2017-09-02 |
| First published | 2017-07-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Nir Kogman |
| Maintainers | nirkog |

## Links

- npm: https://www.npmjs.com/package/shoko
- Repository: https://github.com/nirkog/Shoko
- Issues: https://github.com/nirkog/Shoko/issues
- npm.io page: https://npm.io/package/shoko

## Dependencies (4)

- [chai](https://npm.io/package/chai.md) ^4.1.2
- [mocha](https://npm.io/package/mocha.md) ^3.5.0
- [colors](https://npm.io/package/colors.md) ^1.1.2
- [is-number](https://npm.io/package/is-number.md) ^3.0.0

## Recent versions

- 1.0.12 (latest) — 2017-09-02
- 1.0.11 — 2017-08-16
- 1.0.10 — 2017-08-15
- 1.0.9 — 2017-08-14
- 1.0.8 — 2017-08-01
- 1.0.7 — 2017-07-27
- 1.0.6 — 2017-07-27
- 1.0.5 — 2017-07-27
- 1.0.4 — 2017-07-25
- 1.0.3 — 2017-07-25
- 1.0.2 — 2017-07-25
- 1.0.1 — 2017-07-24
- 1.0.0 — 2017-07-24

## README

# Shoko

#### A node.js templating engine

**Shoko** is a simple to use templating engine, with a very straight forward and intuative syntax. Shoko also offers many other features, including: mixins, variables, comments.  
As shoko is in it's early development, many features that we intend to add are stil missing.

## Installation

Shoko is super easy to get up and running.
simply download it from npm, like this.

    npm install shoko --save

## Syntax

Shoko has a very easy to grasp syntax. Elements in shoko are seprated by curly braces.  
Here is an example:

    doctype html
    html {
        head {
            title {
                'My First Shoko Page'
            }
        }

        body {
            h1 {
                'Shoko is awesome.'
            }
        }
    }

Which will render to this HTML:

    <!DOCTYPE html>
    <head>
        <head>
            <title>My First Shoko Page</title>
        </head>

        <body>
            <h1>
                My First Shoko Page
            </h1>
        </body>
    </head>

## API

**Shoko is really easy to use.**  
To render plain shoko text, just use the render function.

    const shoko = require('shoko');  

    let textToRender = 'h1 { "Hello world" }';

    //<h1>Hello world</h1>
    let renderedHTML = shoko.render(textToRender);

To render from a file, use the renderFile function.

    let renderedFile = shoko.renderFile('file.sk');

**Yes, I'ts that simple!**

## Framework Integration

### List of frameworks:
- Express.js
- hapi.js

### Integrating with Express.js

Integrating Shoko with Express is so easy.  
Just set the engine to the _Shoko renderFile_ function.

    app.engine('sk', shoko.renderFile);

Then, you can just render views normally. For example:

    app.get('/', (res, req) => {
        res.render('index', {});
    });


### Integrating with Hapi.js

Like express, integrating Shoko with Hapi is very easy;
Just register shoko as the engine.

    server.register(require('vision'), (err) => {
        server.views({
            engines: {
                html: require('shoko')
            }
        });
    });

Then, you can just render views normally. For example:

    server.route({
        method: 'GET',
        path: '/',
        handler: function (request, reply) {
            reply.view('index');
        }
    });

---
_Source: https://npm.io/package/shoko · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
