Skip to content
使用VitePress和GitHub Pages建立部落格
📆2023-12-03 | 📂Blog

搭配我製作的VitePress部落格主題,只需幾個步驟和設定就能建立好部落格並開始寫作。


  1. 安裝NodeJS

VitePress的最低版本需求為18,如果有多版本使用需求則可以考慮使用NVMNVS

  1. 建立GitHub專案

在GitHub建立一個名為{username}.github.io的新專案,{username}請替換為個人帳號

  1. 下載部落格主題

clone剛剛建立的新專案,下載我製作的VitePress主題,將內容解壓縮進該專案目錄

  1. 編輯部落格設定

設定檔路徑為".vitepress/theme/config.ts"

此步驟只需先將base改為'/'即可,其他設定可以在看過下方說明後再做更動

typescript
const themeConfig = {
  // https://vitepress.dev/reference/site-config
  base: '/',
  lang: 'zh-TW',
  logo: '/avatar.png',
  favicon: '/favicon.png',
  title: 'Trigger !',
  description: 'A blog powered by VitePress',
  hostname: 'https://example.com',
  lastUpdated: true,
  cacheDir: './node_modules/vitepress_cache',
  appearance: <Appearance>'dark',
  cleanUrls: true,
  mdMath: true,  // math equations
  mdLineNums: true,  // line numbers for code block
  // https://vitepress.dev/reference/default-theme-config
  nav: [
    { text: '🏠 Home', link: '/' },
    { text: '📚 Archives', link: '/archives' },
    { text: '📁 Category', link: '/category' },
    { text: `🔖 Tags`, link: '/tags' },
    { text: '🙆 About', link: '/about' }
  ],
  aside: false,
  socialLinks: <SocialLink[]>[
    { icon: 'github', link: 'https://github.com/laplacetw' },
  ],
  footer: {
    message: `Powered by <a target='_blank' href='https://vitepress.dev'>VitePress</a> 
      Theme by <a target='_blank' href='https://github.com/laplacetw/vitepress-theme-trigger'>Trigger</a>`,
    copyright: `<a target='_blank' href='https://creativecommons.org/licenses/by/4.0/'>
      CC BY 4.0</a> | © Trigger ${new Date().getFullYear()}`
  },
  // custom theme config
  postsPerPage: 5,
  utterances: {
    repo: '',
    issueTerm: 'title',
    light: 'github-light',
    dark: 'gruvbox-dark'
  }
}

各項設定值說明

基本上就是整合常用的網站設定主題設定方便改動而已

  1. 部署

直接commit & push即可觸發GitHub Workflow自動部署至{username}.github.io,其他部署需求可以參考官方文件

  1. 發文

我製作的VitePress主題附帶了自動生成模板腳本,使用以下指令在posts目錄下建立新文章:

shell
(p)npm run new {new-post-filename}

新文章模板:

markdown
---
date: YYYY-MM-DD hh:mm
title: new-post-filename
outline: deep
category: 
tags:
- 
---
write excerpt here

---

Last updated: