mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-02 10:52:35 +02:00
feat(content-blog): allow sorting posts in ascending order (#5787)
This commit is contained in:
parent
8fba542d26
commit
1c024470e0
5 changed files with 20 additions and 0 deletions
|
@ -394,4 +394,15 @@ describe('loadBlog', () => {
|
||||||
truncated: false,
|
truncated: false,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('test ascending sort direction of blog post', async () => {
|
||||||
|
const siteDir = path.join(__dirname, '__fixtures__', 'website');
|
||||||
|
const normalOrder = await getBlogPosts(siteDir);
|
||||||
|
const reversedOrder = await getBlogPosts(siteDir, {
|
||||||
|
sortPosts: 'ascending',
|
||||||
|
});
|
||||||
|
expect(normalOrder.reverse().map((x) => x.metadata.date)).toEqual(
|
||||||
|
reversedOrder.map((x) => x.metadata.date),
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -294,6 +294,9 @@ export async function generateBlogPosts(
|
||||||
(a, b) => b.metadata.date.getTime() - a.metadata.date.getTime(),
|
(a, b) => b.metadata.date.getTime() - a.metadata.date.getTime(),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (options.sortPosts === 'ascending') {
|
||||||
|
return blogPosts.reverse();
|
||||||
|
}
|
||||||
return blogPosts;
|
return blogPosts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ export const DEFAULT_OPTIONS: PluginOptions = {
|
||||||
editLocalizedFiles: false,
|
editLocalizedFiles: false,
|
||||||
authorsMapPath: 'authors.yml',
|
authorsMapPath: 'authors.yml',
|
||||||
readingTime: ({content, defaultReadingTime}) => defaultReadingTime({content}),
|
readingTime: ({content, defaultReadingTime}) => defaultReadingTime({content}),
|
||||||
|
sortPosts: 'descending',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const PluginOptionSchema = Joi.object<PluginOptions>({
|
export const PluginOptionSchema = Joi.object<PluginOptions>({
|
||||||
|
@ -115,4 +116,7 @@ export const PluginOptionSchema = Joi.object<PluginOptions>({
|
||||||
}).default(DEFAULT_OPTIONS.feedOptions),
|
}).default(DEFAULT_OPTIONS.feedOptions),
|
||||||
authorsMapPath: Joi.string().default(DEFAULT_OPTIONS.authorsMapPath),
|
authorsMapPath: Joi.string().default(DEFAULT_OPTIONS.authorsMapPath),
|
||||||
readingTime: Joi.function().default(() => DEFAULT_OPTIONS.readingTime),
|
readingTime: Joi.function().default(() => DEFAULT_OPTIONS.readingTime),
|
||||||
|
sortPosts: Joi.string()
|
||||||
|
.valid('descending', 'ascending')
|
||||||
|
.default(DEFAULT_OPTIONS.sortPosts),
|
||||||
});
|
});
|
||||||
|
|
|
@ -96,6 +96,7 @@ export type PluginOptions = RemarkAndRehypePluginOptions & {
|
||||||
admonitions: Record<string, unknown>;
|
admonitions: Record<string, unknown>;
|
||||||
authorsMapPath: string;
|
authorsMapPath: string;
|
||||||
readingTime: ReadingTimeFunctionOption;
|
readingTime: ReadingTimeFunctionOption;
|
||||||
|
sortPosts: 'ascending' | 'descending';
|
||||||
};
|
};
|
||||||
|
|
||||||
// Options, as provided in the user config (before normalization)
|
// Options, as provided in the user config (before normalization)
|
||||||
|
|
|
@ -59,6 +59,7 @@ Accepted fields:
|
||||||
| `feedOptions.description` | `string` | <code>\`${siteConfig.title} Blog\`</code> | Description of the feed. |
|
| `feedOptions.description` | `string` | <code>\`${siteConfig.title} Blog\`</code> | Description of the feed. |
|
||||||
| `feedOptions.copyright` | `string` | `undefined` | Copyright message. |
|
| `feedOptions.copyright` | `string` | `undefined` | Copyright message. |
|
||||||
| `feedOptions.language` | `string` (See [documentation](http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes) for possible values) | `undefined` | Language metadata of the feed. |
|
| `feedOptions.language` | `string` (See [documentation](http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes) for possible values) | `undefined` | Language metadata of the feed. |
|
||||||
|
| `sortPosts` | <code>'descending' \| 'ascending' </code> | `'descending'` | Governs the direction of blog post sorting. |
|
||||||
|
|
||||||
</small>
|
</small>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue