mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-10 15:47:23 +02:00
Issue 305 broken link because of language fixes (#322)
* without having having to worry about site design. Let me know if double having is intentional * distinguish case of no translation and en lang * prettier recommends * distinguish case of no translation and en lang * prettier recommends * merge with latest origin/master changes * typo * link with language fixes * do not show language dropdown if only one enabled * check translation outside of LanguageDropDown.render
This commit is contained in:
parent
4a3da1f30a
commit
a5e963dba1
8 changed files with 177 additions and 175 deletions
|
@ -11,25 +11,12 @@ const path = require('path');
|
|||
const fs = require('fs');
|
||||
const glob = require('glob');
|
||||
const chalk = require('chalk');
|
||||
|
||||
const env = require('./env');
|
||||
const siteConfig = require(CWD + '/siteConfig.js');
|
||||
const versionFallback = require('./versionFallback.js');
|
||||
const escapeStringRegexp = require('escape-string-regexp');
|
||||
|
||||
const ENABLE_VERSIONING = fs.existsSync(CWD + '/versions.json');
|
||||
|
||||
let languages;
|
||||
if (fs.existsSync(CWD + '/languages.js')) {
|
||||
languages = require(CWD + '/languages.js');
|
||||
} else {
|
||||
languages = [
|
||||
{
|
||||
enabled: true,
|
||||
name: 'English',
|
||||
tag: 'en',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
// 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
|
||||
|
@ -129,11 +116,8 @@ function processMetadata(file) {
|
|||
'/' + escapeStringRegexp(getDocsPath()) + '/(.*)/.*/'
|
||||
);
|
||||
|
||||
let language = 'en';
|
||||
const match = regexSubFolder.exec(file);
|
||||
if (match) {
|
||||
language = match[1];
|
||||
}
|
||||
let language = match ? match[1] : 'en';
|
||||
|
||||
const metadata = result.metadata;
|
||||
const rawContent = result.rawContent;
|
||||
|
@ -149,28 +133,20 @@ function processMetadata(file) {
|
|||
metadata.title = metadata.id;
|
||||
}
|
||||
|
||||
if (languages.length === 1 && !siteConfig.useEnglishUrl) {
|
||||
metadata.permalink = 'docs/' + metadata.id + '.html';
|
||||
} else {
|
||||
metadata.permalink = 'docs/' + language + '/' + metadata.id + '.html';
|
||||
const langPart =
|
||||
env.translation.enabled || siteConfig.useEnglishUrl ? language + '/' : '';
|
||||
let versionPart = '';
|
||||
if (env.versioning.enabled) {
|
||||
metadata.version = 'next';
|
||||
versionPart = 'next/';
|
||||
}
|
||||
|
||||
if (ENABLE_VERSIONING) {
|
||||
metadata.version = 'next';
|
||||
if (languages.length === 1 && !siteConfig.useEnglishUrl) {
|
||||
metadata.permalink = metadata.permalink.replace('docs/', 'docs/next/');
|
||||
} else {
|
||||
metadata.permalink = metadata.permalink.replace(
|
||||
'docs/' + language + '/',
|
||||
'docs/' + language + '/next/'
|
||||
);
|
||||
}
|
||||
}
|
||||
metadata.permalink = 'docs/' + langPart + versionPart + metadata.id + '.html';
|
||||
|
||||
// change ids previous, next
|
||||
metadata.localized_id = metadata.id;
|
||||
metadata.id = language + '-' + metadata.id;
|
||||
metadata.language = language;
|
||||
metadata.id = (env.translation.enabled ? language + '-' : '') + metadata.id;
|
||||
metadata.language = env.translation.enabled ? language : 'en';
|
||||
|
||||
const order = readSidebar();
|
||||
const id = metadata.localized_id;
|
||||
|
@ -181,11 +157,13 @@ function processMetadata(file) {
|
|||
|
||||
if (order[id].next) {
|
||||
metadata.next_id = order[id].next;
|
||||
metadata.next = language + '-' + order[id].next;
|
||||
metadata.next =
|
||||
(env.translation.enabled ? language + '-' : '') + order[id].next;
|
||||
}
|
||||
if (order[id].previous) {
|
||||
metadata.previous_id = order[id].previous;
|
||||
metadata.previous = language + '-' + order[id].previous;
|
||||
metadata.previous =
|
||||
(env.translation.enabled ? language + '-' : '') + order[id].previous;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -204,10 +182,9 @@ function generateMetadataDocs() {
|
|||
|
||||
const regexSubFolder = /translated_docs\/(.*)\/.*/;
|
||||
|
||||
const enabledLanguages = [];
|
||||
languages.filter(lang => lang.enabled).map(lang => {
|
||||
enabledLanguages.push(lang.tag);
|
||||
});
|
||||
const enabledLanguages = env.translation
|
||||
.enabledLanguages()
|
||||
.map(language => language.tag);
|
||||
|
||||
const metadatas = {};
|
||||
const defaultMetadatas = {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue