From ad5b8b92b4a89bd197404d56d9a049db3aca5490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Afonso?= Date: Wed, 11 Apr 2018 17:45:03 -0700 Subject: [PATCH] Ignore and warn about unsupported header fields (#347) Unsupported header fields might mess up the creation of metadata.js (e.g.: next). Skip unknown header fields and log a warn about them. --- lib/server/readMetadata.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/server/readMetadata.js b/lib/server/readMetadata.js index e750962e4809..e4189834d840 100644 --- a/lib/server/readMetadata.js +++ b/lib/server/readMetadata.js @@ -17,6 +17,16 @@ const siteConfig = require(CWD + '/siteConfig.js'); const versionFallback = require('./versionFallback.js'); const escapeStringRegexp = require('escape-string-regexp'); +const SupportedHeaderFields = new Set([ + 'id', + 'title', + 'author', + 'authorURL', + 'authorFBID', + 'sidebar_label', + 'original_id', +]); + // Can have a custom docs path. Top level folder still needs to be in directory // at the same level as `website`, not inside `website`. // e.g., docs/whereDocsReallyExist @@ -119,7 +129,15 @@ function processMetadata(file) { const match = regexSubFolder.exec(file); let language = match ? match[1] : 'en'; - const metadata = result.metadata; + const metadata = {}; + for (const fieldName of Object.keys(result.metadata)) { + if (SupportedHeaderFields.has(fieldName)) { + metadata[fieldName] = result.metadata[fieldName]; + } else { + console.warn(`Header field "${fieldName}" in ${file} is not supported.`); + } + } + const rawContent = result.rawContent; metadata.source = path.basename(file);