目錄
#0. VuePress
1. 本地搭建
2. 基礎設定
3. 新增導覽列
4. 新增側邊欄
5. 更換主題
#6. 新增文章資訊
7. 设置语言
8. 开启目录结构
9. 修改主题颜色
10. 自定义修改样式
11. 部署
首頁 web前端 Vue.js 一文快速教你用VuePress + Github Pages搭建一個部落格(實戰)

一文快速教你用VuePress + Github Pages搭建一個部落格(實戰)

Dec 20, 2021 pm 06:45 PM
vuepress 部落格

這篇文章給大家分享一個VuePress實戰,透過本文教你如何快速用VuePress Github Pages搭建一個博客,希望對大家有所幫助。

一文快速教你用VuePress + Github Pages搭建一個部落格(實戰)

最近完成了 TypeScript 最新官方文件 Hanbook 的翻譯,一共十四篇,堪稱國內的最好 TypeScript4 入門教程之一。為了方便大家閱讀,我用VuePress Github Pages 搭建了博客,博客效果如下:

#0. VuePress

#VuePress 自然不用多說,基於Vue 的靜態網站產生器,風格簡約,配置也比較簡單。之所以不使用VitePress,是因為想使用現有的主題, 而VitePress 不相容於當前VuePress 的生態系統,至於為什麼不選擇VuePress@next,考慮到還處於Beta階段,等穩定後再開始遷移。 【相關推薦:《vue.js教學》】

1. 本地搭建

快速開始同VuePress 官網

#1、建立並進入一個新目錄

// 文件名自定义
mkdir vuepress-starter && cd vuepress-starter
登入後複製

2、使用你喜歡的套件管理器進行初始化

yarn init # npm init
登入後複製

3、將VuePress 安裝為本地依賴

yarn add -D vuepress # npm install -D vuepress
登入後複製

4 、建立你的第一篇文檔,VuePress 會以docs 為文檔根目錄,所以這個README.md 相當於主頁:

mkdir docs && echo '# Hello VuePress' > docs/README.md
登入後複製

5、在package.json 中加入一些scripts

{
  "scripts": {
    "docs:dev": "vuepress dev docs",
    "docs:build": "vuepress build docs"
  }
}
登入後複製

6、在本機啟動伺服器

yarn docs:dev # npm run docs:dev
登入後複製

VuePress 會在http://localhost:8080 (opens new window) 啟動一個熱重載的開發伺服器。

2. 基礎設定

在文件目錄下建立一個 .vuepress 目錄,所有 VuePress 相關的檔案都會被放在這裡。此時你的專案結構可能是這樣:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
└─ package.json
登入後複製

.vuepress 資料夾下加入config.js,設定網站的標題和描述,方便SEO:

module.exports = {
  title: 'TypeScript4 文档',
  description: 'TypeScript4 最新官方文档翻译'
}
登入後複製

此時介面類似:

3. 新增導覽列

我們現在在頁首的右上角新增導覽列,修改config.js:

