RiotJSでpugを使う
RiotJS初心者の@dulkappaです.
久々にRiotJS書いてたら, jadeからpugにしてね, みたいなメッセージが出たり浦島状態でした.
パグ可愛いな, おい.
ということで, RiotJS + gulp + pugで書きなおしたときのメモです.
といってもほとんどjadeとpugは記法が変わらないみたいなので, 一瞬だったけど.
ES2016のお作法とかわからないので, わかったらその辺もアップデートしたい.
構成(最小)
riot_sample.
├── gulpfile.js
└── src
├── app-todo.tag.pug
├── app.js
└── index.pug
細かいのはリポジトリ見てね.
解説というかただのコード
gulpfile.js
var gulp = require('gulp');
var browserify = require('browserify');
var riotify = require('riotify');
var pug = require('gulp-pug');
var source = require('vinyl-source-stream');
var webserver = require('gulp-webserver');
gulp.task('pug', function() {
gulp
.src('src/index.pug')
.pipe(pug())
.pipe(gulp.dest('dist/'));
});
gulp.task('browserify', function() {
browserify({ entries: ['src/app.js'] })
.transform(riotify, { 'template': 'pug', 'ext': 'tag.pug' })
.bundle()
.pipe(source('main.js'))
.pipe(gulp.dest('dist/'));
});
gulp.task('server', ['browserify', 'pug'], function() {
gulp
.src('dist')
.pipe(webserver({
livereload: true,
directoryListining: true,
open: true
}));
});
gulp.task('default', ['server']);
riotify使うところですが, タグファイルの拡張子が*.tag.pug
なので, ext
オプションで指定しています.
テンプレートもjade
ではなくpug
にしてます.
app-todo.tag.pug
app-todo
form(onSubmit="{ add }")
input(name="input" onkeyup="{ edit }")
button(disabled="{ !text }") Add
ul
li(each="{ items }")
label(class="{ completed: done }")
input(type="checkbox" checked="{ done }" onClick="{ parent.toggle }")
| { title }
script.
this.disabled = true;
this.items = opts.items;
edit(e) {
this.text = e.target.value;
}
add(e) {
if (this.text) {
this.items.push({ title: this.text });
this.text = this.input.value = '';
}
}
toggle(e) {
var item = e.item;
item.done = !item.done;
return true;
}
RiotJS Style Guideの内容も少しずつ取り込んでいきたい.
とりあえず<script>
タグとファイル名のとこだけ.
app.js
var riot = require('riot');
require('./app-todo.tag.pug');
riot.mount('app-todo');
タグのマウント用(ここに載せる必要なかった).
index.pug
html(lang="ja")
head
title Riot Sample
meta(charset='utf-8')
body
app-todo(items="{ [] }")
script(src="main.js")
なんかシンタックスハイライトおかしい...
参考
Author And Source
この問題について(RiotJSでpugを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/dulkappa/items/e89e39f24c6104122662著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .