定义标签名为函数名来生成 HTML 的办法怎么样?
具体实现的代码在 Github: https://gist.github.com/2498711 讨厌关闭括号关闭标签, 于是在用 Jade, 可浏览器端多少不方便 最后想起来以前一个办法, 给每个标签定义函数, 结合 coffee 的写法, 显得比较紧凑了
require './index'
page = html _,
head _,
title _,
text 'html'
style
body:
color: 'red'
div:
color: 'blue'
color2: 'bue'
color4: 'ue'
body _,
div id: 'main',
div id: 'left_bar',
nav id: 'home_button', class: 'nav'
nav id: 'search_button', class: 'nav'
nav id: 'msg_button', class: 'nav'
nav id: 'back_button', class: 'nav'
div id: 'right_bar',
article class: 'post',
p _,
text 'need to clarify sth'
text 'more things need to be examined'
article class: 'post'
article class: 'post'
article class: 'post'
console.log page
不知道会不会有潜在的问题, 请给看下…
现在计划用函数封装一下减少对全局变量的污染…
貌似直接封装, 函数的作用域链搞不定, 只能想到用面向对象的方法,
传一个函数, 进行一次赋值, 那么 this
就指向 tmpl
函数内部的对象了…
那样代码近似于:
tmpl ->
[@div](/user/div) {}, ([@text](/user/text) "content")
13 回复
多个属性呢,比如onclick之类的怎么写
不多说了,看这个:https://github.com/gradus/coffeecup
例子里好象没有layout的用法
我的改进:dom.coffee 实现了 ->
,但是还是需要 @
,coffeecup 怎么去掉 @
依赖的还不知道,希望没有污染全局空间
@jiyinyiyong 没有看懂,似乎太复杂。。。