在 Rails 中将 truncate 与 Redcarpet markdown 结合使用:链接无效
Combining truncate with Redcarpet markdown in Rails: Links don't work
我在 Rails 博客应用程序中使用 Redcarpet 进行语法高亮显示。
在我的 posts/index.html.erb 中,我想截断博客 post 以预览前几句话(或段落)。用户应该能够单击截断 post 末尾的 "read more" 以阅读整个博客 post。不幸的是,"read more" link 不能与 Redcarpet 一起使用(当我不使用我的降价方法(见下文)时,link 工作正常)。我该如何解决?我必须在 Redcarpet 中使用其他选项吗?
我在 /helpers/application_helper.rb 中使用 Redcarpet 的降价方法:
def markdown(content)
renderer = HTMLwithPygments.new(hard_wrap: true, filter_html: true)
options = {
autolink: true,
no_intra_emphasis: true,
disable_indented_code_blocks: true,
fenced_code_blocks: true,
lax_html_blocks: true,
strikethrough: true,
superscript: true
}
Redcarpet::Markdown.new(renderer, options).render(content).html_safe
end
/views/posts/index.html.erb
<%= markdown (truncate(post.content,
length: 600,
separator: ' ',
omission: '... ') {
link_to "read more", post
}) %>
顺便说一下:我正在遍历 @posts 变量,所以 "post.content" 给我一个 post 的内容,而 "post" 给我 post的路径。
"read more" 文本正在显示,但您无法单击它。当我离开 "markdown" 方法时,"read more"-link 工作正常。
如何使用 "markdown" 方法创建 link?
虽然 link 不是 Markdown,它是 HTML。也许将其更改为 Markdown?
<%= markdown(truncate(post.content, length: 600,
separator: ' ', omission: '... ') {
"[read more](#{post_path(post)})"
}) %>
如果不对,请将 post_path
更改为合适的内容。
我在 Rails 博客应用程序中使用 Redcarpet 进行语法高亮显示。
在我的 posts/index.html.erb 中,我想截断博客 post 以预览前几句话(或段落)。用户应该能够单击截断 post 末尾的 "read more" 以阅读整个博客 post。不幸的是,"read more" link 不能与 Redcarpet 一起使用(当我不使用我的降价方法(见下文)时,link 工作正常)。我该如何解决?我必须在 Redcarpet 中使用其他选项吗?
我在 /helpers/application_helper.rb 中使用 Redcarpet 的降价方法:
def markdown(content)
renderer = HTMLwithPygments.new(hard_wrap: true, filter_html: true)
options = {
autolink: true,
no_intra_emphasis: true,
disable_indented_code_blocks: true,
fenced_code_blocks: true,
lax_html_blocks: true,
strikethrough: true,
superscript: true
}
Redcarpet::Markdown.new(renderer, options).render(content).html_safe
end
/views/posts/index.html.erb
<%= markdown (truncate(post.content,
length: 600,
separator: ' ',
omission: '... ') {
link_to "read more", post
}) %>
顺便说一下:我正在遍历 @posts 变量,所以 "post.content" 给我一个 post 的内容,而 "post" 给我 post的路径。
"read more" 文本正在显示,但您无法单击它。当我离开 "markdown" 方法时,"read more"-link 工作正常。
如何使用 "markdown" 方法创建 link?
虽然 link 不是 Markdown,它是 HTML。也许将其更改为 Markdown?
<%= markdown(truncate(post.content, length: 600,
separator: ' ', omission: '... ') {
"[read more](#{post_path(post)})"
}) %>
如果不对,请将 post_path
更改为合适的内容。