Astro Blog搭建过程及Latex支持配置

参考:How To Render LaTeX In Markdown With Astro.js

创建Vercel项目

应该用Github Pages配置也可以,Vercel分配的vercel.app会被墙。但是可能需要自己配置一下workflow文件。这里我们图省事,选择用Vercel。 Vercel 里 Add New 一个 Project,我们既可以Fork我们喜欢的主题后 Import Git Repository,也可以直接用仓库的地址 Import Third-Party Git Repository →

image-20231229130954863

我们这里演示用的主题是 Astro-Ink,如果你愿意用其他的主题也可以,我比较喜欢这个主题因为他很简约。

你可以访问作者的示例Demo,也欢迎访问我的博客 浅尝辄止

大约需要34s来部署。

自定义域名

如果你愿意,你可以配置自定义域名。Vercel的项目里,点击Setting,转到Domains,然后绑定你的域名。你需要在你的DNS服务提供商那里同时配置好CNAME。

image-20231229130641861

博客自定义

配置 Latex/Katex 数学公式支持

先安装依赖。我们可以在codespaces里操作,也可以git clone本地后安装依赖。我们的安装操作他会自行修改这个项目的一些配置文件,在Vercel他将自行按照这个配置安装。

 npm install remark-math
 npm install rehype-katex

image-20231229123411313

接着修改astro.config.mjs。我们需要告诉 Astro,我们想在构建时使用这两个包来渲染 Markdown。同时,我们应该修改site,因为它用来生成sitemap和规范URL。

这里是 How To Render LaTeX In Markdown With Astro.js 写的一个范例,我们需要自定义修改一下。

 import { defineConfig } from 'astro/config';
 import mdx from '@astrojs/mdx';
 import sitemap from '@astrojs/sitemap';
 ​
 import remarkMath from 'remark-math';
 import rehypeKatex from 'rehype-katex';
 ​
 export default defineConfig({
     site: 'https://blog.alexafazio.dev',
     integrations: [mdx(), sitemap()],
     markdown: {
         remarkPlugins: [remarkMath],
         rehypePlugins: [rehypeKatex]
     }
 });

image-20231229142108418

方便大家复制。

   markdown: {
     syntaxHighlight: 'shiki',
     shikiConfig: {
       theme: 'css-variables',
     },
     rehypePlugins: [rehypeKatex],
     remarkPlugins: [
       remarkCodeTitles, remarkMath
     ]
   },

因为我们只有在博客的内容里面才会用到数学公式,所以只需要修改对应的页面的Astro文件就好了。

我们先根据直觉定位,在pages里面寻找,发现了src/pages/blog/[slug].astro,根据命名猜测这是用来控制blog的slug的,查看内容。可以看到,指向了src/layouts/post.astro

image-20231229125601323

post.astro进行修改,具体操作如下所示。我们可以看见BaseHead在多个文件里都有作为Head的内容使用,所以我们不应该直接修改BaseHead。而是对post.astro<head>进行自定义修改。

image-20231229125337483

cdn.jsdelivr.net有时候速度较慢,导致阅读体验不好,可以换成fastly.jsdelivr.net。

 <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/katex@0.15.1/dist/katex.css" integrity="sha384-WsHMgfkABRyG494OmuiNmkAOk8nhO1qE+Y6wns6v+EoNoTNxrWxYpl5ZYWFOLPCM" crossorigin="anonymous">

我们再搜索一下,确认我们的猜测是否正确。

image-20231229125930911

可以看见post.astro确实是只用来控制单个文章的,可以放心的修改,引入这个确实会增加一些开销,但是我们不用担心他会拖累其他页面的加载速度。

效果如下:

自定义内容

语言

如果你需要,修改这个。

image-20231229125108255

个人信息

请根据自己的信息修改public/admin/config.yml。需要修改的地方作者都有注释提示。

建议批量查找替换,确保没有遗漏。

image-20231229133918407

还有/src/config.ts

对于主页,你应该修改/src/pages/_astro-ink.md

image-20231229172914257

对于个人简介,你应该修改/src/pages/about.mdx

引用块

image-20231231154112275

如果你觉得引用块的字体太大了,请修改这里。

image-20231231153954280

最后个人定制化方案:

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值