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? 也是合理的文件擴(kuò)展名)。

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

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

請(qǐng)注意你也可以從其他模板中調(diào)用 markdown 方法:

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

既然你不能在 Markdown 中調(diào)用 Ruby,你不能使用 Markdown 編寫的布局。 不過(guò),使用其他填充引擎作為模版的布局是可能的, 通過(guò)傳遞:?layout_engine?選項(xiàng):

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

這將會(huì)調(diào)用 ?./views/index.md? 并使用 ?./views/layout.erb? 作為布局。

請(qǐng)記住你可以全局設(shè)定這個(gè)選項(xiàng):

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

get '/' do
  markdown :index
end

這將會(huì)調(diào)用 ?./views/index.markdown? (和任何其他的 Markdown 模版) 并使用 ?./views/post.haml? 作為布局。

也可能使用 BlueCloth 而不是 RDiscount 來(lái)解析 Markdown 文件:

require 'bluecloth'

Tilt.register 'markdown', BlueClothTemplate
Tilt.register 'mkd',      BlueClothTemplate
Tilt.register 'md',       BlueClothTemplate

get '/' do
  markdown :index
end

使用 BlueCloth 來(lái)填充 ?./views/index.md? 。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)