0成本通过Hugo和GitHub Pages搭建博客
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
使用 Chocolatey 安装 Hugo
Chocolatey 是一个 Windows 软件包管理器,使用 PowerShell 和 NuGet 作为基础。它可以自动化软件的安装、升级和卸载过程。
安装 Chocolatey(如果还没有安装)
Chocolatey 允许你通过设置环境变量来更改默认安装路径。在安装 Chocolatey 之前,你需要设置 ChocolateyInstall 环境变量来指定新的安装路径。
打开 PowerShell(以管理员身份运行),并执行以下命令指定自定义安装路径:
1. [System.Environment]::SetEnvironmentVariable('ChocolateyInstall', 'D:\App\chocolatey', [System.EnvironmentVariableTarget]::Machine)
- 如果不设置默认安装路径为:C:\ProgramData\chocolatey
设置完 ChocolateyInstall 环境变量后,重新打开一下会话,执行下面的命令检查一下是否设置成功
Get-Item Env:ChocolateyInstall
打开 PowerShell(以管理员身份运行),执行以下命令安装 Chocolatey:
1. Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
检查是否安装成功
choco -h
安装 Hugo
在 PowerShell 中运行以下命令安装 Hugo:
安装软件包:
choco install hugo -confirm
升级软件包:
choco upgrade hugo
卸载软件包:
choco uninstall hugo
验证安装:
1. hugo version
创建 Hugo 网站
1. 创建 Hugo 网站
打开终端或命令行,执行以下命令:
1. # 导航到目标目录
2. cd D:/# 创建目标目录并进入
mkdir hugo
cd hugo# 在当前目录下创建 Hugo 站点 cyrus
hugo new site cyrus
2. 添加主题
官方主题网站:https://themes.gohugo.io/
你可以选择一个喜欢的主题并添加到你的 Hugo 网站。例如:
1. git init
2. git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
在 hugo.toml 文件中添加 theme = “ananke”,表示使用 themes 下的 ananke 主题

由于 ananke 主题使用 SCSS/SASS,Hugo标准版是不支持的。
Hugo 的扩展版包含了对 SCSS/SASS 等高级功能的支持,通过以下命令升级到扩展版
choco upgrade hugo-extended -confirm
3. 创建内容
生成一个新的博客文章:
1. hugo new posts/my-first-post.md
- 编辑 content/posts/my-first-post.md 文件,添加你的文章内容。
4. 本地预览
运行以下命令来本地预览你的博客:
1. # 启动服务器
2. hugo server
3. # 或
4. # 启动本地开发服务器,包括草稿内容在内。
5. hugo server -D
- 打开浏览器访问 http://localhost:1313 查看你的博客。
5. 生成静态文件
hugo
生成的静态文件会放在 public 目录中。
部署到 GitHub Pages
1. 创建 GitHub 仓库
在 GitHub 上创建一个新的仓库,命名为 blog。
2. 配置 Hugo 部署
在你的 Hugo 项目中,创建 .github/workflows/hugo.yaml 文件,内容如下:
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pageson:# Runs on pushes targeting the default branchpush:branches:- main# Allows you to run this workflow manually from the Actions tabworkflow_dispatch:# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:contents: readpages: writeid-token: write# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:group: "pages"cancel-in-progress: false# Default to bash
defaults:run:shell: bashjobs:# Build jobbuild:runs-on: ubuntu-latestenv:HUGO_VERSION: 0.128.0steps:- name: Install Hugo CLIrun: |wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \&& sudo dpkg -i ${{ runner.temp }}/hugo.deb - name: Install Dart Sassrun: sudo snap install dart-sass- name: Checkoutuses: actions/checkout@v4with:submodules: recursivefetch-depth: 0- name: Setup Pagesid: pagesuses: actions/configure-pages@v5- name: Install Node.js dependenciesrun: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"- name: Build with Hugoenv:HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cacheHUGO_ENVIRONMENT: productionTZ: America/Los_Angelesrun: |hugo \--gc \--minify \--baseURL "${{ steps.pages.outputs.base_url }}/" - name: Upload artifactuses: actions/upload-pages-artifact@v3with:path: ./public# Deployment jobdeploy:environment:name: github-pagesurl: ${{ steps.deployment.outputs.page_url }}runs-on: ubuntu-latestneeds: buildsteps:- name: Deploy to GitHub Pagesid: deploymentuses: actions/deploy-pages@v4
Host on GitHub Pages:https://gohugo.io/hosting-and-deployment/hosting-on-github/
修改 baseURL = ‘https://your-username.github.io/blog/’

3. 提交代码并推送到 GitHub
初始化 git 仓库并将代码推送到 GitHub:
1. git add .
2. git commit -m "Initial commit"
3. git branch -M main
4. git remote add origin https://github.com/your-username/your-username.github.io.git
5. git push -u origin main
代码上传完成后,打开【Settings】【Pages】,修改【Source】和【Branch】如下:

4. 查看博客

GitHub Actions 会自动构建并部署你的博客,等待workflow run完,你可以通过 https://your-username.github.io/blog 访问你的博客。

