- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 redcarpet gem 来标记用户生成的文本,并希望显示外部链接/图像托管的图像。到目前为止,我已经尝试过这样的事情:
def markdown(text)
options = { ... }
extension = { ... }
text.gsub!(/(https?:\/\/[\S]*.jpg)/, '<img src="\1" width="100%">')
renderer = Redcarpet::Render::HTML.new(options)
markdown = Redcarpet::Markdown.new(renderer, extensions)
markdown.render(text).html_safe
end
不过,我想escape_html
或 filter_html
, 因为注入(inject) </div>
, id
s 和类(class)真的会把网站搞得一团糟。这将删除图片标签。
有没有更好的方法来渲染外部图像,同时保持 HTML 安全?
最佳答案
像这样:
require "redcarpet"
require "action_view"
class HTMLBlockCode < Redcarpet::Render::HTML
include ActionView::Helpers::AssetTagHelper
def image(link, title, alt_text)
image_tag(link, title: title, alt: alt_text, width: "100%")
end
end
def markdown(text)
renderer = HTMLBlockCode.new
text.gsub!(/(https?:\/\/[\S]*.jpg)/, '![](\1)')
markdown = Redcarpet::Markdown.new(renderer)
markdown.render(text)
end
text = File.read("rc_test.md")
puts markdown(text)
这会在 RedCarpet 上安装一个自定义图像渲染器,它会向您的图像元素添加一个 width="100%"
属性。它还在 gsub
调用中将裸图像链接转换为 markdown 可识别的图像链接。这导致嵌入的图像 url 被呈现如下:
<img width="100%" src="http://www.gettyimages.pt/gi-resources/images/Homepage/Hero/PT/PT_hero_42_153645159.jpg" />
而且您不必以任何方式更改您的 markdown 文档;它自然美味。
关于ruby-on-rails - Markdown 外部图像链接与 Redcarpet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311061/
我正在关注 Syntax Highlighting Revised 的 RailsCasts 剧集.我将我的 ApplicationHelper 更新为如下所示: require 'redcarpet
我正在尝试使用 Redcarpet 获得语法高亮显示工作 我的appliaction_helper.rb: module ApplicationHelper def markdown(text)
在我的 rails3 应用程序中,我想使用 redcarpet 来处理用户的帖子和用户评论部分。因此,我想扩展 redcarpet 以支持将 @username 转换为指向我网站上用户的链接。我知道
我想知道如何使用 Redcarpet 的 :with_toc_data用于 Markdown 的选项 Middleman (基于 Sinatra 的静态站点生成器)。 我们目前的 config.rb
我正在使用 redcarpet gem 来标记用户生成的文本,并希望显示外部链接/图像托管的图像。到目前为止,我已经尝试过这样的事情: def markdown(text) options =
我正在尝试在我的 Rails 应用程序中实现 Markdown ,但我遇到了 Redcarpet这似乎是我想使用的。我已经将 gem 添加到我的 Gemfile 中,并且我已经从 github 克隆了
我正在尝试使用他们的 :redcarpet 过滤器过滤 Nanoc 3 中的内容。我的代码如下所示(来自规则文件): compile '/posts/*/' do filter :redcar
我无法获得换行符 ,即使内容中有一行包含空格和换行符。有什么方法可以在 redcarpet 中启用。 http://daringfireball.net/projects/markdown/synta
我正在编写一个 Ruby 应用程序,它目前使用 redcarpet渲染 Markdown。 我需要从文本中去除 Markdown 标记。有什么简单的方法吗? 最佳答案 是的,可以使用 Redcarpe
我目前正在尝试为 Rails 项目安装 Redcarpet gem。 问题是我前几天升级到Mavericks OS后安装不了,但我不确定是不是换了OS有什么关系。 这是我遇到的错误: ERROR:
有没有办法使用 Redcarpet 或 Bluecloth,这样当它插入 Markdown 时就不会生成任何标题? 例如: #header 1 产量: header 1 header 1 (prefe
我正在尝试使用 Redcarpet 渲染这样的表格 | header 1 | header 2 | | -------- | -------- | | cell 1 | cell 2 | |
使用杰基尔 2.0.3,我最初配置了 _config.yml markdown: kramdown 并且我能够在我的 example.md 中添加如下目录: --- layout: page titl
因此,我一直在利用中间人开发我自己的博客/网站,但我遇到了一些通过 redcarpet 使用围栏代码的障碍。无论我做什么,我似乎都会反复遇到同样的问题。嗯,图片值一千字,你可以在下面看到我的问题 因此
我编写了一个 Jekyll 生成器来解析 markdown 并将生成的 HTML 编码为 JSON。问题是,我的代码块没有被解析。我认为这是因为我用 Redcarpet 风格编写了 markdown,
我在 application_helper.rb 中有一个看起来像这样的 Markdown 助手。 你会如何为这样的事情编写测试?另外,这是从 Markdown 生成简单 HTML 的最佳方式吗? 谢
我正在尝试让代码突出显示适用于使用 jekyll 构建的简单博客。我希望能够在用 markdown 编写的帖子中突出显示代码,因此我启用了 redcarpet 作为标记语言。这一切正常,代码在 中格
我的 slate 有以下 Markdown 优惠项目: --- title: API Reference language_tabs: - http - javascript search:
我正在关注this tutorial,但始终无法说出“Redcarpet:Module的未定义方法'new'”。我的Gemfile中有 gem “redcarpet”。失败的那段代码: Redcarp
我正在尝试使用 Gollumn Wiki ,所以我可以编辑我的 GitHub Wiki,但我似乎无法让它工作。 我在 Ubuntu 11.10,64 位。 我也用 Ruby 1.9 试过这个,也是同样
我是一名优秀的程序员,十分优秀!