0.0.75 • Published 9 months ago

@kosatyi/ejs v0.0.75

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

EJS

Embedded JavaScript templates with extend/block

npm github-issues license

Install

You can get EJS via npm.

$ npm install @kosatyi/ejs --save

Usage

const ejs = require('@kosatyi/ejs');

// path where templates is located 
ejs.configure({
    path: 'views'
})

// add custom template helper functions
ejs.helpers({
    ucase(text){
        return String(text).toUpperCase()
    }
})

// load index.ejs template from `views` folder
ejs.render('page/index',{
    posts:[{
        title:'Post Title',
        content:"<p>post content</p>"
    }]
}).then((content)=>{
    console.log(content)
})

Use with Express

$ npm install @kosatyi/ejs --save
const express = require('express')
const ejs = require('@kosatyi/ejs')
const app = express()
app.engine('ejs', ejs.__express)
app.set('views', 'views')
app.set('view cache', false)
app.set('view engine', 'ejs')

or use ejs alias

$ npm install ejs@npm:@kosatyi/ejs --save
const express = require('express')
const app = express()
app.set('views', 'views')
app.set('view engine', 'ejs')
app.set('view cache', false)

Template Example

layout/default.ejs

<html>
    <head>
        <title><%-ejs.get('title')%></title>
        <% ejs.block('resources',()=>{ %>
            <link rel="stylesheet" type="text/css" href="/dist/styles.css">
        <% }) %>
    </head>
    <body>
        <header>
            <% ejs.block('header',()=>{ %>
                <h1><%-ejs.get('title')%></h1>
            <% }) %>            
        </header>
        <main>
            <% ejs.block('content') %>
        </main>
        <footer>
            <% ejs.block('footer',()=>{ %>
            Copyright
            <% }) %>
        </footer>
    </body>
</html>

page/index.ejs

<% ejs.extend('layout/default') %>

<% ejs.set('title','Page Title') %>

<% ejs.block('resources',(parent)=>{ %>
    <% parent() %>
    <script defer src="/dist/framework.js"></script>
<% }) %>

<% ejs.block('content',()=>{ %>

<% ejs.each('posts',(post)=>{ %>
<article>
    <h3><%-post.title%></h3>
    <div><%=post.content%></div>
</article>
<% }) %>

<% }) %>
0.0.75

9 months ago

0.0.73

12 months ago

0.0.74

12 months ago

0.0.70

12 months ago

0.0.71

12 months ago

0.0.72

12 months ago

0.0.62

1 year ago

0.0.63

12 months ago

0.0.64

12 months ago

0.0.65

12 months ago

0.0.66

12 months ago

0.0.67

12 months ago

0.0.68

12 months ago

0.0.69

12 months ago

0.0.61

1 year ago

0.0.60

1 year ago

0.0.59

1 year ago

0.0.58

1 year ago

0.0.40

2 years ago

0.0.41

2 years ago

0.0.42

2 years ago

0.0.43

2 years ago

0.0.44

2 years ago

0.0.45

2 years ago

0.0.46

2 years ago

0.0.47

2 years ago

0.0.51

2 years ago

0.0.52

2 years ago

0.0.54

2 years ago

0.0.55

2 years ago

0.0.56

2 years ago

0.0.57

2 years ago

0.0.50

2 years ago

0.0.48

2 years ago

0.0.49

2 years ago

0.0.25

2 years ago

0.0.37

2 years ago

0.0.38

2 years ago

0.0.39

2 years ago

0.0.30

2 years ago

0.0.31

2 years ago

0.0.32

2 years ago

0.0.33

2 years ago

0.0.34

2 years ago

0.0.35

2 years ago

0.0.36

2 years ago

0.0.26

2 years ago

0.0.27

2 years ago

0.0.28

2 years ago

0.0.29

2 years ago

0.0.20

2 years ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.23

2 years ago

0.0.24

2 years ago

0.0.17

2 years ago

0.0.12-alpha.0

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.1-alpha.2

3 years ago

0.0.1-alpha.1

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago