Use kramdown as the default Markdown engine
Kramdown is much more powerful from what we have now, and it will help us have nice things like applying custom CSS rules to paragraphs or automatically generate tables of contents.
For GitLab itself, there isn't an immediate benefit, besides for the docs and our help page. We are already using it in our about.gitlab.comand we plan to use it in docs.gitlab.com in the future. The question is how easy this will be and will it break other things?
grep -nR "Redcarpet" .
./spec/features/markdown_spec.rb:16: # -> Redcarpet::Render::GitlabHTML converts Markdown to HTML
./spec/features/markdown_spec.rb:47: describe 'Redcarpet extensions' do
./spec/fixtures/markdown.md.erb:9: GitLab uses [Redcarpet](http://git.io/ld_NVQ) to parse all Markdown into
./spec/lib/banzai/pipeline/description_pipeline_spec.rb:5: # When we pass HTML to Redcarpet, it gets wrapped in `p` tags...
./doc/markdown/markdown.md:33: _GitLab uses the [Redcarpet Ruby library][redcarpet] for Markdown processing._
./doc/markdown/markdown.md:121: markdown = Redcarpet.new("Hello World!")
./doc/markdown/markdown.md:147: markdown = Redcarpet.new("Hello World!")
./doc/markdown/markdown.md:614: [redcarpet]: https://github.com/vmg/redcarpet "Redcarpet website"
./lib/banzai/filter/markdown_filter.rb:33: renderer = Redcarpet::Render::HTML.new
./lib/banzai/filter/markdown_filter.rb:34: Redcarpet::Markdown.new(renderer, redcarpet_options)
./lib/banzai/filter/syntax_highlight_filter.rb:8: include Rouge::Plugins::Redcarpet
./lib/banzai/filter/syntax_highlight_filter.rb:36: # Override Rouge::Plugins::Redcarpet#rouge_formatter