module.exports = {
    title: '...',
    description: '...',
    themeConfig: {
        nav: [
            { text: '首页', link: '/' },
            { 
                text: '冴羽的 JavaScript 博客', 
                items: [
                    { text: 'Github', link: 'https://github.com/mqyqingfeng' },
                    { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' }
                ]
            }
        ]
    }
}
登入後複製

效果如下:

#更多的設定參考VuePress 導覽列:

https://vuepress.vuejs.org/zh/theme/default-theme-config.html#導覽列

4. 新增側邊欄

#現在我們加入一些md 文檔,目前文檔的目錄如下:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
|  └─ handbook
|  	  └─ ConditionalTypes.md
|	    └─ Generics.md
└─ package.json
登入後複製

我們在config.js 配置如下:

module.exports = {
    themeConfig: {
        nav: [...],
        sidebar: [
            {
                title: '欢迎学习',
                path: '/',
                collapsable: false, // 不折叠
                children: [
                    { title: "学前必读", path: "/" }
                ]
            },
            {
              title: "基础学习",
              path: '/handbook/ConditionalTypes',
              collapsable: false, // 不折叠
              children: [
                { title: "条件类型", path: "/handbook/ConditionalTypes" },
                { title: "泛型", path: "/handbook/Generics" }
              ],
            }
          ]
    }
}
登入後複製

對應的效果如下:

5. 更換主題

現在基本的目錄和導航功能已經實現,但如果我還想要載入loading、切換動畫、模式切換(暗黑模式)、回頂部、評論等功能呢,為了簡化開發成本,我們可以直接使用主題,這裡使用的主題是vuepress-theme-rec(https://vuepress-theme-reco.recoluan.com/):

現在我們安裝vuepress-theme-reco:

npm install vuepress-theme-reco --save-dev
# or
yarn add vuepress-theme-reco
登入後複製

然後在config.js 裡引用主題:

module.exports = {
  // ...
  theme: 'reco'
  // ...
}
登入後複製

刷新頁面,我們會發現一些細節的改變,例如載入時的loading 動畫、以及支援切換暗黑模式:

#6. 新增文章資訊

但我們也會發現,像條件類型這篇文章,條件類型(Conditional Types) 竟然出現了兩遍,這是因為這個主題自動提取了第一個大標題作為本文的標題,我們可以在每篇文章的md文件中加入一些資訊修改:

---
title: 条件类型
author: 冴羽
date: '2021-12-12'
---
登入後複製

此時文章的效果如下:

但如果你不想要标题、作者、时间这些信息呢,我们可以在样式里隐藏,这个稍后会讲到。

7. 设置语言

注意,上图的文章时间,我们写入的格式为 2021-12-12 ,但是显示的是 12/12/2021,这是因为 VuePress 默认的 lang 为 en-US,我们修改一下 config.js:

module.exports = {
  // ...
  locales: {
    '/': {
      lang: 'zh-CN'
    }
  },
  // ...
}
登入後複製

可以发现时间换了一种展示方式:

8. 开启目录结构

在原本的主题里,我们发现每篇文章的目录结构出现在左侧:

而 vuepress-theme-reco 将原有的侧边栏的中的多级标题移出,生成子侧边栏,放在了页面的右侧,如果你要全局开启,可在页面 config.js 里设置开启:

module.exports = {
  //...
  themeConfig: {
    subSidebar: 'auto'
  }
  //...
}
登入後複製

此时效果如下:

9. 修改主题颜色

VuePress 基于 Vue,所以主题色用的是 Vue 的绿色,然而 TypeScript 的官方色则是蓝色,那如何修改 VuePress 的主题色呢?

你可以创建一个 .vuepress/styles/palette.styl 文件,文件代码如下:

$accentColor = #3178c6
登入後複製

此时可以发现主题颜色变了:

更多的颜色修改参考 VuePress 的 palette.styl

10. 自定义修改样式

如果你想自定义修改一些 DOM 元素的样式呢?就比如在暗黑模式下:

我们发现用作强调的文字颜色比较暗淡,在暗黑模式下看不清楚,我想改下这个文字的颜色和背景色呢?

而 VuePress 提供了一种添加额外样式的简便方法。你可以创建一个 .vuepress/styles/index.styl 文件。这是一个 Stylus 文件,但你也可以使用正常的 CSS 语法。

我们在 .vupress 文件夹下创建这个目录,然后创建 index.styl 文件,代码如下:

// 通过检查,查看元素样式声明
.dark .content__default code {
    background-color: rgba(58,58,92,0.7);
    color: #fff;
}
登入後複製

此时文字就清晰了很多:

那之前我们提到的隐藏每篇文章的标题、作者、时间呢,其实也是类似的方式:

.page .page-title {
   display: none;
}
登入後複製

最后的效果如下:

11. 部署

我们的博客就算是正式的做好了,接下来我们部署到免费的 Github Pages 上。我们在 Github 上新建一个仓库,这里我取得仓库名为:learn-typescript

对应,我们需要在 config.js 添加一个 base 路径配置:

module.exports = {
  	// 路径名为 "/<REPO>/"
    base: &#39;/learn-typescript/&#39;,
  	//...
}
登入後複製

最终的 config.js 文件内容为:

module.exports = {
    title: &#39;TypeScript4 文档&#39;,
    description: &#39;TypeScript4 最新官方文档翻译&#39;,
    base: &#39;/learn-typescript/&#39;,
    theme: &#39;reco&#39;,
    locales: {
        &#39;/&#39;: {
          lang: &#39;zh-CN&#39;
        }
    },
    themeConfig: {
        // lastUpdated: &#39;上次更新&#39;,
        subSidebar: &#39;auto&#39;,
        nav: [
            { text: &#39;首页&#39;, link: &#39;/&#39; },
            { 
                text: &#39;冴羽的 JavaScript 博客&#39;, 
                items: [
                    { text: &#39;Github&#39;, link: &#39;https://github.com/mqyqingfeng&#39; },
                    { text: &#39;掘金&#39;, link: &#39;https://juejin.cn/user/712139234359182/posts&#39; }
                ]
            }
        ],
        sidebar: [
            {
                title: &#39;欢迎学习&#39;,
                path: &#39;/&#39;,
                collapsable: false,
                children: [
                    { title: "学前必读", path: "/" }
                ]
            },
            {
              title: "基础学习",
              path: &#39;/handbook/ConditionalTypes&#39;,
              collapsable: false,
              children: [
                { title: "条件类型", path: "/handbook/ConditionalTypes" },
                { title: "泛型", path: "/handbook/Generics" }
              ],
            }
          ]
    }
}
登入後複製

然后我们在项目 vuepress-starter 目录下建立一个脚本文件:deploy.sh,注意修改一下对应的用户名和仓库名:

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
npm run docs:build

# 进入生成的文件夹
cd docs/.vuepress/dist

git init
git add -A
git commit -m &#39;deploy&#39;

# 如果发布到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:mqyqingfeng/learn-typescript.git master:gh-pages

cd -
登入後複製

然后命令行切换到 vuepress-starter 目录下,执行  sh deploy.sh,就会开始构建,然后提交到远程仓库,注意这里提交到了 gh-pages 分支,我们查看下对应仓库分支的代码:

我们可以在仓库的 Settings -> Pages 中看到最后的地址:

像我最後產生的位址就是 https://mqyqingfeng.github.io/learn-typescript/

##至此,我們完成了VuePress 和Github Pages 的部署。

更多程式相關知識,請造訪:

程式設計入門! !

以上是一文快速教你用VuePress + Github Pages搭建一個部落格(實戰)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

從頭開始,逐步引導您安裝Flask,快速建立個人博客 從頭開始,逐步引導您安裝Flask,快速建立個人博客 Feb 19, 2024 pm 04:01 PM

從零開始,手把手教你安裝Flask和快速建立個人部落格作為一個喜歡寫作的人來說,擁有個人部落格是非常重要的。而Flask作為一個輕量級的PythonWeb框架,可以幫助我們快速建立一個簡潔而功能完善的個人部落格。在本文中,我將從零開始,手把手教你如何安裝Flask並快速建立個人部落格。第一步:安裝Python和pip在開始之前,我們需要先安裝Python和pi

2022年十大開源php部落格系統有哪些? 【推薦】 2022年十大開源php部落格系統有哪些? 【推薦】 Jul 27, 2022 pm 05:38 PM

博客,又譯為網絡日誌、博客或部落閣等,是一種通常由個人管理、不定期張貼新的文章的網站。那怎麼搭建部落格? PHP部落格系統有哪些?哪個部落格系統好用?下面PHP中文網就來跟大家總結分享十大開源php部落格系統,一起來看看吧!

創建一個簡單的部落格:使用PHP和SQLite 創建一個簡單的部落格:使用PHP和SQLite Jun 21, 2023 pm 01:23 PM

隨著網路的發展,部落格成為越來越人分享自己生活、知識和想法的平台。如果你也想創建一個自己的博客,那麼本文將介紹如何使用PHP和SQLite來創建一個簡單的博客。在確定需求在開始創建部落格之前,我們需要確定自己想要實現的功能。例如:建立部落格文章編輯部落格文章刪除部落格文章顯示部落格文章清單顯示部落格文章詳情使用者認證和權限控制安裝PHP和SQLite我們需要安裝PHP和S

使用Python Django框架建立部落格網站 使用Python Django框架建立部落格網站 Jun 17, 2023 pm 03:37 PM

隨著網路的普及,部落格在資訊傳播和交流方面扮演著越來越重要的角色。在此背景下,越來越多的人開始建立自己的部落格網站。本文將介紹如何使用PythonDjango框架來建立自己的部落格網站。一、PythonDjango框架簡介PythonDjango是一個免費的開源Web框架,可用於快速開發Web應用程式。該框架為開發人員提供了強大的工具,可幫助他們建立功能豐

如何使用PHP創建一個簡單的博客 如何使用PHP創建一個簡單的博客 Sep 24, 2023 am 08:25 AM

如何使用PHP創建一個簡單的部落格1.引言隨著網路的快速發展,部落格已經成為了人們分享經驗、記錄生活和表達觀點的重要方式。本文將介紹如何使用PHP來創建一個簡單的博客,並附上具體的程式碼範例。 2.準備工作在開始之前,你需要具備以下開發環境:一台安裝了PHP解釋器和Web伺服器(如Apache)的電腦一個資料庫管理系統,如MySQL一個文字編輯器或IDE3

如何創建部落格 如何創建部落格 Oct 10, 2023 am 09:46 AM

可以透過確定部落格的主題和目標受眾、選擇合適的部落格平台、註冊網域和購買主機、設計部落格的外觀和佈局、編寫優質的內容、推廣部落格和分析和改進等步驟來建立部落格。

CentOS安裝與建置部落格全攻略 CentOS安裝與建置部落格全攻略 Feb 14, 2024 pm 08:27 PM

本文將詳細介紹如何在CentOS系統上安裝和建立博客,包括所需的軟體安裝、配置以及基本的使用,文章最後會分享一個Linux小知識。隨著互聯網技術的不斷發展,越來越多的人選擇使用博客來記錄生活、分享知識,而CentOS作為一種流行的Linux發行版,具有穩定、安全的特點,適合用於搭建博客,本文將詳細介紹在CentOS上安裝和建置部落格的步驟。安裝前的準備1.確保已經安裝好CentOS作業系統,並且能夠連接到網路。 2.具備基本的Linux命令列操作知識。安裝Apache伺服器1.開啟終端,使用下列命

golang Websocket開發指南:實現多人線上部落格功能 golang Websocket開發指南:實現多人線上部落格功能 Dec 02, 2023 pm 01:17 PM

GolangWebsocket開發指南:實現多人線上部落格功能在如今網路發達的時代,部落格已經成為了人們分享自己觀點和知識的重要工具。為了提升使用者體驗,實現多人線上部落格功能已經成為了許多網站的需求。本文將介紹如何使用Golang中的Websocket技術來實現這個功能,並給出具體的程式碼範例。 Websocket是HTML5中新增的一種通訊協議,它允許伺服器和瀏

See all articles