0.5.3 • Published 10 years ago
reiny v0.5.3
Reiny
Template engine for React / Mithril / Mercury
npm install reiny --save
- gulp: mizchi/gulp-reiny
- browserify: mizchi/reinify
- atom mode: mizchi/language-reiny
apm install language-reiny
Goals
- Jade like template engine
- Generate react/mithril/mercury element
- Inline css friendly
- Inline babel preprocessor
- Inline propTypes
Example
template.reiny
// declare propTypes
@greeting: string
@items: number[]
// props and inline style
.main.container(
data-id = 'this-is-id'
) {
background-color: #eee
width: 640px
height: { 40 * 12 }
font-size: 1em
}
// text
h1 This is a title
// ref alias by & modifier
foo&foo
| expand with span
span = @greeting
// if syntax
if false
a hoge fuga aaa
// inline expression
if { 2 > 1 }
a(key='fooo') hoge fuga aaa
// for syntax
ul
for i in @items
li(key=i) = i
// object mixin as property
- let o = {'data-a': 'aaa', 'data-b': 'bbb'};
.foo(
> o
onClick = {- function(){console.log('foo')} -}
)
// mutli line code
---
let Foo = React.createClass({
render: () => {
return React.createElement('div', {className: 'foo'});
}
})
---
// CamelCase becomes element reference
Foo()
// Embed element direactly
- var el = React.createElement(Foo, {})
+(el)
npm install -g reiny
reiny template.reiny -o template.js
or node module
var reiny = require('reiny/lib');
reiny.compile('foo.bar(prop=1) text'); // generate code string
How to Use
Use template with runner
npm install reiny --save-dev
global.React = require('react');
var template = require('./template');
var C = React.createClass({
propTypes: template.propTypes || {},
render: function(){
return template(this.props);
}
});
console.log(React.renderToStaticMarkup(
React.createElement(C, {greeting: 'hello', items: [1, 2]})
));
<div data-id="this-is-id" style="background-color:#eee;width:640px;height:480px;font-size:1em;" class="main container">
<h1>This is a title</h1>
<span>expand with span</span>
<span>hello</span>
<a>hoge fuga aaa</a>
<ul>
<li>1</li>
<li>2</li>
</ul>
<div data-a="aaa" data-b="bbb" class="foo"></div>
<div class="foo"></div>
<div class="foo"></div>
</div>
SCSS Compiler(experimental)
.foo {
color: 'green'
}
if true
if true
.quux {
color: #eee
}
.bar {
color: 'red'
}
.baz {
color: 'blue'
}
if false
.fuba {
color: value
}
to
reiny template.reiny --scss
.foo {
color:'green';
.bar {
color:'red';
.baz {
color:'blue';
}
.fuba {
color:$value;
}
}
.quux {
color:'#eee';
}
}
How to develop
./script/build
LICENSE
MIT
0.5.3
10 years ago
0.5.1
10 years ago
0.5.0
10 years ago
0.4.7
10 years ago
0.4.6-2
10 years ago
0.4.6
10 years ago
0.4.4
10 years ago
0.4.3
10 years ago
0.4.2
10 years ago
0.4.1
10 years ago
0.4.0
10 years ago
0.3.7
10 years ago
0.3.6
10 years ago
0.3.5
10 years ago
0.3.4
10 years ago
0.3.3
10 years ago
0.3.1
10 years ago
0.3.0
10 years ago
0.2.4
10 years ago
0.2.3
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago
0.1.6
10 years ago
0.1.5
10 years ago
0.1.4
10 years ago
0.1.3
10 years ago
0.1.2
10 years ago
0.1.1
10 years ago
0.1.0
10 years ago