Sinatra Markdown 模板

2023-12-19 16:15 更新

需要引入 ?rdiscount? gem/library 以填充 Markdown 模板:

# 需要在你的應(yīng)用中引入rdiscount
require "rdiscount"

get '/' do
  markdown :index
end

這里調(diào)用的是 ?./views/index.markdown? (?md? 和 ?mkd? 也是合理的文件擴展名)。

在 markdown 中是不可以調(diào)用方法的,也不可以傳遞 locals 給它。 你因此一般會結(jié)合其他的填充引擎來使用它:

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

請注意你也可以從其他模板中調(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

使用 BlueCloth 來填充 ?./views/index.md? 。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號