mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-09 23:27:28 +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
|
@ -9,6 +9,7 @@
|
|||
function execute(port) {
|
||||
const extractTranslations = require('../write-translations.js');
|
||||
|
||||
const env = require('./env.js');
|
||||
const translation = require('./translation.js');
|
||||
const express = require('express');
|
||||
const React = require('react');
|
||||
|
@ -23,15 +24,12 @@ function execute(port) {
|
|||
const glob = require('glob');
|
||||
const chalk = require('chalk');
|
||||
const translate = require('./translate.js');
|
||||
const versionFallback = require('./versionFallback');
|
||||
|
||||
const feed = require('./feed.js');
|
||||
const sitemap = require('./sitemap.js');
|
||||
// const sitemap = require("sitemap");
|
||||
|
||||
const CWD = process.cwd();
|
||||
const ENABLE_TRANSLATION = fs.existsSync(CWD + '/languages.js');
|
||||
const ENABLE_VERSIONING = fs.existsSync(CWD + '/versions.json');
|
||||
|
||||
// remove a module and child modules from require cache, so server does not have
|
||||
// to be restarted
|
||||
|
@ -168,14 +166,14 @@ function execute(port) {
|
|||
// determine what file to use according to its id
|
||||
let file;
|
||||
if (metadata.original_id) {
|
||||
if (ENABLE_TRANSLATION && metadata.language !== 'en') {
|
||||
if (env.translation.enabled && metadata.language !== 'en') {
|
||||
file =
|
||||
CWD + '/translated_docs/' + metadata.language + '/' + metadata.source;
|
||||
} else {
|
||||
file = CWD + '/versioned_docs/' + metadata.source;
|
||||
}
|
||||
} else {
|
||||
if (metadata.language === 'en') {
|
||||
if (!env.translation.enabled || metadata.language === 'en') {
|
||||
file =
|
||||
CWD + '/../' + readMetadata.getDocsPath() + '/' + metadata.source;
|
||||
} else {
|
||||
|
@ -197,12 +195,7 @@ function execute(port) {
|
|||
rawContent = insertTableOfContents(rawContent);
|
||||
}
|
||||
|
||||
let latestVersion;
|
||||
if (ENABLE_VERSIONING) {
|
||||
latestVersion = JSON.parse(
|
||||
fs.readFileSync(CWD + '/versions.json', 'utf8')
|
||||
)[0];
|
||||
}
|
||||
let latestVersion = env.latestVersion;
|
||||
|
||||
// replace any links to markdown files to their website html links
|
||||
Object.keys(mdToHtml).forEach(function(key, index) {
|
||||
|
@ -383,21 +376,21 @@ function execute(port) {
|
|||
file = file.replace(siteConfig.baseUrl, '');
|
||||
let userFile = CWD + '/pages/' + file;
|
||||
|
||||
let language = 'en';
|
||||
let language = env.translation.enabled ? 'en' : '';
|
||||
const regexLang = /(.*)\/.*\.html$/;
|
||||
const match = regexLang.exec(req.path);
|
||||
const parts = match[1].split('/');
|
||||
const enabledLangTags = [];
|
||||
for (let i = 0; i < translation['languages'].length; i++) {
|
||||
enabledLangTags.push(translation['languages'][i].tag);
|
||||
}
|
||||
const enabledLangTags = env.translation
|
||||
.enabledLanguages()
|
||||
.map(lang => lang.tag);
|
||||
|
||||
for (let i = 0; i < parts.length; i++) {
|
||||
if (enabledLangTags.indexOf(parts[i]) !== -1) {
|
||||
language = parts[i];
|
||||
}
|
||||
}
|
||||
let englishFile = CWD + '/pages/' + file;
|
||||
if (language !== 'en') {
|
||||
if (language && language !== 'en') {
|
||||
englishFile = englishFile.replace('/' + language + '/', '/en/');
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue