無需花錢購買域名服務器!使用 VuePress + Github 30分鐘搭建屬于自己的博客網站(保姆級教程)

前言

GitHub Pages 提供免費全球加速的服務器資源,VuePress 將 Markdown 變成藝術品級的網頁,僅需 30 分鐘,你便可以像提交代碼一樣發布文章,過程完全免費。

博客搭建好的效果如下:https://honorsong.github.io/example-blog/
在這里插入圖片描述
GitHub 官網
VuePress 官方文檔

一、本地搭建

準備工具:電腦上需要提前裝好 Node.js


第一步:新建一個文件夾

# 打開電腦的「終端」
# 輸入命令:
mkdir vuepress-starter && cd vuepress-starter

翻譯:創建一個叫 vuepress-starter 的文件夾,并進入它


第二步:初始化項目

# 輸入命令:
yarn init   # 或者用 npm init

操作提示:直接按回車鍵確認所有選項


第三步:安裝 VuePress

# 輸入命令:
yarn add -D vuepress   # 或者用 npm install -D vuepress

翻譯:把 VuePress 這個建站工具安裝到你的文件夾里


第四步:創建文檔

# 輸入命令:
mkdir docs && echo '# Hello VuePress' > docs/README.md

*翻譯:在文件夾里新建一個 docs 子文件夾,并創建主頁文件 README.md *


第五步:修改配置文件

打開 package.json 文件,在 scripts 里添加:

{"scripts": {"docs:dev": "vuepress dev docs",    // 啟動開發模式"docs:build": "vuepress build docs" // 生成最終網站}
}

第六步:啟動網站

# 輸入命令:
yarn docs:dev   # 或者用 npm run docs:dev

效果:瀏覽器會自動打開 http://localhost:8080,你會看到一個寫著 “Hello VuePress” 的網站!


Hello VuePress

🔥 實時更新

現在你可以:

  1. 用 IDE 或記事本打開 docs/README.md
  2. # Hello VuePress 改成 # 我的第一個網站
  3. 保存文件 → 網站會自動刷新!

我的第一個網站

跟著做下來,你的第一個文檔網站就煮好啦! 🎉

二、基礎配置

docs 文件夾里新建 .vuepress 文件夾并添加 config.js ,所有 VuePress 相關的文件都會被放在這里。

此時你的項目結構可能是這樣:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
└─ package.json

config.js 里寫:

module.exports = {title: 'VuePress 文檔',description: 'VuePress + Github 30分鐘搭建屬于自己的博客網站'
}

👉 效果:搜索引擎更容易找到你的網站(SEO)

SEO


三、添加導航菜單

修改 config.js 如下:

module.exports = {title: 'VuePress 文檔',description: 'VuePress + Github 30分鐘搭建屬于自己的博客網站',themeConfig: {nav: [{text: '首頁', link: '/'},{text: 'CodeFish的博客',items: [{text: 'GitHub', link: 'https://github.sheincorp.cn/'},{text: 'CSDN', link: 'https://blog.csdn.net/weixin_41105242'},{text: '掘金', link: 'https://juejin.cn/'}]}]}
}

👉 效果:網站右上角出現導航菜單

添加導航菜單


四、添加側邊欄

docs 文件夾里新建 blog 文件夾并添加一些 .md 文檔,添加后的目錄如下:

.
├─ docs
│  ├─ README.md
│  └─ .vuepress
│     └─ config.js
|  └─ blog
|  	  └─ FirstMenu.md
|  	  └─ SecondMenu.md
|  	  └─ ThirdMenu.md
└─ package.json

修改 config.js 如下:

module.exports = {title: 'VuePress 文檔',description: 'VuePress + Github 30分鐘搭建屬于自己的博客網站',themeConfig: {nav: [...],sidebar: [{title: '首頁',path: '/'},{title: "菜單一",path: '/blog/FirstMenu',collapsable: false, // 不折疊children: [{ title: "菜單二", path: "/blog/SecondMenu" },{ title: "菜單三", path: "/blog/ThirdMenu" }],}]}
}

👉 效果:左側出現清晰的菜單目錄
菜單目錄


五、部署到 Github Pages

我們的博客就算是正式做好了,接下來我們部署到免費的 Github Pages 上。

首先在 Github 上新建一個倉庫,這里我取的倉庫名為 example-blog

example-blog

下一步,我們需要在 config.js 對應添加一個 base 路徑配置:

module.exports = {// 路徑名為 "/<REPO>/"base: '/example-blog/',//...
}

最終的 config.js 文件內容為:

module.exports = {title: 'VuePress 文檔',description: 'VuePress + Github 30分鐘搭建屬于自己的博客網站',base: '/example-blog/',themeConfig: {nav: [{text: '首頁', link: '/'},{text: '我的博客',items: [{text: 'GitHub', link: 'https://github.sheincorp.cn/'},{text: 'CSDN', link: 'https://blog.csdn.net/weixin_41105242'},{text: '掘金', link: 'https://juejin.cn/'}]}],sidebar: [{title: '首頁',path: '/'},{title: "菜單一",path: '/blog/FirstMenu',collapsable: false, // 不折疊children: [{ title: "菜單二", path: "/blog/SecondMenu" },{ title: "菜單三", path: "/blog/ThirdMenu" }],}]}
}

然后我們在項目 vuepress-starter 目錄下建立一個腳本文件 deploy.sh

注意修改一下對應的用戶名和倉庫名:

#!/usr/bin/env sh# 確保腳本拋出遇到的錯誤
set -e# 生成靜態文件
yarn run docs:build# 進入生成的文件夾
cd docs/.vuepress/distgit init
git add -A
git commit -m 'deploy'
git branch -M main
git push -f git@github.com:HonorSong/example-blog.git main:pagescd -

然后命令行切換到 vuepress-starter 目錄下,執行:

# 輸入命令:
sh deploy.sh

項目就會開始構建,然后提交到遠程倉庫,注意這里提交到了 pages 分支,我們查看下對應倉庫分支的代碼:

Github Pages
我們可以在倉庫的 Settings -> Pages 中看到最后的地址:

Github Pages
像我最后生成的地址就是 https://honorsong.github.io/example-blog/

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

此后每一次文章內容的更新,配置的更新,僅需要重新執行 sh deploy.sh 命令重新部署,即可對線上頁面進行更新。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77940.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

提交到Gitee倉庫

文章目錄 注冊配置公鑰創建空白的碼云倉庫把本地項目上傳到碼云對應的空白倉庫中 注冊 注冊并激活碼云賬號&#xff08; 注冊頁面地址&#xff1a;https://gitee.com/signup &#xff09; 可以在自己C盤/用戶/用戶名/.ssh 可以看到 有id_rsa.pub 以前在GitHub注冊時搞過&…

如何在 Java 中從 PDF 文件中刪除頁面(教程)

由于 PDF 文件格式不是 Java 原生支持的&#xff0c;因此要從 PDF 中刪除頁面&#xff0c;你需要使用外部庫。 本教程介紹如何使用 JPedal 來實現這一功能。 開始使用 ? 將 JPedal 添加到你的類路徑或模塊路徑中&#xff08;可從官網下載安裝試用版 JAR 文件&#xff09; ?…

機器學習第二篇 多變量線性回歸

數據集&#xff1a;世界幸福指數數據集中的變量有幸福指數排名、國家/地區、幸福指數得分、人均國內生產總值、健康預期壽命、自由權、社會支持、慷慨程度、清廉指數。我們選擇GDP per Capita和Freedom&#xff0c;來預測幸福指數得分。 文件一&#xff1a;linear&#xff0c;…

位運算,狀態壓縮dp(算法競賽進階指南學習筆記)

目錄 移位運算一些位運算的操作最短 Hamilton 路徑&#xff08;狀態壓縮dp模板&#xff0c;位運算&#xff09; 0x是十六進制常數的開頭&#xff1b;本身是聲明進制&#xff0c;后面是對應具體的數&#xff1b; 數組初始化最大值時用0x3f賦值&#xff1b; 移位運算 左移 把二…

Java高頻面試之并發編程-05

hello啊&#xff0c;各位觀眾姥爺們&#xff01;&#xff01;&#xff01;本baby今天來報道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面試官&#xff1a;線程有哪些調度方法&#xff1f; 在Java中&#xff0c;線程的調用方法主要包括以下幾種方式&#xff0c;每種方式適用于…

進程的同步和互斥

進程同步&#xff08;synchronous&#xff09; ?通俗理解&#xff1a; 就像在排隊買飯&#xff0c;一個一個來&#xff0c;前面的人不走&#xff0c;后面的人就不能干事。 進程同步就是&#xff1a;多個進程之間需要協調&#xff0c;有先后順序&#xff0c;一個進程要等另一…

PDF處理控件Aspose.PDF指南:使用 Python 將 EPUB 轉換為 PDF

EPUB是一種流行的電子書格式&#xff0c;用于可重排內容&#xff0c;而PDF則廣泛用于固定版式文檔&#xff0c;非常適合共享和打印。如果您想使用 Python 將 EPUB 轉換為 PDF&#xff0c;Aspose.PDF for Python 提供了一個簡單可靠的解決方案。在本教程中&#xff0c;我們將向您…

day4-小白學習JAVA---開發軟件_Scanner鍵盤錄入_Random隨機數_流程控制語句

開發軟件_Scanner鍵盤錄入_Random隨機數_流程控制語句 一、開發軟件idea&#xff08;MAC版&#xff09;1、軟件安裝-安裝社區版2、中英文設置3、保存時格式化配置4、注釋和代碼對不齊5、idea快捷鍵 二、鍵盤錄入--Scanner1、next和nextInt2、next和nextLine區別 三、Random隨機…

MySQL基本查詢與數據操作全面解析

目錄 1. CRUD操作概述 2. Create操作詳解 2.1 表的創建 2.2 單行數據插入 2.3 多行數據插入 2.4 插入沖突處理 3. Retrieve操作詳解 3.1 基礎查詢 全列查詢&#xff08;慎用&#xff09; 指定列查詢 表達式查詢 結果去重 3.2 條件查詢&#xff08;WHERE子句&#…

01.Python代碼Pandas是什么?pandas的簡介

01.Python代碼Pandas是什么&#xff1f;pandas的簡介 提示&#xff1a;幫幫志會陸續更新非常多的IT技術知識&#xff0c;希望分享的內容對您有用。本章分享的是pandas的使用語法。前后每一小節的內容是存在的有&#xff1a;學習and理解的關聯性&#xff0c;希望對您有用~ pyth…

(8)ECMAScript語法詳解

本系列教程目錄&#xff1a;Vue3Element Plus全套學習筆記-目錄大綱 文章目錄 第2章 ECMAScript2.1 ECMAScript 的發展歷史2.2 什么是ES62.3 ES6語法新特性2.3.1 變量聲明let2.3.2 常量聲明2.3.3 模板字符串2.3.4 函數默認參數2.3.5 箭頭函數2.3.6 對象初始化簡寫2.3.7 解構2.3…

Android JNI開發中頭文件引入的常見問題與解決方案?,提示:file not found

Android JNI開發中頭文件引入的常見問題與解決方案 問題場景&#xff08;新手易犯錯誤&#xff09; 假設你在開發一個JNI項目&#xff0c;想要實現一個線程安全的隊列&#xff08;SafeQueue&#xff09;&#xff0c;于是直接在cpp目錄下創建了safe_queue.h文件&#xff0c;并開…

C++靜態與動態聯編區別解析

在 C++ 中,靜態聯編(Static Binding)和動態聯編(Dynamic Binding)是兩種不同的函數調用綁定機制,核心區別在于確定函數調用的時機和多態性的支持。以下是詳細解釋: 1. 靜態聯編(Static Binding) 定義:在編譯階段確定函數調用與具體實現的關系。特點: 由編譯器直接確…

如何批量為多個 Word 文檔添加水印保護

在日常辦公中&#xff0c;Word文檔添加水印是一項重要的操作&#xff0c;特別是在需要保護文件內容的安全性和版權時。雖然Office自帶了添加水印的功能&#xff0c;但當需要一次性給多個Word文檔添加水印時&#xff0c;手動操作顯得非常繁瑣且低效。為了提高效率&#xff0c;可…

【愚公系列】《Python網絡爬蟲從入門到精通》057-分布式爬取中文日報新聞數據

&#x1f31f;【技術大咖愚公搬代碼&#xff1a;全棧專家的成長之路&#xff0c;你關注的寶藏博主在這里&#xff01;】&#x1f31f; &#x1f4e3;開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主&#xff01; &#x1f…

Linux系統編程 day9 SIGCHLD and 線程

SIGCHLD信號 只要子進程信號發生改變&#xff0c;就會產生SIGCHLD信號。 借助SIGCHLD信號回收子進程 回收子進程只跟父進程有關。如果不使用循環回收多個子進程&#xff0c;會產生多個僵尸進程&#xff0c;原因是因為這個信號不會循環等待。 #include<stdio.h> #incl…

微信小程序拖拽排序有效果圖

效果圖 .wxml <view class"container" style"--w:{{w}}px;" wx:if"{{location.length}}"><view class"container-item" wx:for"{{list}}" wx:key"index" data-index"{{index}}"style"--…

hadoop三大組件的結構及各自的作用

1 HDFS 1.1功能 HDFS 是 Hadoop 的分布式文件系統&#xff0c;用于存儲和管理海量數據。它具有高容錯性、高吞吐量和可擴展性&#xff0c;能夠在多個節點上存儲和管理大規模數據 1.2架構&#xff1a;采用主從架構&#xff0c;由一個 NameNode 和多個 DataNode 組成。NameNode…

解決jupyter notebook修改路徑下沒有c.NotebookApp.notebook_dir【建議收藏】

文章目錄 一、檢查并解決問題二、重新設置默認路徑創作不易&#xff0c;感謝未來首富們的支持與關注&#xff01; 最近在用jupyter notebook編寫代碼時&#xff0c;更新了一下Scikit-learn的版本&#xff0c;然后重新打開jupyter notebook的時候&#xff0c;我傻眼了&#xff0…

MCP Host、MCP Client、MCP Server全流程實戰

目錄 準備工作 MCP Server 實現 調試工作 MCP Client 實現 MCP Host 配置 第一步:配置支持 function calling的 LLM 第二步:添加MCP Server 一般有兩種方式,第一種json配置,第二種直接是Command形式,我這里采用Command形式 第三步:使用MCP Server 準備工作 安裝…