Revert "Fixing Issue 305 - broken links because of language (#316)"

This reverts commit 7dc6c6c2da.
This commit is contained in:
Joel Marcey 2017-12-19 09:23:41 -08:00
parent 7dc6c6c2da
commit 18c9a2ab31
7 changed files with 163 additions and 161 deletions

View file

@ -20,15 +20,30 @@ function execute() {
const glob = require('glob');
const chalk = require('chalk');
const Site = require('../core/Site.js');
const env = require('./env.js');
const siteConfig = require(CWD + '/siteConfig.js');
const translate = require('./translate.js');
const versionFallback = require('./versionFallback.js');
const feed = require('./feed.js');
const sitemap = require('./sitemap.js');
const join = path.join;
const ENABLE_TRANSLATION = fs.existsSync(join(CWD, 'languages.js'));
const ENABLE_VERSIONING = fs.existsSync(join(CWD, 'versions.json'));
let languages;
if (ENABLE_TRANSLATION) {
languages = require(CWD + '/languages.js');
} else {
languages = [
{
enabled: true,
name: 'English',
tag: 'en',
},
];
}
// create the folder path for a file if it does not exist, then write the file
function writeFileAndCreateFolder(file, content) {
mkdirp.sync(file.replace(new RegExp('/[^/]*$'), ''));
@ -72,9 +87,10 @@ function execute() {
console.log('generate.js triggered...');
// array of tags of enabled languages
const enabledLanguages = env.translation
.enabledLanguages()
.map(lang => lang.tag);
const enabledLanguages = [];
languages.filter(lang => lang.enabled).map(lang => {
enabledLanguages.push(lang.tag);
});
readMetadata.generateMetadataDocs();
const Metadata = require('../core/metadata.js');
@ -118,7 +134,7 @@ function execute() {
// determine what file to use according to its id
let file;
if (metadata.original_id) {
if (env.translation.enabled && metadata.language !== 'en') {
if (ENABLE_TRANSLATION && metadata.language !== 'en') {
file = join(CWD, 'translated_docs', metadata.language, metadata.source);
} else {
file = join(CWD, 'versioned_docs', metadata.source);
@ -145,7 +161,12 @@ function execute() {
rawContent = insertTableOfContents(rawContent);
}
let latestVersion = env.versioning.latestVersion;
let latestVersion;
if (ENABLE_VERSIONING) {
latestVersion = JSON.parse(
fs.readFileSync(join(CWD, 'versions.json'), 'utf8')
)[0];
}
// replace any links to markdown files to their website html links
Object.keys(mdToHtml).forEach(function(key, index) {
@ -186,10 +207,7 @@ function execute() {
writeFileAndCreateFolder(targetFile, str);
// generate english page redirects when languages are enabled
if (
env.translation.enabled &&
metadata.permalink.indexOf('docs/en') !== -1
) {
if (ENABLE_TRANSLATION && metadata.permalink.indexOf('docs/en') !== -1) {
const redirectComp = (
<Redirect
metadata={metadata}
@ -425,25 +443,21 @@ function execute() {
str
);
}
// write to base level
let language = '';
const str = renderToStaticMarkup(
<Site language={language} config={siteConfig}>
<ReactComp language={language} />
</Site>
);
writeFileAndCreateFolder(targetFile.replace('/en/', '/'), str);
} else {
// allow for rendering of other files not in pages/en folder
let language = '';
let language = 'en';
for (let i = 0; i < langParts.length; i++) {
if (enabledLanguages.indexOf(langParts[i]) !== -1) {
language = langParts[i];
}
}
translate.setLanguage(language);
const str = renderToStaticMarkup(
<Site language={language} config={siteConfig}>
<ReactComp language={language} />
</Site>
);
writeFileAndCreateFolder(targetFile.replace('/en/', '/'), str);
writeFileAndCreateFolder(targetFile, str);
}
fs.removeSync(tempFile);
} else if (!fs.lstatSync(file).isDirectory()) {
@ -455,6 +469,15 @@ function execute() {
}
});
// copy html files in 'en' to base level as well
files = glob.sync(join(buildDir, 'en', '**'));
files.forEach(file => {
let targetFile = file.replace(join(buildDir, 'en'), join(buildDir));
if (file.match(/\.html$/)) {
fs.copySync(file, targetFile);
}
});
// Generate CNAME file if a custom domain is specified in siteConfig
if (siteConfig.cname) {
let targetFile = join(buildDir, 'CNAME');