mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-11 08:07:26 +02:00
Ensure some errors are logged to the console (#194)
* Clarify some error conditions in versioning * Clarify missing doc error; * Remove excess space * Remove excess space part duex
This commit is contained in:
parent
47c955c7b0
commit
459984516b
3 changed files with 62 additions and 8 deletions
|
@ -182,7 +182,14 @@ function processMetadata(file) {
|
||||||
// process metadata for all docs and save into core/metadata.js
|
// process metadata for all docs and save into core/metadata.js
|
||||||
function generateMetadataDocs() {
|
function generateMetadataDocs() {
|
||||||
console.log("Generating Metadata for Docs....");
|
console.log("Generating Metadata for Docs....");
|
||||||
const order = readSidebar();
|
|
||||||
|
let order;
|
||||||
|
try {
|
||||||
|
order = readSidebar();
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
const regexSubFolder = /translated_docs\/(.*)\/.*/;
|
const regexSubFolder = /translated_docs\/(.*)\/.*/;
|
||||||
|
|
||||||
|
@ -203,6 +210,7 @@ function generateMetadataDocs() {
|
||||||
|
|
||||||
if (extension === ".md" || extension === ".markdown") {
|
if (extension === ".md" || extension === ".markdown") {
|
||||||
const res = processMetadata(file);
|
const res = processMetadata(file);
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,24 @@ files.forEach(file => {
|
||||||
const res = extractMetadata(fs.readFileSync(file, "utf8"));
|
const res = extractMetadata(fs.readFileSync(file, "utf8"));
|
||||||
const metadata = res.metadata;
|
const metadata = res.metadata;
|
||||||
|
|
||||||
|
if (!metadata.original_id) {
|
||||||
|
console.error(`No 'original_id' field found in ${file}. Perhaps you forgot to add it when importing prior versions of your docs?`);
|
||||||
|
throw new Error(
|
||||||
|
`No 'original_id' field found in ${file}. Perhaps you forgot to add it when importing prior versions of your docs?`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!metadata.id) {
|
||||||
|
console.error(`No 'id' field found in ${file}.`);
|
||||||
|
throw new Error(
|
||||||
|
`No 'id' field found in ${file}.`
|
||||||
|
);
|
||||||
|
} else if (metadata.id.indexOf('version-') === -1) {
|
||||||
|
console.error(`The 'id' field in ${file} is missing the expected 'version-XX-' prefix. Perhaps you forgot to add it when importing prior versions of your docs?`);
|
||||||
|
throw new Error(
|
||||||
|
`The 'id' field in ${file} is missing the expected 'version-XX-' prefix. Perhaps you forgot to add it when importing prior versions of your docs?`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (!(metadata.original_id in available)) {
|
if (!(metadata.original_id in available)) {
|
||||||
available[metadata.original_id] = new Set();
|
available[metadata.original_id] = new Set();
|
||||||
}
|
}
|
||||||
|
@ -110,7 +128,7 @@ files.forEach(file => {
|
||||||
// what the requested version is
|
// what the requested version is
|
||||||
function docVersion(id, req_version) {
|
function docVersion(id, req_version) {
|
||||||
// iterate through versions until a version less than or equal to the requested
|
// iterate through versions until a version less than or equal to the requested
|
||||||
// is found, then check if that verison has an available file to use
|
// is found, then check if that version has an available file to use
|
||||||
let requestedFound = false;
|
let requestedFound = false;
|
||||||
for (let i = 0; i < versions.length; i++) {
|
for (let i = 0; i < versions.length; i++) {
|
||||||
if (versions[i] === req_version) {
|
if (versions[i] === req_version) {
|
||||||
|
@ -127,7 +145,7 @@ function docVersion(id, req_version) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`No document available to use for version ${req_version} of document with id ${id}. Verify that all version files are correct.`
|
`No document with id '${id}' available for use in version ${req_version} of the website. Verify that all version files are correct. Was the document deleted in a past version?`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +158,13 @@ function diffLatestDoc(file, id) {
|
||||||
|
|
||||||
const latest = versions[0];
|
const latest = versions[0];
|
||||||
|
|
||||||
const version = docVersion(id, latest);
|
let version;
|
||||||
|
try {
|
||||||
|
version = docVersion(id, latest);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
if (!version) {
|
if (!version) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -211,7 +235,13 @@ function docData() {
|
||||||
languages.filter(language => language.enabled).forEach(language => {
|
languages.filter(language => language.enabled).forEach(language => {
|
||||||
versions.forEach(version => {
|
versions.forEach(version => {
|
||||||
allIds.forEach(id => {
|
allIds.forEach(id => {
|
||||||
const useVersion = docVersion(id, version);
|
let useVersion;
|
||||||
|
try {
|
||||||
|
useVersion = docVersion(id, version);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
if (!useVersion) {
|
if (!useVersion) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -248,7 +278,7 @@ function sidebarVersion(req_version) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`No sidebar file available to use for version ${req_version}. Verify that all version files are correct.`
|
`No sidebar file available to use for version ${req_version}. Verify that 'version-${req_version}-sidebars.json' exists.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,13 @@ function execute() {
|
||||||
files.forEach(file => {
|
files.forEach(file => {
|
||||||
const extension = path.extname(file);
|
const extension = path.extname(file);
|
||||||
if (extension === ".md" || extension === ".markdown") {
|
if (extension === ".md" || extension === ".markdown") {
|
||||||
const res = readMetadata.processMetadata(file);
|
let res;
|
||||||
|
try {
|
||||||
|
res = readMetadata.processMetadata(file);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
if (!res) {
|
if (!res) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -84,9 +90,19 @@ function execute() {
|
||||||
files = glob.sync(CWD + "/versioned_sidebars/*");
|
files = glob.sync(CWD + "/versioned_sidebars/*");
|
||||||
files.forEach(file => {
|
files.forEach(file => {
|
||||||
if (!file.endsWith("-sidebars.json")) {
|
if (!file.endsWith("-sidebars.json")) {
|
||||||
|
if (file.endsWith("-sidebar.json")) {
|
||||||
|
console.warn(`Skipping ${file}. Make sure your sidebar filenames follow this format: 'version-VERSION-sidebars.json'.`);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let sidebarContent;
|
||||||
|
try {
|
||||||
sidebarContent = JSON.parse(fs.readFileSync(file, "utf8"));
|
sidebarContent = JSON.parse(fs.readFileSync(file, "utf8"));
|
||||||
|
} catch (e) {
|
||||||
|
console.error(`Could not parse ${file} into json. ${e}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
Object.keys(sidebarContent).forEach(sb => {
|
Object.keys(sidebarContent).forEach(sb => {
|
||||||
const categories = sidebarContent[sb];
|
const categories = sidebarContent[sb];
|
||||||
Object.keys(categories).forEach(category => {
|
Object.keys(categories).forEach(category => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue