是否可以将 Redcarpet 扩展为从链接自动嵌入 youtube 视频?

Posted

技术标签:

【中文标题】是否可以将 Redcarpet 扩展为从链接自动嵌入 youtube 视频?【英文标题】:Is it possible to extend Redcarpet to auto embed youtube videos from a link? 【发布时间】:2012-09-08 21:20:07 【问题描述】:

是否可以使用Redcarpet Markdown 库自动嵌入来自 youtube 共享链接的 youtube 视频?如果是这样,有人对如何去做有任何想法吗? (我使用的是 Ruby/Rails 3.2)

【问题讨论】:

【参考方案1】:

当然可以,你可以重写 .to_html 方法,但你可能甚至不需要扩展它,你可以这样做;

# my regex is a little rusty
@html = Redcarpet.new(@article.content).to_html
@html = @html.gsub(/\[youtube\s+(.*?)\]/, "....actual html you want in here with youtube id \\1 ")

这将用您的自定义 html 替换 [youtube YOUTUBE_ID] 的任何实例。

【讨论】:

谢谢亚当,虽然我更多地考虑像 auto_html github.com/dejan/auto_html 这样的东西,其中转换的是 url 而不是标签。因此,我正在考虑将 auto_html 与 Redcarpet 一起使用。 太好了,那会奏效。您也可以将上面的正则表达式更改为 @html.gsub(/http:\/\/www\.youtube\.com\/watch\?v=(.*?)\s/, "....actual html $1") 我在做类似的事情时发现了这个。我只是想指出我需要转义正则表达式中的括号。 /\[youtube\s+(.*?)\]/

以上是关于是否可以将 Redcarpet 扩展为从链接自动嵌入 youtube 视频?的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 - 将控制器扩展为现有模块

如何在Python中将列表扩展为函数参数[重复]

UITextView 使用自动布局动态扩展为滚动视图内的文本

我可以将 Enum 扩展为 Enum.GetValues() 吗? [复制]

将矩阵扩展为块矩阵 - 索引问题

如果NSString在Swift中是Numeric,则扩展为测试