因此,我让sinatra使用Rdiscount设置来呈现一个具有HAML布局的markdown文件。这些都可以用,但是我想让RDiscount根据我的haml文件中的头文件生成一个目录。我尝试过在sinatra配置中设置它。
set :markdown, :generate_toc => true但这似乎并不管用。
当我像这样呈现markdown时,我也尝试过这样做:
markdown :PAGENAMEHERE, :layout => :'layouts/PAGENAMEHERE', :generate_toc => true这也不起作用。
这有可能吗?如果是,我做错了什么?
发布于 2012-09-25 04:05:50
虽然@three的答案对我帮助很大,但我想展示一个更通用的解决方案:
class MDWithTOC < ::Tilt::RDiscountTemplate
def flags
[:generate_toc]
end
end
Tilt.register MDWithTOC, 'md'在这里,我们覆盖了RDiscount倾斜模板处理程序的标志方法,并将其正则化为md格式的处理程序。
现在您可以像往常一样使用md帮助器,它将生成目录。
发布于 2012-06-16 20:21:21
这应该是可行的:
get '/' do
text = File.read('README.md')
markdown = RDiscount.new(text, :generate_toc)
body = markdown.to_html
haml :home, :layout => true, :locals => {:body => body}
end您可以直接通过RDiscount创建主体,并将其作为普通HTML包含在您的HAML布局中。无论是什么阻止了toc的创建,都应该以本机的方式工作。我通过https://github.com/mjijackson/markdown/blob/master/app.rb找到了解决方案
https://stackoverflow.com/questions/10965644
复制相似问题