Merge pull request #6 from benbalter/proper-escapes
Properly escape quotes in titles and descriptions
This commit is contained in:
		
						commit
						a355e6ef74
					
				| 
						 | 
				
			
			@ -5,7 +5,16 @@ module Jekyll
 | 
			
		|||
 | 
			
		||||
    def render(context)
 | 
			
		||||
      @context = context
 | 
			
		||||
      Liquid::Template.parse(template_contents).render!(payload, info).gsub(/[\n\s]{2,}/, "\n")
 | 
			
		||||
      output = Liquid::Template.parse(template_contents).render!(payload, info)
 | 
			
		||||
 | 
			
		||||
      # Minify
 | 
			
		||||
      output.gsub!(/[\n\s]{2,}/, "\n")
 | 
			
		||||
 | 
			
		||||
      # Encode smart quotes. See https://github.com/benbalter/jekyll-seo-tag/pull/6
 | 
			
		||||
      output.gsub!("\u201c", "“")
 | 
			
		||||
      output.gsub!("\u201d", "”")
 | 
			
		||||
 | 
			
		||||
      output
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    private
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,14 @@ describe Jekyll::SeoTag do
 | 
			
		|||
  it "escapes titles" do
 | 
			
		||||
    site = site({"title" => 'Jekyll & "Hyde"'})
 | 
			
		||||
    context = context({ :site => site })
 | 
			
		||||
    expect(subject.render(context)).to match(/<title>Jekyll & “Hyde”<\/title>/)
 | 
			
		||||
    expect(subject.render(context)).to match(/<title>Jekyll & “Hyde”<\/title>/)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  it "escapes descriptions" do
 | 
			
		||||
    site = site({"description" => 'Jekyll & "Hyde"'})
 | 
			
		||||
    context = context({ :site => site })
 | 
			
		||||
    expected = /<meta name="description" content="Jekyll & “Hyde”" \/>/
 | 
			
		||||
    expect(subject.render(context)).to match(expected)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  it "uses the page description" do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue