From c064aed77b4e28d6e63adc940066ad793b82420b Mon Sep 17 00:00:00 2001
From: Stan Hu <stanhu@gmail.com>
Date: Wed, 17 Mar 2021 17:10:54 -0700
Subject: [PATCH] Remove Kramdown patch and update to v2.3.1 gem

As of https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56750,
Markdown should no longer be rendered through Kramdown for Wiki
pages. The monkey patch can be removed with Kramdown v2.3.1.

Diff:
https://my.diffend.io/gems/kramdown/2.3.0/2.3.1
---
 Gemfile                                       |  2 +-
 Gemfile.lock                                  |  4 +--
 .../unreleased/sh-remove-kramdown-patch.yml   |  5 ++++
 config/initializers/kramdown_patch.rb         | 25 -------------------
 .../kramdown/kramdown_spec.rb}                |  2 +-
 5 files changed, 9 insertions(+), 29 deletions(-)
 create mode 100644 changelogs/unreleased/sh-remove-kramdown-patch.yml
 delete mode 100644 config/initializers/kramdown_patch.rb
 rename spec/{initializers/kramdown_patch_spec.rb => lib/kramdown/kramdown_spec.rb} (92%)

diff --git a/Gemfile b/Gemfile
index 81294ebe39e9c..cd8bdeca8133c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -150,7 +150,7 @@ gem 'deckar01-task_list', '2.3.1'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
 gem 'commonmarker', '~> 0.21'
-gem 'kramdown', '~> 2.3.0'
+gem 'kramdown', '~> 2.3.1'
 gem 'RedCloth', '~> 4.3.2'
 gem 'rdoc', '~> 6.1.2'
 gem 'org-ruby', '~> 0.9.12'
diff --git a/Gemfile.lock b/Gemfile.lock
index 063ebc4424bdd..6c714c0d5dda3 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -669,7 +669,7 @@ GEM
     kgio (2.11.3)
     knapsack (1.17.0)
       rake
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -1471,7 +1471,7 @@ DEPENDENCIES
   jwt (~> 2.1.0)
   kaminari (~> 1.0)
   knapsack (~> 1.17)
-  kramdown (~> 2.3.0)
+  kramdown (~> 2.3.1)
   kubeclient (~> 4.9.1)
   lefthook (~> 0.7)
   letter_opener_web (~> 1.3.4)
diff --git a/changelogs/unreleased/sh-remove-kramdown-patch.yml b/changelogs/unreleased/sh-remove-kramdown-patch.yml
new file mode 100644
index 0000000000000..86fc282d36333
--- /dev/null
+++ b/changelogs/unreleased/sh-remove-kramdown-patch.yml
@@ -0,0 +1,5 @@
+---
+title: Remove Kramdown patch and update to v2.3.1 gem
+merge_request: 56917
+author:
+type: fixed
diff --git a/config/initializers/kramdown_patch.rb b/config/initializers/kramdown_patch.rb
deleted file mode 100644
index 5cb769cec242c..0000000000000
--- a/config/initializers/kramdown_patch.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# frozen_string_literal: true
-#
-# This pulls in https://github.com/gettalong/kramdown/pull/708 for kramdown v2.3.0.
-# Remove this file when that pull request is merged and released.
-require 'kramdown/converter'
-require 'kramdown/converter/syntax_highlighter/rouge'
-
-module Kramdown::Converter::SyntaxHighlighter
-  module Rouge
-    def self.formatter_class(opts = {})
-      case formatter = opts[:formatter]
-      when Class
-        formatter
-      when /\A[[:upper:]][[:alnum:]_]*\z/
-        ::Rouge::Formatters.const_get(formatter, false)
-      else
-        # Available in Rouge 2.0 or later
-        ::Rouge::Formatters::HTMLLegacy
-      end
-    rescue NameError
-      # Fallback to Rouge 1.x
-      ::Rouge::Formatters::HTML
-    end
-  end
-end
diff --git a/spec/initializers/kramdown_patch_spec.rb b/spec/lib/kramdown/kramdown_spec.rb
similarity index 92%
rename from spec/initializers/kramdown_patch_spec.rb
rename to spec/lib/kramdown/kramdown_spec.rb
index 49dda9252bbfa..986a8d9959e17 100644
--- a/spec/initializers/kramdown_patch_spec.rb
+++ b/spec/lib/kramdown/kramdown_spec.rb
@@ -2,7 +2,7 @@
 
 require 'spec_helper'
 
-RSpec.describe 'Kramdown patch for syntax highlighting formatters' do
+RSpec.describe 'Ensure kramdown detects invalid syntax highlighting formatters' do
   subject { Kramdown::Document.new(options + "\n" + code).to_html }
 
   let(:code) do
-- 
GitLab