mirror of
https://github.com/facebook/docusaurus.git
synced 2025-04-30 02:37:59 +02:00
Without this a build failure would occur for those that are not using the languages.js file. e.g., ``` sitemap.js triggered... module.js:471 throw err; ^ Error: Cannot find module '/home/ubuntu/fasttext-website/website/languages.js' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at module.exports (/home/ubuntu/fasttext-website/website/node_modules/docusaurus/lib/server/sitemap.js:48:15) at execute (/home/ubuntu/fasttext-website/website/node_modules/docusaurus/lib/server/generate.js:316:5) at Object.<anonymous> (/home/ubuntu/fasttext-website/website/node_modules/docusaurus/lib/build-files.js:31:1) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) Error: generating html failed ```
96 lines
2.3 KiB
JavaScript
96 lines
2.3 KiB
JavaScript
/**
|
|
* Copyright (c) 2017-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const fs = require("fs-extra");
|
|
const path = require("path");
|
|
const os = require("os");
|
|
const Feed = require("feed");
|
|
|
|
const chalk = require("chalk");
|
|
const glob = require("glob");
|
|
const CWD = process.cwd();
|
|
|
|
const sitemap = require("sitemap");
|
|
|
|
const siteConfig = require(CWD + "/siteConfig.js");
|
|
|
|
const blogFolder = path.resolve("../blog/");
|
|
const blogRootURL = siteConfig.url + "/blog";
|
|
const jestImage = siteConfig.url + siteConfig.headerIcon;
|
|
|
|
/****************************************************************************/
|
|
|
|
let readMetadata;
|
|
let Metadata;
|
|
let MetadataBlog;
|
|
|
|
readMetadata = require("./readMetadata.js");
|
|
readMetadata.generateMetadataDocs();
|
|
Metadata = require("../core/metadata.js");
|
|
readMetadata.generateMetadataBlog();
|
|
MetadataBlog = require("../core/MetadataBlog.js");
|
|
|
|
/****************************************************************************/
|
|
|
|
module.exports = function(callback) {
|
|
console.log("sitemap.js triggered...");
|
|
|
|
let urls = [];
|
|
|
|
let files = glob.sync(CWD + "/pages/**/*.js");
|
|
|
|
let languages = null;
|
|
|
|
if (fs.existsSync(CWD + "/languages.js")) {
|
|
languages = require(CWD + "/languages.js");
|
|
}
|
|
|
|
let enabledLanguages = languages.filter(lang => {
|
|
return lang.enabled == true;
|
|
});
|
|
|
|
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 htmlFiles = glob.sync(CWD + "/pages/**/*.html");
|
|
|
|
MetadataBlog.map(blog => {
|
|
urls.push({
|
|
url: "/blog/" + blog.path,
|
|
changefreq: "weekly",
|
|
priority: 0.3
|
|
});
|
|
});
|
|
|
|
Object.keys(Metadata).map(key => {
|
|
let doc = Metadata[key];
|
|
urls.push({ url: doc.permalink, changefreq: "hourly", priority: 1.0 });
|
|
});
|
|
|
|
const sm = sitemap.createSitemap({
|
|
hostname: siteConfig.url,
|
|
cacheTime: 600 * 1000, // 600 sec - cache purge period
|
|
urls: urls
|
|
});
|
|
|
|
sm.toXML((err, xml) => {
|
|
if (err) {
|
|
return "An error has occured.";
|
|
}
|
|
callback(xml);
|
|
});
|
|
};
|