diff --git a/lib/server/sitemap.js b/lib/server/sitemap.js index 592ae0fe5d..cff9d17ade 100644 --- a/lib/server/sitemap.js +++ b/lib/server/sitemap.js @@ -34,6 +34,7 @@ Metadata = require("../core/metadata.js"); readMetadata.generateMetadataBlog(); MetadataBlog = require("../core/MetadataBlog.js"); + /****************************************************************************/ module.exports = function(callback) { @@ -41,7 +42,7 @@ module.exports = function(callback) { let urls = []; - let files = glob.sync(CWD + "/pages/**/*.js"); + let files = glob.sync(CWD + "/pages/en/**/*.js"); // English-only is the default. let enabledLanguages = [{ @@ -60,16 +61,13 @@ module.exports = function(callback) { // create a url mapping to all the enabled languages files files.map(file => { - enabledLanguages.map(lang => { - let url = file.split("/pages/en")[1]; - let tag = ""; - if (lang.tag != "en") { - tag = lang.tag; - } - url = tag + url; - url = url.replace(/\.js$/, ".html"); - urls.push({ url: "/" + url, changefreq: "weekly", priority: 0.5 }); + let url = file.split("/pages/en")[1]; + url = url.replace(/\.js$/, ".html"); + let links = enabledLanguages.map(lang => { + let langUrl = lang.tag + url; + return { lang: lang.tag, url: langUrl }; }); + urls.push({ url, changefreq: "weekly", priority: 0.5, links }); }); let htmlFiles = glob.sync(CWD + "/pages/**/*.html"); @@ -82,9 +80,13 @@ module.exports = function(callback) { }); }); - Object.keys(Metadata).map(key => { + Object.keys(Metadata).filter(key => Metadata[key].language === "en").map(key => { let doc = Metadata[key]; - urls.push({ url: doc.permalink, changefreq: "hourly", priority: 1.0 }); + let links = enabledLanguages.map(lang => { + let langUrl = doc.permalink.replace("docs/en/", `docs/${lang.tag}/`); + return { lang: lang.tag, url: langUrl }; + }); + urls.push({ url: doc.permalink, changefreq: "hourly", priority: 1.0, links }); }); const sm = sitemap.createSitemap({