From 825211f41dc7eebca08516065e8cc7e33d99ab58 Mon Sep 17 00:00:00 2001 From: Joe Harrison Date: Wed, 29 Jun 2022 17:19:29 +0100 Subject: [PATCH] fix(content-docs): format last update date as "Jun 19, 2020" (#7673) * consistent date formatting betweeen docs and blog * update error message * use short month names Co-authored-by: Joe Harrison --- .../src/__tests__/docs.test.ts | 8 +++---- .../src/docs.ts | 23 ++++++++++++++++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts index 88b74733f7..4ccff77381 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/docs.test.ts @@ -457,7 +457,7 @@ describe('simple site', () => { unrelated_front_matter: "won't be part of metadata", }, lastUpdatedAt: 1539502055, - formattedLastUpdatedAt: '10/14/2018', + formattedLastUpdatedAt: 'Oct 14, 2018', lastUpdatedBy: 'Author', tags: [], }); @@ -518,7 +518,7 @@ describe('simple site', () => { title: 'Custom Last Update', }, lastUpdatedAt: new Date('1/1/2000').getTime() / 1000, - formattedLastUpdatedAt: '1/1/2000', + formattedLastUpdatedAt: 'Jan 1, 2000', lastUpdatedBy: 'Custom Author', sidebarPosition: undefined, tags: [], @@ -557,7 +557,7 @@ describe('simple site', () => { title: 'Last Update Author Only', }, lastUpdatedAt: 1539502055, - formattedLastUpdatedAt: '10/14/2018', + formattedLastUpdatedAt: 'Oct 14, 2018', lastUpdatedBy: 'Custom Author', sidebarPosition: undefined, tags: [], @@ -596,7 +596,7 @@ describe('simple site', () => { title: 'Last Update Date Only', }, lastUpdatedAt: new Date('1/1/2000').getTime() / 1000, - formattedLastUpdatedAt: '1/1/2000', + formattedLastUpdatedAt: 'Jan 1, 2000', lastUpdatedBy: 'Author', sidebarPosition: undefined, tags: [], diff --git a/packages/docusaurus-plugin-content-docs/src/docs.ts b/packages/docusaurus-plugin-content-docs/src/docs.ts index 580d901017..7d13e40eb8 100644 --- a/packages/docusaurus-plugin-content-docs/src/docs.ts +++ b/packages/docusaurus-plugin-content-docs/src/docs.ts @@ -270,6 +270,21 @@ async function doProcessDocMetadata({ const draft = isDraftForEnvironment({env, frontMatter}); + const formatDate = (locale: string, date: Date, calendar: string): string => { + try { + return new Intl.DateTimeFormat(locale, { + day: 'numeric', + month: 'short', + year: 'numeric', + timeZone: 'UTC', + calendar, + }).format(date); + } catch (err) { + logger.error`Can't format docs lastUpdatedAt date "${String(date)}"`; + throw err; + } + }; + // Assign all of object properties during instantiation (if possible) for // NodeJS optimization. // Adding properties to object after instantiation will cause hidden @@ -290,9 +305,11 @@ async function doProcessDocMetadata({ lastUpdatedBy: lastUpdate.lastUpdatedBy, lastUpdatedAt: lastUpdate.lastUpdatedAt, formattedLastUpdatedAt: lastUpdate.lastUpdatedAt - ? new Intl.DateTimeFormat(i18n.currentLocale, { - calendar: i18n.localeConfigs[i18n.currentLocale]!.calendar, - }).format(lastUpdate.lastUpdatedAt * 1000) + ? formatDate( + i18n.currentLocale, + new Date(lastUpdate.lastUpdatedAt * 1000), + i18n.localeConfigs[i18n.currentLocale]!.calendar, + ) : undefined, sidebarPosition, frontMatter,