我在Rails博客应用程序中使用Redcarpet进行语法高亮显示。
In my posts/index.html。不过,我想把这篇博文删节一下,以便预览前几个句子(或段落)。用户应该能够点击"阅读更多"在截断后的帖子结束阅读整个博客文章。不幸的是,"阅读更多"链接不工作与红地毯(当我不使用我的降价方法(见下文)链接工作良好)。我怎样才能解决这个问题呢?我必须在红毯上使用其他选项吗?
我在/helpers/application_helper中的markdown方法。
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
/视图/文章/index.html.erb
<%= markdown (truncate(post.content,
length: 600,
separator: ' ',
omission: '... ') {
link_to "read more", post
}) %>
顺便说一下:我正在循环@posts变量,所以"post"。"内容"给我一个帖子的内容,"帖子"给我这个帖子的路径。
"阅读更多"文本显示,但你不能点击它。当我把"markdown"方法去掉时,"read more"链接工作正常。
如何使用我的"markdown"方法创建链接?
这个链接不是Markdown,它是HTML。不如改成Markdown吧?
<%= markdown(truncate(post.content, length: 600,
separator: ' ', omission: '... ') {
"[read more](#{post_path(post)})"
}) %>
将post_path
更改为合适的内容