34 lines
885 B
JavaScript
34 lines
885 B
JavaScript
import articles from '../data/articles.json';
|
|
import { editorialRevisions } from '../data/editorial-revisions.mjs';
|
|
import { cleanReaderHtml } from './editorial-content.mjs';
|
|
|
|
const revisionBySlug = new Map(
|
|
editorialRevisions.map((revision) => [revision.slug, revision]),
|
|
);
|
|
|
|
const publishedArticles = articles.map((article) => ({
|
|
...article,
|
|
...(() => {
|
|
const revision = revisionBySlug.get(article.slug);
|
|
return revision
|
|
? { ...revision, contentHtml: cleanReaderHtml(revision.contentHtml) }
|
|
: {};
|
|
})(),
|
|
}));
|
|
|
|
export function getArticles() {
|
|
return publishedArticles;
|
|
}
|
|
|
|
export function getArticleBySlug(slug) {
|
|
return publishedArticles.find((article) => article.slug === slug);
|
|
}
|
|
|
|
export function formatDate(date) {
|
|
return new Intl.DateTimeFormat('ru-RU', {
|
|
day: '2-digit',
|
|
month: 'long',
|
|
year: 'numeric',
|
|
}).format(new Date(date));
|
|
}
|