惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
罗磊的独立博客
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
M
MIT News - Artificial intelligence
A
About on SuperTechFans
Last Week in AI
Last Week in AI
Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
美团技术团队
I
Intezer
Vercel News
Vercel News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
T
Threatpost
P
Privacy International News Feed
Latest news
Latest news
K
Kaspersky official blog
博客园 - 聂微东
月光博客
月光博客
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
D
Docker
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 热门话题
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Recent Announcements
Recent Announcements
T
Tenable Blog
B
Blog RSS Feed
Recorded Future
Recorded Future
雷峰网
雷峰网
SecWiki News
SecWiki News

AsyncX

V3 博客重构 第三期-用Notion进行网页收藏/订阅管理/阅读数据查看 第二期-Vitepress配制指南 使用MCSManager搭建泰拉瑞亚服务器 额外技能-如何穿手串 [更新]首考PTE的一些问题/快速入门 熵,生命 如何使用Mac玩双人成行 解决手柄无法在Macbook玩星露谷的问题 什么在阻止我们走向主观来说更好的生活? 雅思首考的一些感受 如何听更好音质的歌 苏州三天行 毕业,以及短期的安排 近日&首阳 第一期-Beancount使用体验 在MacOS配制Rime(鼠须管)输入法 更换主力浏览器为Arc浏览器 为hexo博客添加黑暗模式(使用darkmode.js) 语言规范可以帮你更好得到答案 删掉抖音,重拾RSS 简单注册ChatGPT的方法 2023年,一些回顾 让你的MacBook更顺手一点 第一次养猫发现的一些事 绑架代替购买了一只小猫 数字藏品? 近些天和对于科幻的一些看法 如何配置一个静态博客的工作流
重构博客,底层换成Astro时候遇到的问题
AsyncX · 2023-11-09 · via AsyncX

前些天用Cloudflare加速了Hexo,瞄了一眼博客<foot>下面的busuanzi计数. 每次页面刷新都会被读取并进行一次访客录入着实烦人,于是打算趁着有兴趣把博客重构了.

安装Astro

前提

  • Node.js - v18.14.1 或更高版本。
  • 包管理我使用了Yarn
# 使用yarn创建astro项目(如果你打算搭建博客,请跳过此步骤)
yarn create astro

你可以在计算机上的任何位置运行 create astro,因此在开始之前无需为你的项目创建一个新的空目录。 如果你的新项目还没有空目录,该向导会帮你自动创建一个。

配制

由于我打算使用iCloud进行同步,所以我创建了文件夹,在文件架内的根目录进行了构建. 如果你打算用来搭建博客,请使用下面的指令直接复制博客模板,你可以在Astro官网找到你想要的模板

# 基于某个 GitHub 仓库的 main 分支创建一个新项目
yarn create astro --template <github-username>/<github-repo>

部署Astro

Github Pages

需要注意的是,不同于hexo需要进行以下指令

hexo clean #清空生成文件
hexo g #生成静态页面
hexo s #进行预览
hexo d #进行推送

Astro会实时的根据你的修改进行刷新,因此部署方式会和hexo不同,你可以参照官网的部署方式进行部署.本文使用Github Pages进行部署,因此会提及部署中出现的问题. 根据官网所述,创建好库后使用Actions进行推送,这意味着你需要为库本身开启Github Pages,如果之前你在你的name.github.io库中撰写博客,你需要停用掉io库的pages.

额外配制

添加Google Analytics

安装Partytown

大部分的主题中都没有安装谷歌分析的包,你可以通过官网所提供的partytown进行进一步安装. 打开astro.config.js,添加

import { defineConfig } from "astro/config";
import partytown from "@astrojs/partytown";

export default defineConfig({
  integrations: [
    partytown({
      // 为partytown添加下面的内容即可
      config: {
        forward: ["dataLayer.push"],
      },
    }),
  ],
});

添加到head

将 Google Analytics 跟踪代码嵌入到布局文件中。

<!DOCTYPE html>
<html lang="zh">
    <head prefix="og: https://ogp.me/ns#">
        <!-- Google tag (gtag.js) -->
        <script type="text/partytown" src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
        <script type="text/partytown">
            window.dataLayer = window.dataLayer || [];
            function gtag() {
                dataLayer.push(arguments);
            }
            gtag('js', new Date());
            gtag('config', 'GA_MEASUREMENT_ID');
        </script>
    </head>
    <body>
        <slot />
    </body>
</html>

记得修改成你的分析代码.

添加giscus作为评论

我本来想要使用原先的utterances作为评论系统,不幸的是不知道什么原因导致的不能成功加载,就更换了giscus.你可以点击链接进行进一步配制.傻瓜配置.