AcBlog 静态博客生成器使用说明

AcBlog 静态博客生成器使用说明

AcBlog 是一个还在开发中的开源博客系统,支持纯静态部署。

项目语言:C#
框架:ASP.NET Core, Blazor

AcBlog 前端使用 WebAssembly 实现,支持 SPA,纯静态部署,后端支持静态和动态部署。以下是静态生成器生成的网站示例。

  • AcBlog GitHub Pages
  • AcBlog Gitee Pages

欢迎到 GitHub Star ⭐ 。

项目地址:https://github.com/acblog/acblog

创建存储库

对于纯静态部署的博客,参照项目主页的文件结构建立存储库:

  • app 目录下的内容将被直接复制到网站根目录
  • posts 目录下的内容为所有的文章(以 .md 为后缀),生成器将读取并用于生成静态后端
  • assets 目录下的内容将被直接复制到生成器输出目录,可用于存储文章中使用的图片等文件
  • acblog.json 包含了提供给生成器的相关配置
  • blog.json 包含了博客的相关信息
  • .github/workflows/deploy.yml 脚本用于自动构建并推送 GitHub Pages

编写说明

acblog.json 配置文件

{
  "acblog": {
    "Properties": {
      "Raw": {
        "remote.origin.generator.baseAddress": "博客网址",
      }
    }
  }
}

一般情况下,只需要填写博客网址,以供站点地图和 ATOM feed (RSS) 的生成使用。

  • 生成的站点地图默认位于 博客网址/data/Site/sitemap.xml
  • 生成的 ATOM feed 默认位于 博客网址/data/Site/atom.xml

blog.json

{
   "Name": "Blog name",
   "Description": "Blog description",
   "StartYear": 2020,
   "Onwer": "onwer",
    // 主页背景图地址,将图片放到 app 目录下,在这里填写文件名即可
   "Cover": "cover.jpg",
   "Properties": {
      "Raw": {}
   }
}

此文件提供了博客的描述信息,被用于网站的信息展示。

文章结构

---
id: 文章id(生成网址)
author: ''
title: '标题'
creationTime: 2020/1/1 12:00:00 +08:00
modificationTime: 2020/1/1 12:00:00 +08:00
category: [一级分类, 二级分类]
keywords: [关键字]
type: 类型(article,slides,note)
password: 密码
---

Content (Markdown)

如不指定分类,将使用文件的目录结构自动生成分类:/posts/A/B/article.md 分类为 [A, B]

自动构建

AcBlog 实现了静态前端和静态后端自动生成的 GitHub Actions,通过它们可以很容易地进行自动构建。

文件路径 .github/workflows/deploy.yml

name: Deploy
on:
  push:
jobs:
  update:
    runs-on: ubuntu-latest
    continue-on-error: false
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          persist-credentials: false
      - # 静态前端生成器
        name: Generate Frontend
        uses: acblog/wasm-ghpages-generate-action@master
      - # 静态后端生成器
        name: Generate Backend
        uses: acblog/static-backend-generate-action@master
        with:
          # 生成器输出目录,对应网站根目录下的 /data 目录
          dist: "./dist/data"
      - # 如果使用了 assets 目录,则可以加上这一条
        # 将 assets 提升到项目根目录处,简化链接编写
        name: Copy out assets
        run: cp -r ./dist/data/assets ./dist/assets
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@releases/v3
        with:
          # GitHub Token 用于 push 到仓库
          ACCESS_TOKEN: ${{ secrets.PUSH_TOKEN }}
          BRANCH: master
          FOLDER: dist
          CLEAN: true

由于项目前端依赖 WebAssembly,需手动在 GitHub Pages 分支的根目录下添加 .nojekyll 文件(内容为空即可)以禁用 GitHub Pages 的 Jekyll 自动构建。

你可能感兴趣的:(Designs,blazor,C#,.NET,博客)