W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
有些語言存在多個實現(xiàn),為了指定使用的那種實現(xiàn) (或者為了線程安全),可以簡單的提前?require
?:
Dependency: haml
File Extension: .haml
Example: haml :index, :format => :html5
需要引入 haml gem/library以渲染 HAML 模板:
# 你需要在你的應(yīng)用中引入 haml
require 'haml'
get '/' do
haml :index
end
Dependency: erubis or erb (included in Ruby)
File Extensions: .erb, .rhtml or .erubis (Erubis only)
Example: erb :index
Dependency: builder
File Extension: .builder
Example: builder { |xml| xml.em "hi" }
builder 接受內(nèi)聯(lián)模板的代碼塊。
Dependency: nokogiri
File Extension: .nokogiri
Example: nokogiri { |xml| xml.em "hi" }
同樣接受內(nèi)聯(lián)模板的代碼塊,看起來也是用來構(gòu)建 xml 的應(yīng)用的。
Dependency: sass
File Extension: .sass
Example: sass :stylesheet, :style => :expanded
Dependency: sass
File Extension: .scss
Example: scss :stylesheet, :style => :expanded
Scss 的選項 可以通過 Sinatra 選項全局設(shè)定,參考選項和配置, 也可以在個體的基礎(chǔ)上覆蓋。
Dependency: less
File Extension: .less
Example: less :stylesheet
Dependency liquid
File Extension .liquid
Example liquid :index, :locals => { :key => 'value' }
Liquid 模板中邏輯非常的弱,所以,其強制將邏輯放置到控制器中,從而嚴(yán)格遵尋 MVC 框架。Liquid 模板中不用調(diào)用 Ruby 的方法,總是需要將局部變量傳遞給模板。
Github Pages 就是利用 Liquid 的模板來設(shè)置頁面布局,從而保證了頁面的安全性。簡單說,給你把軟刀,能用且安全。
Dependency Anyone of: RDiscount, RedCarpet, BlueCloth, kramdown, maruku
File Extensions .markdown, .mkd and .md
Example markdown :index, :layout_engine => :erb
既不可能在 Markdown 中調(diào)用方法,也不能傳遞局部變量給它。通常用來組合其他的渲染引擎 (比如,jekyll 就是組合了 Liquid 和 Markdown。
erb :overview, :locals => { :text => markdown(:introduction) }
Note that you may also call the markdown method from within other templates:
注意,可以從其他模板中調(diào)用?markdown
?方法:
%h1 Hello From Haml!
%p= markdown(:greetings)
既然你不能在 Markdown 中調(diào)用 Ruby,你不能使用 Markdown 編寫的布局。不過,使用其他渲染引擎作為模版的布局是可能的,通過傳遞:layout_engine 選項:
get '/' do
markdown :index, :layout_engine => :erb
end
這將會調(diào)用 ./views/index.md 并使用 ./views/layout.erb 作為布局。
請記住你可以全局設(shè)定這個選項:
set :markdown, :layout_engine => :haml, :layout => :post
get '/' do
markdown :index
end
這將會調(diào)用 ./views/index.markdown (和任何其他的 Markdown 模版) 并使用 ./views/post.haml 作為布局。
也可用 BlueCloth 而不是 RDiscount 來解析 Markdown 文件:
require 'bluecloth'
Tilt.register 'markdown', BlueClothTemplate
Tilt.register 'mkd', BlueClothTemplate
Tilt.register 'md', BlueClothTemplate
get '/' do
markdown :index
end
Dependency CoffeeScript以及執(zhí)行 js 的方式
File Extension .coffee
Example coffee :index
參考https://github.com/josh/ruby-coffee-script 獲取更新的選項,CoffeeScript 模版的使用樣例:
# 需要在你的應(yīng)用中引入coffee-script
require 'coffee-script'
get '/application.js' do
coffee :application #調(diào)用的是 ./views/application.coffee
end
Textile 模板 : RedCloth
RDoc 模板 : [RDoc]
以及其他諸多模板:AsciiDoc ,Radius ,Markaby ,RABL ,Slim ,Creole ,MediaWiki ,CoffeeScript ,Stylus ,Yajl ,WLang。不再一一列舉。
注:老版的中文翻譯,對模板部分介紹的比較詳細(xì),這里摘錄如下:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: