Revert "FEATURE: Use configured quotation marks in fancy topic title"

Revert “FEATURE: Use configured quotation marks in fancy topic title”

This reverts most of commit ce8e09963903fcad725002b2d42b54b4af5d0930.

The rake task to update fancy topic titles is still there, because that’s useful even without this feature.

diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb
index 160d19e..f0be63c 100644
--- a/app/models/site_setting.rb
+++ b/app/models/site_setting.rb
@@ -3,7 +3,6 @@
 require 'site_setting_extension'
 require_dependency 'global_path'
 require_dependency 'site_settings/yaml_loader'
-require 'htmlentities'
 
 class SiteSetting < ActiveRecord::Base
   extend GlobalPath
@@ -123,7 +122,6 @@ class SiteSetting < ActiveRecord::Base
     @attachment_content_type_blacklist_regex = nil
     @attachment_filename_blacklist_regex = nil
     @unicode_username_whitelist_regex = nil
-    @pretty_quote_entities = nil
   end
 
   def self.attachment_content_type_blacklist_regex
@@ -139,22 +137,6 @@ class SiteSetting < ActiveRecord::Base
       ? Regexp.new(SiteSetting.unicode_username_character_whitelist) : nil
   end
 
-  def self.pretty_quote_entities
-    @pretty_quote_entities ||= begin
-      htmlentities = HTMLEntities.new
-      quotation_marks = SiteSetting.markdown_typographer_quotation_marks
-        .split("|")
-        .map { |quote| htmlentities.encode(quote, :basic, :named, :decimal) }
-
-      {
-        double_left_quote: quotation_marks[0],
-        double_right_quote: quotation_marks[1],
-        single_left_quote: quotation_marks[2],
-        single_right_quote: quotation_marks[3]
-      }
-    end
-  end
-
   # helpers for getting s3 settings that fallback to global
   class Upload
     def self.s3_cdn_url
diff --git a/app/models/topic.rb b/app/models/topic.rb
index 4fd4c67..648da51 100644
--- a/app/models/topic.rb
+++ b/app/models/topic.rb
@@ -336,7 +336,7 @@ class Topic < ActiveRecord::Base
 
   def self.fancy_title(title)
     return unless escaped = ERB::Util.html_escape(title)
-    fancy_title = Emoji.unicode_unescape(HtmlPrettify.render(escaped, SiteSetting.pretty_quote_entities))
+    fancy_title = Emoji.unicode_unescape(HtmlPrettify.render(escaped))
     fancy_title.length > Topic.max_fancy_title_length ? escaped : fancy_title
   end
 
diff --git a/lib/html_prettify.rb b/lib/html_prettify.rb
index c339091..db3bd14 100644
--- a/lib/html_prettify.rb
+++ b/lib/html_prettify.rb
@@ -10,8 +10,8 @@
 #
 
 class HtmlPrettify < String
-  def self.render(html, entities = {})
-    new(html, [2], entities).to_html
+  def self.render(html)
+    new(html).to_html
   end
 
   # Create a new RubyPants instance with the text in +string+.
diff --git a/spec/models/topic_spec.rb b/spec/models/topic_spec.rb
index 510146a..26dda3f 100644
--- a/spec/models/topic_spec.rb
+++ b/spec/models/topic_spec.rb
@@ -390,16 +390,6 @@ describe Topic do
         expect(topic.fancy_title).to eq(long_title)
       end
 
-      it "uses the configured quote entities" do
-        SiteSetting.markdown_typographer_quotation_marks = "„|“|‚|‘"
-        topic.title = %q|"Weißt du", sagte er, "was 'Discourse' ist?"|
-        expect(topic.fancy_title).to eq('&bdquo;Weißt du&ldquo;, sagte er, &bdquo;was &sbquo;Discourse&lsquo; ist?&ldquo;')
-
-        SiteSetting.markdown_typographer_quotation_marks = "«\u00A0|\u00A0»|‹\u00A0|\u00A0›"
-        topic.title = '"Qui vivra verra"'
-        expect(topic.fancy_title).to eq('&laquo;&nbsp;Qui vivra verra&nbsp;&raquo;')
-      end
-
       context 'readonly mode' do
         before do
           Discourse.enable_readonly_mode

GitHub sha: 7e69c5cc

1 Like

This commit has been mentioned on Discourse Meta. There might be relevant details there:

https://meta.discourse.org/t/quotes-in-post-titles-converted-to-a-different-character/123227/5