总结
通过以上步骤,你可以使用 Hugo 和 GitHub Pages 0成本地搭建一个博客。这个方法不需要购买域名和托管服务,使用的工具和平台都是免费的。你可以根据需要选择和定制主题,添加内容,并通过 GitHub Pages 免费托管和发布你的博客。
相关文章:
0成本通过Hugo和GitHub Pages搭建博客
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 使用 Chocolatey 安装 Hugo Chocolatey 是一个 Windows 软件包管理器,使用 PowerShell 和 NuGet 作为基础。它可以自动化软件的安装、升级和卸载过…...
Ollama 可以玩 GLM4和CodeGeeX4了
最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…...
浅析C++指针与引用的关系
前言: 在实践中指针与引用相辅相成,功能相互叠加,但各有各的特点,互相不可替代!!!...
Python面试宝典第31题:字符串反转
题目 编写一个函数,其作用是将输入的字符串反转过来,输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组,并使用O(1)的额外空间解决这一问题。备注:s[i]都是ASCII码表中的可打印…...
【深入理解SpringCloud微服务】深入理解微服务中的远程调用,并手写一个微服务RPC框架
【深入理解SpringCloud微服务】深入理解微服务中的远程调用,并手写一个微服务RPC框架 远程过程调用微服务中的RPC框架如何实现一个微服务中的RPC框架接口扫描生成代理对象代理对象处理逻辑 手写一个微服务RPC框架RPCClientEnableRPCClientMicroServiceRPCClientRegi…...
数据结构----二叉树
小编会一直更新数据结构相关方面的知识,使用的语言是Java,但是其中的逻辑和思路并不影响,如果感兴趣可以关注合集。 希望大家看完之后可以自己去手敲实现一遍,同时在最后我也列出一些基本和经典的题目,可以尝试做一下。…...
通过python管理mysql
打开防火墙端口: 使用 firewall-cmd 命令在防火墙的 public 区域中永久添加 TCP 端口 7500(FRP 控制台面板端口)、7000(FRP 服务端端口)以及端口范围 6000-6100(一组客户端端口)。这些端口是 FR…...
Run the OnlyOffice Java Spring demo project in local
Content 1.Download the sample project in java2.Run the project3.Test the example document 1.Download the sample project in java Link: download the sample code in official website document properties setting spring 项目所在的服务器 server. Address192.168…...
11. Rancher2.X部署多案例镜像
**部署springboot项目 : ** **部署中间件Mysql8.0 : ** 名称:service-mysql 端口 :3306:3306 镜像:mysql:8.0 环境变量: MYSQL_ROOT_PASSWORDxdclass.net168路径映射 /home/data/mysql/data /var/lib/mysql:rw /etc/localtime…...
探索Linux世界之Linux环境开发工具的使用
目录 一、yum -- Linux软件包管理器 1、什么是yum 2、yum的使用 2.1 yum一些经常见的操作 1.查看软件包 2. 安装软件包 3. 删除软件包 3、yum的周边知识 3.1 yum的软件包都是从哪里来的?是从哪里能下载到这些软件包? 3.2 yum的拓展软件源 二、…...
探索Spring Boot微服务架构的最佳实践
目录 引言 一、Spring Boot简介 二、微服务架构的关键要素 三、Spring Boot在微服务中的最佳实践 3.1 清晰的服务边界 3.2 自动化配置与依赖管理 3.3 服务注册与发现 3.4 配置管理 3.5 安全与认证 3.6 监控与日志 3.7 分布式事务 四、总结 引言 在当今快速迭代的软…...
[论文泛读]zkLLM: Zero Knowledge Proofs for Large Language models
文章目录 介绍实验数据实验数据1实验数据2实验数据3 介绍 这篇文章发在CCS2024,CCS是密码学领域的顶会。作者是来自加拿大的University of Waterloo。文章对大语言模型像GPT和LLM等大语言模型实现了零知识可验证执行,但不涉及零知识可验证训练。个人觉得…...
vscode插件中的图标怎么设置
首先在ts文件目录下和package.json同级的目录下加入一张图片,后缀是jpg、png、jpeg都可以。 然后package.json中加入该行 重新 vsce package即可 如果出现报错 The specified icon xxx/xxx/icon.jpg wasnt found in the extension. 那就是没有放正确文件夹的位…...
Study--Oracle-08-oracle数据库的闪回技术
一、闪回恢复区(Flash Recovery Area) 1、什么是闪回恢复区 闪回恢复区是Oracle数据库中的一个特殊存储区域,用于集中存放备份和恢复数据库所需的所有文件,包括归档日志和闪回日志。这个区域可以帮助数据库在遇到介质故障时进行完全恢复。通过将备份数…...
获取客户端真实IP
出于安全考虑,近期在处理一个记录用户真实IP的需求。本来以为很简单,后来发现没有本来以为的简单。这里主要备忘下,如果服务器处于端口回流(hairpin NAT),keepalived,nginx之后,如何取得客户端的…...
韩式告白土味情话-柯桥生活韩语学习零基础入门教学
你们韩国人别太会告白了! 1、너 얼굴에 뭐가 조금 묻었어! 你的脸上有点5376东西! 뭐가 조금 묻었1585757는데? 有点什么? 이쁨이 조금 묻었네. 有点漂亮。 2、돌잡이 때 뭐 잡았어요? 你抓周的时候抓了什么? 쌀 잡았…...
Linux安全与高级应用(一)深入探讨Linux安全与高级应用
文章目录 深入探讨Linux安全与高级应用引言目录一、Linux安全与应用概述1.1 Linux的应用现状1.2 Linux的安全需求 二、构建LAMP企业网站平台2.1 LAMP平台简介2.2 安装和配置Apache服务器2.2.1 安装Apache2.2.2 配置Apache 2.3 安装和管理MySQL数据库2.3.1 安装MySQL2.3.2 配置M…...
【nginx 第二篇章】各个环境安装 nginx
一、Windows环境安装 1、下载 Nginx 访问Nginx官网(http://nginx.org/en/download.html)下载稳定版本的 Nginx 压缩包,如 nginx-1.xx.x.zip。下载后解压到指定的目录,例如 D:\nginx。 2、启动 Nginx 直接双击解压目录下的 ngi…...
在Spring Boot和MyBatis-Plus项目中,常见的错误及其解决方法2.0
1. org.springframework.beans.factory.BeanCreationException: Error creating bean with name requestMappingHandlerMapping 现象 在创建bean时发生错误,通常是因为存在重复的URL映射。 解决方法 检查所有控制器方法上的URL映射注解,确保没有重复…...
招聘信息数据清洗
文章目录 前言代码示例如下 前言 相关知识 为了完成本关任务,你需要掌握: 1.Spark 清洗数据的相关方法, 2.空值列怎么删除; 3.怎么数据切分才能达到想要的数据。 Spark清洗数据相关方法 一、将含有空值的数据删除 1.将含有空值的数据删除&a…...
2026届最火的六大AI辅助论文平台实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于自然语言处理技术的智能工具是AI写作软件,它能够辅助用户快速生成各类不同的…...
树莓派4B部署YOLOv5-Lite实战:从ONNX模型优化到实时检测性能调优
树莓派4B部署YOLOv5-Lite实战:从ONNX模型优化到实时检测性能调优 当目标检测遇上边缘计算,如何在仅有1.5GHz Cortex-A72处理器的树莓派4B上实现15FPS的实时推理?本文将揭示从模型压缩到硬件调优的全链路实战方案。不同于常规的部署教程&…...
Windows Defender的MsMpEng.exe为什么总在“瞎忙”?从机制到应对的深度解读
Windows Defender的MsMpEng.exe高占用现象:机制解析与精准优化策略 你是否经历过这样的场景:正在紧急编译代码时,风扇突然狂转,任务管理器里MsMpEng.exe的CPU使用率飙升至90%;或者拷贝大型设计文件时,系统卡…...
Python开发者必看:用SMSBoom给你的短信服务做个‘压力体检’(附完整配置流程)
Python开发者必看:用SMSBoom给你的短信服务做个‘压力体检’(附完整配置流程) 短信服务作为现代应用的关键组件,其稳定性直接影响用户体验。想象一下,当你的电商平台在促销活动期间需要发送大量验证码时,短…...
让屏幕标注像在纸上写字一样自然:gInk 三分钟上手指南
让屏幕标注像在纸上写字一样自然:gInk 三分钟上手指南 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 你是否曾经在线上会议中,想快速圈出PPT的重…...
Cortex-M能否运行Linux?架构与系统需求解析
1. Cortex-M与Linux的兼容性解析作为一名嵌入式开发工程师,我经常被问到"Cortex-M能不能跑Linux"这个问题。要回答这个问题,我们需要从处理器架构和操作系统需求两个维度来分析。Cortex-M系列是ARM公司推出的微控制器内核,主要面向…...
想了解欧拉好猫参数?这篇文章给你详细答案!
在当今新能源汽车市场蓬勃发展的背景下,欧拉好猫凭借其独特的魅力,在众多车型中脱颖而出,吸引了众多消费者的目光。以下将对欧拉好猫的相关参数及技术亮点进行详细解析。外观设计与尺寸欧拉好猫采用复古未来主义的设计风格,圆润的…...
Phi-3-mini-4k-instruct-gguf免配置环境:开箱即用的Web UI,开发者5分钟上手
Phi-3-mini-4k-instruct-gguf免配置环境:开箱即用的Web UI,开发者5分钟上手 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理问答、文本改写、摘要整理和简短创…...
Qwen3.5-2B企业应用案例:制造业设备手册图像问答系统搭建全流程
Qwen3.5-2B企业应用案例:制造业设备手册图像问答系统搭建全流程 1. 项目背景与需求分析 在制造业生产现场,设备操作手册是工人日常工作的必备参考资料。传统纸质手册或PDF文档存在以下痛点: 查找效率低:遇到问题时需要手动翻阅…...
《QGIS快速入门与应用基础》253:元素锁定(防止误操作)
作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...
