Skip to content

Commit

Permalink
Use default image as og:image URL.
Browse files Browse the repository at this point in the history
  • Loading branch information
mblayman committed Jan 23, 2017
1 parent d139c7f commit f81f736
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
12 changes: 11 additions & 1 deletion handroll/extensions/og.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ def on_pre_composition(self, director):
raise AbortError(_(
'An open_graph section is missing in the configuration file.'))

if not self._config.parser.has_option('open_graph', 'default_image'):
raise AbortError(_(
'A default image URL is missing in the configuration file.'))

self._resolver = director.resolver

def on_frontmatter_loaded(self, source_file, frontmatter):
Expand All @@ -29,16 +33,22 @@ def add_blog_metadata(self, source_file, frontmatter):
metadata = [
'<meta property="og:type" content="article" />',
'<meta property="og:url" content="{}" />'.format(url),
'<meta property="og:image" content="" />',
]

image = self._config.parser.get('open_graph', 'default_image')
metadata.append(
u'<meta property="og:image" content="{}" />'.format(image))

title = frontmatter.get('title', '')
title = title.replace('"', '\'')
metadata.append(
u'<meta property="og:title" content="{}" />'.format(title))

if frontmatter.get('summary'):
summary = frontmatter.get('summary', '')
summary = summary.replace('"', '\'')
metadata.append(
u'<meta property="og:description" content="{}" />'.format(
summary))

frontmatter['open_graph_metadata'] = '\n'.join(metadata)
13 changes: 12 additions & 1 deletion handroll/tests/test_open_graph_extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ def tearDown(self):

def _make_one(self, director):
director.config.parser.add_section('open_graph')
director.config.parser.set(
'open_graph', 'default_image',
'http://www.example.com/images/og.png')
extension = OpenGraphExtension(director.config)
extension.on_pre_composition(director)
return extension
Expand Down Expand Up @@ -50,7 +53,8 @@ def test_blog_entry(self):
'<meta property="og:type" content="article" />\n'
'<meta property="og:url" '
'content="http://www.example.com/post.html" />\n'
'<meta property="og:image" content="" />\n'
'<meta property="og:image" '
'content="http://www.example.com/images/og.png" />\n'
'<meta property="og:title" content="A blog post" />\n'
'<meta property="og:description" content="The summary" />',
frontmatter['open_graph_metadata'])
Expand Down Expand Up @@ -86,3 +90,10 @@ def test_has_open_graph_section(self):
extension = OpenGraphExtension(director.config)
with self.assertRaises(AbortError):
extension.on_pre_composition(director)

def test_default_image_required(self):
director = self.factory.make_director()
director.config.parser.add_section('open_graph')
extension = OpenGraphExtension(director.config)
with self.assertRaises(AbortError):
extension.on_pre_composition(director)

0 comments on commit f81f736

Please sign in to comment.