修改主题颜色
根据个人喜好对主题的深色模式中的颜色定义进行了修改,修改 --color-fill
以更改网站的背景颜色,修改 --color-accent
以更改强调色。相关 CSS 定义于 src/styles/base.css
中:
修改代码高亮
AstroPaper 通过 Shiki 实现代码高亮,支持多种主题,可以在 astro.config.ts
中进行配置。我选择采用 catppuccino-mocha
主题替换默认的 one-dark-pro
主题。
修改字体
由于 AstroPaper 主题默认采用的 IBM Plex Mono 字体对于中文支持不佳,我选择将主字体替换为个人更偏好的 Sono,而对于 Sono 字体无法渲染的中文等部分,则由开源中文字体 霞鹜文楷 提供,最后以 monospace 作为 fallback 字体。
在 tailwind.config.cjs
中将 IBM Plex Mono
替换为 Sono
和 LXGW WenKai Screen
:
接下来需要引入霞鹜文楷字体的 Stylesheet,为了避免阻塞渲染,可以将 media
设置为 print
,在加载完成后再将 media
设置为 all
。同时,采用饿了么提供的 CDN 提高加载速度,相关代码添加到 src/layouts/Layout.astro
中:
但是通过以上的修改,会存在两个问题:
- 标签展示时,若采用霞鹜文楷字体,会导致显示紊乱;
- 代码框中也会采用霞鹜文楷字体,不符合等宽字体的要求。
对于第一个问题,需要在 src/components/Tag.astro
中将字体设定为 font-mono
:
对于第二个问题,在 src/styles/base.css
中,将 pre > code
的字体设定为 font-mono
即可:
在默认情况下,所有在 src/config.ts
中 active
字段值为 true 的社交图标都会同时在首页和 Footer 中展示,但是我希望 Footer 中只展示部分社交图标。
首先,在 src/components/
目录下添加 Socials-footer.astro
组件,基本与 Socials.astro
相同,区别在于只展示 footeractive
为 true
的社交图标:
对于 src/config.ts
中定义的 SOCIALS
常量,添加布尔值 footeractive
字段,用于控制是否在 Footer 中展示:
为了保证 footeractive
的合法性,需要在 src/types.ts
中添加对应的类型定义:
添加 Misc 页面
在博客中添加一个 Misc 页面,用于展示一些额外的内容,如友链、听歌观影记录等。首先在 src/layouts
目录下添加 MiscLayout.astro
:
接下来需要修改 Header.astro
,使 Misc 页面可以正常显示在导航栏中: