1

在 Docusaurus v2 中,有没有一种方法可以生成最近的博客列表,然后可以使用这些列表来填充首页(src/pages/index.js)上的块?我正在考虑类似于features然后由<Feature ... />.

在 Docusaurus v1 中,下面的代码对此进行了补充,但我找不到一种简单的方法来获取所有博客文章的列表,相当于MetadataBlog

const MetadataBlog = require("../../core/MetadataBlog.js");
...
<h2>Latest Blog Posts</h2>
<ul>
  {MetadataBlog.slice(0, 5).map((item, index) => (
    <li key={index}>
      <a href={`/blog/${item.path}`}>{item.title}</a>{" "}
        <small>
          {new Date(item.date).toLocaleDateString("en-US", {
            weekday: undefined,
            year: "numeric",
            month: "long",
            day: "numeric"
          })}
        </small>
      </li>
    ))}
</ul>

在对代码进行了一些研究之后,我相信我只想能够generateBlogPosts@docusaurus/plugin-content-blog/lib/blogUtils.js. 关于如何调用该函数的任何指针src/pages/index.js?谢谢

4

2 回答 2

0

恐怕目前还没有优雅的方法。您可以编写自己的类似于博客插件的插件并拉取最近的页面并生成要在索引页面上导入的 JSON 文件。

于 2020-03-05T03:25:21.590 回答
0

我可以通过对 OP 代码稍作改动来破解它:

const recentPosts = require("../../.docusaurus/docusaurus-plugin-content-blog/default/blog-post-list-prop-default.json");

<ul>
  {recentPosts.items.slice(0, 5).map((item, index) => (
    <li key={index}>
      <a href={`${item.permalink}`}>{item.title}</a>{" "}
    </li>
  ))}
</ul>

它似乎有效,尽管它取决于可能会改变的内部结构。

于 2021-04-14T21:29:08.387 回答