从零开始搭建自己的博客 五:博客文章列表

通过前面的介绍,我们现在已经可以将博客文章渲染成网页了。但是这里还有一个问题:当别人访问我们的网站的时候,他们并不知道我们网站有哪些文章,所以我们还需要一个博客文章列表。

那么我们把博客文章列表放哪呢?我们这里选择把博客文章列表放在 /blog/ 这个地方,当然你也可以选择把博客文章列表放主页。

创建示例博客文件

为了示例,我们先创建三篇博客文章,分别名为 example1.mdexample2.md 以及 example3.md,内容上分别只填一个标题即可(例如 # 示例一# 示例二 以及 # 示例三)。

创建博客文章列表文件

那么既然博客文章列表的路径是 /blog/,我们就创建 @/blog/index.vue 这个文件。

之后在新创建的文件里填充如下内容,是按照 Nuxt content 官方给的示例代码写的:

<template>
    <main>
        <ContentList v-slot="{ list }">
            <ul>
                <li v-for="article in list" :key="article._path">
                    <NuxtLink :to="article._path">
                        {{ article.title }}
                    </NuxtLink>
                </li>
            </ul>
        </ContentList>
    </main>
</template>

随后我们打开 http://localhost:3000/blog,会发现内容已经渲染出来了。

20240111174135

之后点击蓝色的链接就可以进入文章。

这里我们发现显示出来的名称不是 example1example2 以及 example3,而是 示例一示例二 以及 示例三,这是因为我们在代码中设置显示的是 {{ article.title }},然后 nuxt content 会自动帮我们解析文章的名字(即 # 后面的内容),在没有设置一级标题的情况下,nuxt content 会退而求其次,使用文章文件的名称。注意解析出来的路径依旧是 /blog/example1 等,不会受到文章内一级标题的影响。