在GitHub或BitBucket中每个存储库的主页面上,它以非常漂亮的格式显示Readme.md。
有没有办法与红宝石做同样的事情?我已经发现了一些像Redcarpet这样的宝石,但它看起来并不漂亮。我已经关注了Redcarpet this instructions。
编辑: 在我尝试Github's markup ruby gem之后,同样的事情正在发生。 显示的是: 我想要的是这个:
而且我确定它不仅缺少css,因为经过3次反引号(```)后,我写了json
或bash
这样的语法,并在第一张图片中它是写的。
EDIT2:
这段代码:
renderer = Redcarpet::Render::HTML.new(prettify: true)
markdown = Redcarpet::Markdown.new(renderer, fenced_code_blocks: true)
html = markdown.render(source_text)
'<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>'+html
答案 0 :(得分:0)
Github提供了自己的ruby gem:https://github.com/github/markup。 您只需要安装正确的依赖项,就可以了。
答案 1 :(得分:0)
您需要启用一些非标准功能。
受防护的代码块是非标准的,默认情况下不会在大多数Markdown解析器上启用(一些较旧的代码块根本不支持它们)。根据Redcarpet的docs,您要启用fenced_code_blocks
扩展程序:
:fenced_code_blocks:
解析围栏代码块,PHP-Markdown样式。用3个或更多~
或反引号分隔的块将被视为代码,无需缩进。可以在代码块的开始栅栏的末尾添加可选的语言名称。
大多数Markdown解析器不会对代码块进行语法高亮显示。而那些总是这样做的人。即便如此,您仍然需要提供自己的CSS样式才能正确设置代码块样式。事实证明,Redcarpet确实包含对prettify
渲染器的HTML
选项的支持:
:prettify:
为Google代码美化添加了<code>
代码的漂亮印刷版。
您需要从google-code-prettify项目中获取Javascript和CSS以包含在您的网页中。
最后你需要这样的东西:
renderer = Redcarpet::Render::HTML.new(prettify: true)
markdown = Redcarpet::Markdown.new(renderer, fenced_code_blocks: true)
html = markdown.render(source_text)