/riotify

browserify plugin for riot tag files

Primary LanguageJavaScriptMIT LicenseMIT

Build Status

riotify

"riotify" is a browserify transformer for riot ".tag" files.

Installation

npm install riotify

Usage

This module is meant to be used together with browserify or module-deps:

Either of the two commands below result creates the same result:

browserify -t riotify app.js
module-deps -t riotify app.js | browser-pack

Example app.js:

var riot = require('riot')
var todo = require('./todo.tag')
riot.mount(todo)

Example todo.tag:

<todo>
  <div each={ items }>
    <h3>{ title }</h3>
  </div>

  this.items = [ { title: 'First' }, { title: 'Second' } ]
</todo>

Note that your tag files actually need to have the extension ".tag".

Compile Options

This plugin can give riot's compile options.

% browserify -t [ riotify --type coffeescript --template jade ] app.js

You can also configure it in package.json

{
    "name": "my-package",
    "browserify": {
        "transform": [
            [ "riotify", {"type": "coffeescript", "template": "jade" } ],
        ]
    }
}

Available option

  • compact: Boolean
    • Minify </p> <p> to </p><p>
  • expr: Boolean
    • Run expressions trough parser defined with --type
  • type: String, coffeescript | cs | es6 | none
    • JavaScript pre-processor
  • template: String, jade
    • HTML pre-processor
  • ext: String
    • custom extension, you’re free to use any file extension for your tags (instead of default .tag):

See more: https://muut.com/riotjs/compiler.html

With gulp.js

var gulp       = require('gulp');
var browserify = require('browserify');
var riotify    = require('riotify');
var source     = require('vinyl-source-stream');

gulp.task('browserify', function(){
  browserify({ entries: ['src/app.js'] })
  .transform(riotify, { template: 'jade' }) // pass options if you need
  .bundle()
  .pipe(source('app.js'))
  .pipe(gulp.dest('dist/'))
});

These are the simplest cases. uglify and sourcemaps would be needed.

Tests

npm test

Author

Jan Henning Thorsen - jhthorsen@cpan.org