Skip to content

Commit f56ebb2

Browse files
committed
feat: Enhance SEO/SMO with dynamic Open Graph tags
1 parent 3a117fb commit f56ebb2

3 files changed

Lines changed: 15 additions & 5 deletions

File tree

buildSrc/src/main/groovy/website/gradle/tasks/BlogTask.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ abstract class BlogTask extends GrailsWebsiteTask {
238238
}
239239

240240
def metadata = htmlPost.metadata.toMap()
241+
metadata['ogurl'] = postLink(htmlPost)
241242
html = RenderSiteTask.renderHtmlWithTemplateContent(html, metadata, templateText)
242243
html = RenderSiteTask.highlightMenu(html, metadata, htmlPost.path)
243244

buildSrc/src/main/groovy/website/gradle/tasks/RenderSiteTask.groovy

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ abstract class RenderSiteTask extends GrailsWebsiteTask {
176176
) {
177177
for (def page : listOfPages) {
178178
def resolvedMetadata = processMetadata(
179-
siteMeta + page.metadata
179+
siteMeta + page.metadata + [ogurl: siteMeta['url'] + page.path]
180180
)
181181
def html = renderHtmlWithTemplateContent(
182182
page.content,
@@ -260,6 +260,17 @@ abstract class RenderSiteTask extends GrailsWebsiteTask {
260260
)
261261
}
262262
}
263+
264+
if (!resolvedMetadata.containsKey('ogimage')) {
265+
if (resolvedMetadata.containsKey('image')) {
266+
resolvedMetadata.put('ogimage', resolvedMetadata['url'] + '/images/' + resolvedMetadata['image'])
267+
} else if (resolvedMetadata.containsKey('video') && parseVideoId(resolvedMetadata)) {
268+
String videoId = parseVideoId(resolvedMetadata)
269+
resolvedMetadata.put('ogimage', "https://img.youtube.com/vi/${videoId}/maxresdefault.jpg".toString())
270+
} else {
271+
resolvedMetadata.put('ogimage', resolvedMetadata['url'] + '/images/grails.png')
272+
}
273+
}
263274
resolvedMetadata
264275
}
265276

templates/document.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@
1313
<meta name='twitter:site' content='@grailsframework'/>
1414
<meta name='twitter:description' content='[%description]'/>
1515
<meta name='twitter:creator' content='@grailsframework'/>
16-
<meta property='og:image' content='[%url]/images/grails.png'/>
17-
<meta property='og:image:width' content='300'/>
18-
<meta property='og:image:height' content='300'/>
19-
<meta property='og:url' content='[%url]'/>
16+
<meta property='og:image' content='[%ogimage]'/>
17+
<meta property='og:url' content='[%ogurl]'/>
2018
<meta property='og:title' content='[%title]'/>
2119
<meta property='og:description' content='[%description]'/>
2220
<meta property='og:type' content='website'/>

0 commit comments

Comments
 (0)