Skip to content

Commit c6ec22d

Browse files
authored
Merge pull request #516 from apache/fix-guides-og-url
Fix Open Graph URL for generated guides pages
2 parents dfb80ba + 3fc10ac commit c6ec22d

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ abstract class GuidesTask extends GrailsWebsiteTask {
205205
def guides = GuidesFetcher.fetchGuides(guidesYml)
206206
def tags = TagUtils.populateTags(guides)
207207
new File(pages, PAGE_NAME_GUIDES).setText(
208-
"title: Guides | Grails Framework\nbody: guides\nJAVASCRIPT: $url/javascripts/search.js\n---\n" +
208+
"title: Guides | Grails Framework\nbody: guides\nogurl: $url/guides/index.html\nJAVASCRIPT: $url/javascripts/search.js\n---\n" +
209209
GuidesPage.mainContent(guides, tags),
210210
'UTF-8'
211211

@@ -215,7 +215,7 @@ abstract class GuidesTask extends GrailsWebsiteTask {
215215
for (def tag : tags) {
216216
def slug = "${tag.slug.toLowerCase()}.html"
217217
new File(tagsDir, slug).setText(
218-
"---\ntitle: Guides with tag: $tag.title | Grails Framework\nbody: guides\n---\n" +
218+
"---\ntitle: Guides with tag: $tag.title | Grails Framework\nbody: guides\nogurl: $url/guides/tags/$slug\n---\n" +
219219
GuidesPage.mainContent(guides, tags, null, tag),
220220
'UTF-8'
221221

@@ -225,7 +225,7 @@ abstract class GuidesTask extends GrailsWebsiteTask {
225225
for (def category : GuidesPage.categories.values()) {
226226
def slug = "${category.slug.toLowerCase()}.html"
227227
new File(categoriesDir, slug).setText(
228-
"---\ntitle: Guides at category $category.name | Grails Framework\nbody: guides\n---\n" +
228+
"---\ntitle: Guides at category $category.name | Grails Framework\nbody: guides\nogurl: $url/guides/categories/$slug\n---\n" +
229229
GuidesPage.mainContent(guides, tags, category, null),
230230
'UTF-8'
231231
)
@@ -234,7 +234,7 @@ abstract class GuidesTask extends GrailsWebsiteTask {
234234
for (def version : GuidesPage.availableVersions(guides)) {
235235
def slug = "${version}.html"
236236
new File(versionsDir, slug).setText(
237-
"---\ntitle: Guides for Grails $version | Grails Framework\nbody: guides\n---\n" +
237+
"---\ntitle: Guides for Grails $version | Grails Framework\nbody: guides\nogurl: $url/guides/versions/$slug\n---\n" +
238238
GuidesPage.mainContent(guides, tags, null, null, version),
239239
'UTF-8'
240240
)

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,9 +233,17 @@ abstract class RenderSiteTask extends GrailsWebsiteTask {
233233
@Nullable File partialsRoot = null
234234
) {
235235
for (def page : listOfPages) {
236-
def resolvedMetadata = processMetadata(
237-
siteMeta + page.metadata + [ogurl: siteMeta['url'] + page.path]
238-
)
236+
// Default the Open Graph URL to <site><page path>, but let a page
237+
// override it via its own `ogurl` metadata. Pages parsed from disk
238+
// carry a root-relative path (e.g. "/faq.html"), so the default is
239+
// correct for them; generated guide pages (index, tags, categories,
240+
// versions) carry only a bare leaf filename (e.g. "8.html"), so they
241+
// set `ogurl` explicitly to the right /guides/... URL.
242+
def pageMetadata = siteMeta + page.metadata
243+
if (!pageMetadata.containsKey('ogurl')) {
244+
pageMetadata = pageMetadata + [ogurl: siteMeta['url'] + page.path]
245+
}
246+
def resolvedMetadata = processMetadata(pageMetadata)
239247
def html = renderHtmlWithTemplateContent(
240248
page.content,
241249
resolvedMetadata,

0 commit comments

Comments
 (0)