目录

Blog 迁移记录

目录
警告
本文最后更新于 2024-03-08,文中内容可能已过时。

本次更换博客框架的相关记录

Blog 迁移记录

我最早使用的是hexo作为博客框架,期间也换过很多主题,但没有一种主题是让我很满意的。我自己前端学的也没有多好,所以并没有自己做一个主题的想法。

后来我看到有人使用 GitBook 写Blog,但我不喜欢使用 gitbook,于是准备使用和它差不多的 mdBook,这位是用 Rust 开发,同时也是 The Rust Programming Language 所使用的软件,但我用的时候才发现,这位默认的颜值不咋好看,而且搜索功能简陋(不支持 CJK)。

于是我选择了 MkDocs,这位是我刷到 CTF Wiki 的时候找到的文档生成软件。简单搜索发现它有一个 Material for MkDocs 主题,于是就换到了这里。不过这位其实有些问题——它不是Blog,所以当用它作为我的 Blog 站点生成器的时候,总有一种别扭的感觉。

前几天看到一个前端框架:astro。看了一下主题感觉真的好漂亮,并且貌似性能也还好?我使用的是 astro-paper 这个主题。

不过这个主题没有友链,于是我自己简单的修改了一下:

我简单看了一下,它的 src/components/Header.astro 文件用于显示上边栏,于是:

找到下边这行并修改成我给的这样:

1
posts" | "tags" | "about" | "search" | "friends";
1
2
3
4
5
6
<li>
  <a href="/tags/" class={activeNav === "tags" ? "active" : ""}> Tags </a>
</li>
<li>
  <a href="/about/" class={activeNav === "about" ? "active" : ""}> About </a>
</li>

在上面这块代码的下边添加:

1
2
3
4
5
<li>
  <a href="/friends/" class={activeNav === "friends" ? "active" : ""}>
    Friends
  </a>
</li>

src/pages 文件夹下新建 friends/index.astro 文件并添加以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
---
import Layout from "@layouts/Layout.astro";
import Main from "@layouts/Main.astro";
import Header from "@components/Header.astro";
import Footer from "@components/Footer.astro";
import LinkButton from "@components/LinkButton.astro";
import { SITE } from "@config";
---

<Layout title={`Friends | ${SITE.title}`}>
  <Header activeNav="friends" />
  <Main pageTitle="Friends" pageDesc="Friendly link collection.">
    <LinkButton
      className="underline decoration-dashed underline-offset-4 hover:text-skin-accent"
      href="https://xxxx.xxx"
    />
  </Main>

  <Footer />
</Layout>

这样就可以添加友链了。

不过这样的实现方式太粗糙了,不过我暂时也没太想出来什么比较好的解决方案。