Fix wrong sitemap for alternate URL (#828)

This commit is contained in:
Endilie Yacop Sucipto 2018-07-05 02:13:30 +08:00 committed by Yangshun Tay
parent 9c070f020d
commit 3566483aa5
5 changed files with 45 additions and 13 deletions

View file

@ -46,4 +46,30 @@ describe('utils', () => {
utils.extractBlogPostSummary(blogPostWithoutTruncateContents)
).toMatchSnapshot();
});
test('getPath', () => {
expect(utils.getPath('/docs/en/versioning.html', true)).toBe(
'/docs/en/versioning'
);
expect(utils.getPath('/en/users.html', true)).toBe('/en/users');
expect(utils.getPath('/docs/en/asd/index.html', true)).toBe('/docs/en/asd');
expect(utils.getPath('/en/help/index.html', true)).toBe('/en/help');
expect(utils.getPath('/en/help.a.b.c.d.e.html', true)).toBe(
'/en/help.a.b.c.d.e'
);
expect(utils.getPath('/en/help.js', true)).toBe('/en/help');
expect(utils.getPath('/docs/en/versioning.html', false)).toBe(
'/docs/en/versioning.html'
);
expect(utils.getPath('/en/users.html', false)).toBe('/en/users.html');
});
test('removeExtension', () => {
expect(utils.removeExtension('/endiliey.html')).toBe('/endiliey');
expect(utils.removeExtension('/a.b/')).toBe('/a.b/');
expect(utils.removeExtension('/a.b/c.png')).toBe('/a.b/c');
expect(utils.removeExtension('/a.b/c.d.e')).toBe('/a.b/c.d');
expect(utils.removeExtension('/docs/test')).toBe('/docs/test');
expect(utils.removeExtension('pages.js')).toBe('pages');
});
});

View file

@ -20,12 +20,16 @@ function extractBlogPostSummary(content) {
return content.substring(0, BLOG_POST_SUMMARY_LENGTH);
}
function removeExtension(path) {
return path.replace(/\.[^/.]+$/, '');
}
function getPath(path, cleanUrl = false) {
if (cleanUrl) {
if (path.endsWith('/index.html')) {
return path.replace(/\/index.html$/, '');
} else {
return path.replace(/\.html$/, '');
return removeExtension(path);
}
}
return path;
@ -36,4 +40,5 @@ module.exports = {
extractBlogPostBeforeTruncate,
extractBlogPostSummary,
getPath,
removeExtension,
};