Merge pull request #6 from benbalter/proper-escapes

Properly escape quotes in titles and descriptions
This commit is contained in:
Ben Balter 2015-11-25 15:25:33 -06:00
commit a355e6ef74
2 changed files with 18 additions and 2 deletions

View File

@ -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

View File

@ -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 &amp; “Hyde”<\/title>/)
expect(subject.render(context)).to match(/<title>Jekyll &amp; &ldquo;Hyde&rdquo;<\/title>/)
end
it "escapes descriptions" do
site = site({"description" => 'Jekyll & "Hyde"'})
context = context({ :site => site })
expected = /<meta name="description" content="Jekyll &amp; &ldquo;Hyde&rdquo;" \/>/
expect(subject.render(context)).to match(expected)
end
it "uses the page description" do