网站URL

网站所有的URL都是通过模板的文件路径决定的。
假设某个网站的模板文件路径为template/post.html, 默认对应的是http://domain.com/post

URL匹配的规则

下面为了方便说明,模板文件名的后缀为.html, 实际上 .jade的文件后缀效果是等同的。
/template/folder/index.html的效果与/template/folder.html等同。

如果URL是以.txt .mk .md .makrodnw结尾的,则系统会先尝试去寻找对应路径的文本文档,并用template/markdown.html进行渲染;如果这个模板不存在,则继续使用正常的路由逻辑。

  1. step1, 访问网站首页时, 匹配index.html模板.
  2. step2, 完整匹配URL, 比如访问/path/sub_path匹配/path/sub_path.html.
  3. step3, 仅匹配URL的第一部分, 比如访问/first_path/sub_path, 但是/first_path/sub_path.html不存在,则会尝试匹配first_path.html.
  4. step4, 如果前三次都无法匹配,则会尝试匹配I-Love-FarBox.html(慎用,黑魔法专用).
  5. step5, 以上匹配都失败后,则使用404.html作为Not Found的页面。

注: URL的第一部分, 默认是指第一个/之前的, 如果URL中存在~~, 则取~~前的字符作为第一部分.

/path/sub_path 的第一部分是 `path`
/path/sub_path/~~hello/world 的第一部分则是`path/sub_path`

混合路径的URL

如果模板文件处于template目录内,那么文件名中有+连接多个关键词,可以实现一个页面匹配多个URL的效果。

比如template/index+tags+archive.jadetemplate/index+tags+archive.html能同时处理首页/tags/archive这三个URL。

注意事项

  1. 文件路径中不要出现. #以及非英文字符.
  2. 不要试图使用index.html完成整个网站的route匹配
  3. /t/*是系统URL,映射到/template/;所有/template/目录下的静态资源,使用/template/<path>来获取。

Scss/Sass/Less/CoffeeScript的原生支持

比如template/styles.scss,只有访问http://yoursite.com/template/style.scss?format=raw的时候,才会保留源格式;其它都是自动编译为CSS进行呈现。

对LESS格式的文件也是同样支持的,但是除了基本的层级关系、变量应用外,对LESS的支持相对有限,比如对应extend的写法并不支持。

另外需要注意的是,编译的过程是忽略所有include/import类似的引用逻辑。

同样,FarBox也支持后缀为.coffee的Coffee Script脚本的自动编译。