ASPH 入门教程

警告

本博客仅支持在 Windows 系统编写。

准备

Node.js

下载 Node.js

加速链接

提供 蓝奏云网盘链接 加速下载。

CMD 的使用

给小白看的,可以直接跳过。

CMD 的使用
  1. Win + R,输入 cmd 即可打开。
  2. 输入 d: 切换至 D 盘。
  3. 输入 cd d:/xxx/xxx 切换当前目录。
  4. 一次输一行。

NPM

CMD 内输入 npm -v,应该输出一个类似 10.9.3 的版本号。

如果没有输出版本号怎么办?

右键单击 此电脑,在显示的菜单里点击 属性,此时会打开系统设置窗口,点击的 高级系统设置,在弹出的系统属性小窗口点击 环境变量(N)...

选择系统变量里的Path变量,选中,点击 编辑 按钮。

在打开的窗口里查看是否有 Node.js 的安装目录,如果没有,点击新建按钮,把 Node.js 的安装目录复制一份,然后点击 确定 按钮,再次在 CMD 内测试 npm -v

如果还不行,可以 搜一下

输入下面代码:

npm config set registry https://registry.npmmirror.com/
警告

本博客只支持 pnpm

不建议使用 Git Bash 等使用 Mintty 的工具。

接下来无特殊说明都是在 CMD 内输入。

下载 PNPM

输入:

npm i -g pnpm

稍等片刻后会有类似于下面的结果:

理想输出:

D:\>npm i -g pnpm@10.33.0changed 1 package in 3s1 package is looking for funding  run `npm fund` for details

再输入:

pnpm setup

等它弄完,关闭 CMD,重新开一个(目录保持不变)。

准备包

选好文件夹(例如 D:\test),CMD 切换至该文件夹目录。

CMD 输入:

pnpm i @zhangyimin12345/asph

理想输出:

d:\test>pnpm i @zhangyimin12345/asph WARN  Request took 26280ms: https://registry.npmjs.org/postcssPackages: +298+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Progress: resolved 372, reused 299, downloaded 1, added 298, donedependencies:+ @zhangyimin12345/asph 1.0.5 Warning ───────────────────────────────────────────────────────────────────────────────────╮   Ignored build scripts: esbuild@0.27.7, sharp@0.34.5.   Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.╰────────────────────────────────────────────────────────────────────────────────────────────╯Done in 41.2s using pnpm v10.33.2

发现有个警告,按照它所说的输入:

pnpm approve-builds

A,回车,再按 Y,再回车。

复刻模板

输入:

pnpm asph init my-blog

其中的 my-blog 可以替换为其他值。

根据中文提示完成初始化(选择立即安装依赖)。

理想输出:

d:\test>pnpm asph init my-blogT  初始化 ASPH 项目|o  [SUCC] 模板复制完成。|  [LOG] 已更新 package.json 项目名称。|o  [QUES] 是否立即安装依赖?|  Yes|  [LOG] 使用 pnpm 安装依赖...Lockfile is up to date, resolution step is skippedPackages: +445+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Progress: resolved 445, reused 445, downloaded 0, added 445, donedependencies:+ @astrojs/rss 4.0.18+ @astrojs/vue 6.0.1+ @fortawesome/fontawesome-free 7.2.0+ @olets/markdown-it-wrapperless-fence-rule 1.2.1+ @shikijs/colorized-brackets 4.0.2+ @shikijs/markdown-it 4.0.2+ @shikijs/rehype 4.0.2+ @shikijs/transformers 4.0.2+ @shikijs/twoslash 4.0.2+ @shikijs/types 4.0.2+ astro 6.1.8+ git 0.1.5+ github-slugger 2.0.0+ gray-matter 4.0.3+ hast 1.0.0+ hast-util-to-string 3.0.1+ jinrishici 1.0.6+ js-yaml 4.1.1+ katex 0.16.45+ markdown-it 14.1.1+ markdown-it-anchor 9.2.0+ markdown-it-container 4.0.0+ markdown-it-footnote 4.0.0+ markdown-it-link-attributes 4.0.1+ markdown-it-mark 4.0.0+ markdown-it-math 5.2.1+ markdown-it-task-lists 2.1.1+ mdast 3.0.0+ nprogress 0.2.0+ rehype-autolink-headings 7.1.0+ rehype-katex 7.0.1+ rehype-shiki 0.0.9+ rehype-slug 6.0.0+ rehype-stringify 10.0.1+ remark 15.0.1+ remark-directive 4.0.0+ remark-html 16.0.1+ remark-math 6.0.0+ remark-parse 11.0.0+ remark-rehype 11.1.2+ shiki 4.0.2+ typed.js 3.0.0+ unified 11.0.5+ unist 0.0.1+ unist-util-visit 5.1.0+ vue 3.5.33+ wavesurfer.js 7.12.6devDependencies:+ @types/js-yaml 4.0.9+ @types/markdown-it 14.1.2+ rimraf 6.1.3Done in 6.8s using pnpm v10.33.0|*  [SUCC] 依赖安装完成。|o  感谢使用 ASPH -------------------------+|                                         ||  \\\\ _      ____    ____    _   _      ||      / \    / ___|  |  _ \  | | | |     ||     / _ \   \___ \  | |_)|  | |_| |     ||    / ___ \   ___)|  |  __/  |  _  |     ||   /_/   \_\ |____/  |_|     |_| |_|     ||                                   \\\\  ||                                         ||       便捷、快速、美观的博客框架。      ||                                         ||     Build With Astro + Vite + Vue.      ||                                         |+-----------------------------------------+|  [SUCC] 初始化完成!|o  快速开始 ----------------------+|                                 ||  $ cd my-blog                   ||  $ asph dev  # 本地预览         ||  $ asph build # 构建生产版本    ||  $ asph preview # 预览生产版本  ||                                 |+---------------------------------+||  [INFO] 如未自动退出请按 Ctrl + C 退出 ~d:\test>

