diff --git a/buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy b/buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy index 2e4ca6f0912..eb8e159b36c 100644 --- a/buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy +++ b/buildSrc/src/main/groovy/org/grails/gradle/BlogTask.groovy @@ -240,6 +240,7 @@ class BlogTask extends DefaultTask { } String html = writer.toString() Map metadata = htmlPost.metadata.toMap() + metadata['ogurl'] = postLink(htmlPost) html = RenderSiteTask.renderHtmlWithTemplateContent(html, metadata, templateText) html = RenderSiteTask.highlightMenu(html, metadata, htmlPost.path) metadata['body'] = metadata['body'] ? metadata['body'] : '' diff --git a/buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy b/buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy index 1f311b32b2d..81a75f28dff 100644 --- a/buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy +++ b/buildSrc/src/main/groovy/org/grails/gradle/RenderSiteTask.groovy @@ -108,7 +108,9 @@ class RenderSiteTask extends DefaultTask { static void renderPages(Map sitemeta, List listOfPages, File outputDir, final String templateText) { for (Page page : listOfPages) { - Map resolvedMetadata = processMetadata(sitemeta + page.metadata) + String permalink = sitemeta['url'] + page.path + Map pageMeta = sitemeta + page.metadata + [ogurl: permalink] + Map resolvedMetadata = processMetadata(pageMeta) String html = renderHtmlWithTemplateContent(page.content, resolvedMetadata, templateText) html = highlightMenu(html, sitemeta, page.path) if (page.body) { @@ -166,6 +168,18 @@ class RenderSiteTask extends DefaultTask { if (!resolvedMetadata.containsKey("robots")) { resolvedMetadata.put('robots', "all") } + + if (!resolvedMetadata.containsKey('ogimage')) { + if (resolvedMetadata.containsKey('image')) { + resolvedMetadata.put('ogimage', resolvedMetadata['url'] + '/images/' + resolvedMetadata['image']) + } else if (resolvedMetadata.containsKey('video') && parseVideoId(resolvedMetadata)) { + String videoId = parseVideoId(resolvedMetadata) + resolvedMetadata.put('ogimage', "https://img.youtube.com/vi/${videoId}/maxresdefault.jpg".toString()) + } else { + resolvedMetadata.put('ogimage', resolvedMetadata['url'] + '/images/grails.png') + } + } + resolvedMetadata.put('twittercard', twitterCard('summary_large_image')) if (resolvedMetadata.containsKey('video')) { String videoId = parseVideoId(resolvedMetadata) diff --git a/templates/document.html b/templates/document.html index 190bceeb5df..b7925474391 100644 --- a/templates/document.html +++ b/templates/document.html @@ -1,31 +1,30 @@ + [%title] - - - - - - - + + + + + + + [%twittercard] - - - - - - - - - - + + + + + + + + - - - - - + + + + + [%HTML header] @@ -35,121 +34,116 @@ - + -
-
- - Show Navigation -
- -
-
-
 
-
-
-
-

Apache Grails is supported by the Apache Software Foundation and the Grails community.

- Apache Software Foundation -

The Apache Software Foundation

-

Apache, Apache Grails, Grails, Groovy, and the ASF logo are either registered trademarks or trademarks - of The Apache Software Foundation. -

- -
- -
-
-
-
+ +
+ +
-
+ - + + \ No newline at end of file