Skip to content
YinYong edited this page Jan 3, 2014 · 5 revisions

ursa2尝试在模块化代码上作出努力,因此提出对模板分为页面模板、从属模板与通用模板三类:

  • 页面模板:即最终生成独立HTML页面的模板,一般应当include其他模板而不会被其他页面include,它可以有父模板,这不影响它成为独立页面的事实;
  • 从属模板:即固定从属于一个或多个页面的模板,它在页面中有固定的位置,它的HTML元素可以有id,它应当始终被其他页面模板或从属模板include,将它拆分出来完全是为了避免书写过长的模板;
  • 通用模板:即一个HTML模块‘类’,它有自己固定的样式与结构,当其他页面需要这个模块时,只需要传给他参数并include页面,但它不应当为特定的位置或样式而改变,它的HTML元素不能含有id,将它拆分出来主要是为了模块重用。

默认地你应当将从属模板放在template/_module目录下,把通用模板放在template/_common目录下,而把页面模板放在template的其他位置。相应地,你也要把json/css/js做这样的分类。可以通过配置改变目录位置,你可以看见index页对三种模板做了分类。

你如果不喜欢这样做,完全可以忽略,不会对工程有任何影响。

但是JSON拆分完全是一种容易理解并有用的特性,你可以按照模板的目录与文件名将数据分别写到对应目录和文件名的json数据中,比如template/index/header.tpl对应_data/index/header.json,系统会自动拼合数据,请不要数据相同字段名的数据,这种情况下的覆盖顺序是未知的。

由ursa升级至ursa2,有以下变动:

  • ursa2的proxy默认为关闭,你需要设置enable_proxy为true来启用它;
  • ursa2会尝试对HTML中的img标签加时间戳;
  • ursa2在获取时间戳失败时不会追加空的时间戳,比如在原ursa中无法获取时间戳,URL会变成类似/img/k.png?t=,在ursa2中则为/img/k.png;
  • 原ursa在对CSS中带引号的url追加时间戳时会发生追加位置错误,ursa2修复了这一问题;
  • ursa2对存在twig模板语法的url不会尝试加时间戳,因为url是不确定的
  • ursa2支持更灵活的命令行语法,比如:ursa2 build online -ch,这在原ursa中会报错;
  • 原ursa中对于不在static/css根路径中的css文件中的url处理不正确,ursa2修复了这一问题(confirming);
  • @date@替换变量由原来的yyyymmddss格式改为yyyymmddhhiiss
  • ursa2不再支持配置选项的type字段
  • 时间戳格式相同,但值可能不同

ursa2支持包括以下的新特性:

  • 新的管理界面,用于支持分类预览模板和静态资源,支持预览数据文件;
  • 支持less,会将less文件转成同名的css文件;
  • 支持智能搜索所有子模板的JSON合并,可以避免书写很大的JSON数据文件;
  • 支持HTTPS本地开发服务器(quirk);
  • 支持POST模式的proxy(但不支持POST数据字段转发);
  • 分级的日志配置选项;
  • 支持子模板预览(但需要严格的遵循规范);
  • 支持js文件ASCII转义;
  • 支持所有目录的自定义配置,支持模板文件扩展名配置;