Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby:如何从像GitHub';s或比特桶';s_Ruby_Markdown_Redcarpet_Readme - Fatal编程技术网

Ruby:如何从像GitHub';s或比特桶';s

Ruby:如何从像GitHub';s或比特桶';s,ruby,markdown,redcarpet,readme,Ruby,Markdown,Redcarpet,Readme,在GitHub或BitBucket中每个存储库的主页上,它以非常漂亮的格式显示Readme.md 有没有办法用ruby做同样的事情?我已经找到了一些像这样的宝石,但它从来都不好看。我跟踪了红地毯 编辑: 在我尝试之后,同样的事情也发生了。 显示的是: 我想要的是: 我确信这不仅仅是缺少css,因为在3个反引号(````之后,我编写了类似于json或bash的语法,并在第一个图像中编写了它 编辑2: 此代码如下: renderer = Redcarpet::Render::HTML.new(

在GitHub或BitBucket中每个存储库的主页上,它以非常漂亮的格式显示Readme.md

有没有办法用ruby做同样的事情?我已经找到了一些像这样的宝石,但它从来都不好看。我跟踪了红地毯

编辑: 在我尝试之后,同样的事情也发生了。 显示的是: 我想要的是:

我确信这不仅仅是缺少css,因为在3个反引号(````之后,我编写了类似于
json
bash
的语法,并在第一个图像中编写了它

编辑2:

此代码如下:

  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
renderer=red地毯::Render::HTML.new(美化:true)
markdown=red地毯::markdown.new(渲染器、防护代码块:true)
html=markdown.render(源文本)
''+html
生成了以下内容:

Github提供了自己的ruby gem来实现这一点:。
您只需要安装正确的依赖项,就可以了。

您需要启用一些非标准功能

隔离代码块 受保护的代码块是非标准的,默认情况下在大多数标记解析器上不启用(一些旧的解析器根本不支持它们)。根据Red地毯,您希望启用
fenced_code_块
扩展:

  • :fenced_code_块:
    解析fenced代码块,PHP标记样式。用3个或更多的
    ~
    或倒勾分隔的块将被视为代码,无需缩进。可在代码块的开口栏的末端添加可选语言名称
语法突出显示 大多数标记解析器不做代码块的语法高亮显示。而那些这样做的人总是把它作为一种选择。即使如此,您仍然需要提供自己的CSS样式来正确设置代码块的样式。事实证明,《红地毯》确实支持
HTML
呈现程序的
prettify
选项:

  • :prettify:
    将prettyprint类添加到谷歌代码prettify的
    标记中
您将需要从项目中获取Javascript和CSS以包含在页面中

解决方案 最后,您将需要以下内容:

renderer = Redcarpet::Render::HTML.new(prettify: true)
markdown = Redcarpet::Markdown.new(renderer, fenced_code_blocks: true)
html = markdown.render(source_text)

你说的“看起来漂亮”是什么意思?听起来你可能需要定义一些CSS规则。如果这是一个需要定义CSS的问题,那么这可能是See的重复。谢谢你的评论,你引导我进行更多的调查,我编辑了这个问题并添加了更多的信息。啊,你似乎缺少两个部分:围栏代码块是非标准的(您可能需要启用它们或使用不同的标记解析器)和语法突出显示(通常与标记分开处理)。谢谢,你的评论让我进行了更多的调查,我编辑了这个问题并添加了更多的信息。很好,我们已经前进了。它改变了代码的颜色。但是还没有方框…我再次更新了帖子…方框只是CSS规则中定义的背景颜色。例如,在Stackoverflow上,规则
代码{background color:#eff0f1;}
定义代码块的背景色。这种东西不会由标记处理器提供。您需要自己定义它,或者使用某种提供“主题”的框架比如一个静态站点生成器。但是这些问题是不同的,应该单独问。非常感谢Waylan。但是我不能相信没有一行或两行简单的代码可以让它看起来与GitHub或BitBucket完全相同或非常相似。一定有人已经解决了它……如果没有,那么有一个非常好的创业机会。你应该看看()。当然,进行工具推荐超出了Stackoverflow的范围,所以我对这个问题没有进一步的意见。