输入 快速开始 中给你的第一个指令:(你用的其它文件夹名字的话记得改)

cd my-blog

修改配置

进入文件夹,完善 /src/config/home.yaml/src/config/topbar.yaml

警告
  1. 注意 YAML 转义。
  2. 换行请使用 \n

再打开 astro.config.mjs,将 export default defineConfig 中的 sitebase 字段修改。

本地预览

输入:

asph dev

理想输出:

d:\test\my-blog>asph dev|  [LOG] 检测到包管理器: pnpm [SUCC] 开发服务器已转接||  [INFO]  Ctrl + C 停止服务器> my-blog@0.0.1 dev D:\test\my-blog> rimraf .astro && rimraf node_modules/.vite && astro dev "--port" "4321" "--host" "localhost"[vite] connected.15:29:52 [types] Generated 1ms15:29:52 [WARN] [content] Content config not loaded astro  v6.1.8 ready in 1858 ms Local    http://localhost:4321/15:29:52 watching for file changes... update New version of Astro available: 6.2.1  Run pnpm dlx @astrojs/upgrade to update

当出现类似 http://localhost:4321/ 的网址时,打开它,就可以本地预览了。

信息

本地服务器较慢,请耐性等待。

本地慢并不意味着部署后慢。

构建生产版本

asph build

预览生产版本

asph preview

部署

先确保你安装了 Git,如果没有,请输入:

pnpm i -g git

基本设置

在 Github 上创建好了仓库后,设置基本信息。

git config user.name "你的 Github 用户名"git config user.email "你的 Github 绑定的邮箱"git remote add origin https://github.com/你的 Github 用户名/要部署的仓库.gitgit initgit add .git commit -m "你想要的发布的名字"

如果要部署在类似 用户名.github.io 上,那么 要部署的仓库 就是 你的 Github 用户名.github.io

开始部署

快速版本

警告

我们正在尝试使用 PAT 让博客变得动态化。

所以此方案将会在未来的版本变得不适用。

如果您只想快速部署静态博客,请使用此方案。

输入:

asph deploy

Github Actions

前往 Github 仓库,在 Code 一栏中找到 Settings,打开它,在左侧边栏中找到 Pages,点击它。

Build and deployment 板块下的 Source,将它改为 Github Actions

回到项目根目录(例如 D:\test\my-blog,不是 D:\test\)。

创建 .github/workflows/deploy.yml

# .github/workflows/deploy.ymlname: Deploy Astro to GitHub Pageson:  push:    branches: [ main ]permissions:  contents: read  pages: write  id-token: writejobs:  build:    runs-on: ubuntu-latest    steps:      - name: Checkout        uses: actions/checkout@v4            - name: Setup Node        uses: actions/setup-node@v4        with:          node-version: 22      - name: Install pnpm via npm        run: npm install -g pnpm@10.30.0      - name: Configure Git to use HTTPS        run: |          git config --global url."https://github.com/".insteadOf git@github.com:          git config --global url."https://".insteadOf git://            - name: Install dependencies        run: pnpm install  --ignore-scripts  --frozen-lockfile      - name: Build        run: pnpm run build      - name: Upload artifact        uses: actions/upload-pages-artifact@v3        with:          path: ./dist  deploy:    needs: build    runs-on: ubuntu-latest    environment:      name: github-pages      url: ${{ steps.deployment.outputs.page_url }}    steps:      - name: Deploy to GitHub Pages        id: deployment        uses: actions/deploy-pages@v4

随后输入:

pnpm bgh

补充:node_modules 的重装

请使用:

pnpm i --ignore-scripts

而不是

pnpm i