我的代码如下:(环境 ruby 1.8.7 rails 2.3.14) application_helper.rb:
require 'redcarpet'
require 'pygments'
module ApplicationHelper
class HTMLwithPygments < Redcarpet::Render::HTML
def block_code(code, language)
Pygments.highlight(code, :lexer => language)
end
end
def markdown(text)
renderer = HTMLwithPygments.new(:hard_wrap => true, :with_toc_data => true)
options = {
:autolink => true,
:no_intra_emphasis => true,
:fenced_code_blocks => true,
:lax_html_blocks => true,
:strikethrough => true,
:superscript => true,
:lax_spacing => true
}
Redcarpet::Markdown.new(renderer, options).render(text).html_safe
end
end
view:
<%= markdown(File.read(@filename)) %>
文件是本地的静态 md 文件:
- [Header Files](#header-files)
...
# Header Files
...
但是最终生成的 html 如下:
<a href="#header-files">Header Files</a>
....
<h1 id="toc_1">Header Files</h1>
问题就出在超连接里是#header-files,而 h1 里是 toc_1 请问我的 md 文件里 header-files 后面应该写成 toc_1 才行么? 但这个文件是从 github 下 clone 下来的,我看 github 生成的是:
<h1>
<a class="anchor" href="#header-files" name="header-files">
<span class="octicon octicon-link"></span>
</a>
Header Files
</h1>
这个 github 特殊处理了么?还是有什么参数直接加一下就好?