codecamp

Sinatra Textile 模板

需要引入 ​RedCloth​ gem/library 以填充 Textile 模板:

# 在你的应用中引入redcloth
require "redcloth"

get '/' do
  textile :index
end

这里调用的是 ​./views/index.textile​。

在 textile 中是不可以调用方法的,也不可以传递 locals 给它。 你因此一般会结合其他的填充引擎来使用它:

erb :overview, :locals => { :text => textile(:introduction) }

请注意你也可以从其他模板中调用​textile​方法:

%h1 Hello From Haml!
%p= textile(:greetings)

既然你不能在 Textile 中调用 Ruby,你不能使用 Textile 编写的布局。 不过,使用其他填充引擎作为模版的布局是可能的, 通过传递:​layout_engine​选项:

get '/' do
  textile :index, :layout_engine => :erb
end

这将会填充​ ./views/index.textile​ 并使用​ ./views/layout.erb​ 作为布局。

请记住你可以全局设定这个选项:

set :textile, :layout_engine => :haml, :layout => :post

get '/' do
  textile :index
end

这将会调用 .​/views/index.textile​ (和任何其他的 Textile 模版) 并使用 ​./views/post.haml​ 作为布局。


Sinatra Markdown 模板
Sinatra RDoc 模板
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Sinatra 配置

Sinatra 错误处理

Sinatra Sinatra::Base - 中间件,程序库和模块化应用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }