Sinatra Markdown 模板

2023-12-19 16:15 更新

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

# 需要在你的应用中引入rdiscount
require "rdiscount"

get '/' do
  markdown :index
end

这里调用的是 ​./views/index.markdown​ (​md​ 和 ​mkd​ 也是合理的文件扩展名)。

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

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

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

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

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

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

这将会调用 ​./views/index.md​ 并使用 ​./views/layout.erb​ 作为布局。

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

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

get '/' do
  markdown :index
end

这将会调用 ​./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​ 。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号