Skip to content

Commit

Permalink
fix(content-docs): format last update date as "Jun 19, 2020" (#7673)
Browse files Browse the repository at this point in the history
* consistent date formatting betweeen docs and blog

* update error message

* use short month names

Co-authored-by: Joe Harrison <jharrison@drwuk.com>
  • Loading branch information
sigwinch28 and Joe Harrison authored Jun 29, 2022
1 parent 2910f99 commit 825211f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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: [],
});
Expand Down Expand Up @@ -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: [],
Expand Down Expand Up @@ -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: [],
Expand Down Expand Up @@ -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: [],
Expand Down
23 changes: 20 additions & 3 deletions packages/docusaurus-plugin-content-docs/src/docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand Down

0 comments on commit 825211f

Please sign in to comment.