如何通过hugo部署一套技术博客

简介: 一步一步带你搭建一个完成的技术播客

静态网站的个人设计的个人思考

为什么要搭建自己的静态博客系统?

  1. 写好的Markdown可以快速的发布到自己的博客网站上,不需要什么一键式多平台发布、自媒体自动同步(支持的不全面)
  2. 没有广告,页面干净酸爽
  3. 高度自由化,支持定制化css样式,可以了解和实践一些前端的知识。
  4. 事件驱动学习,养成持续学习和分享的习惯,收纳总结常遇到的问题以及处理经验,毕竟有些东西慢慢的会忘掉的。
  5. 通过公开的自己的笔记,暴露问题,从而发现问题,培养和理清自己思考问题的思路

博客网站的构建与部署思考

先看一下初期的设计图如下,将生成好的静态页面推送到代码仓库里面,然后通过GITHUB自带的GitHub Action自动的部署到云端主机上,同时将域名CNAME或者AGithub Pages是上或者云主机IP上。
image-20200720204131183

定制化个人博客

我们这里使用Hugo这个静态网站生成工具来制作静态网站,该工具是通过Go编写的,因此小巧且资源占用少。下面本次实验的基础环境

软件 版本
系统 Macos 10.15.5
Hugo hugo v0.73.0
Zzo theme Zzo

在下载完成hugo之后,将其添加到系统的可执行的路径下,echo $PATH获取。

hugo new site linuxermaster.github.io # 创建一个名称为linuxermaster.github.io的博客工作目录
cd linuxermaster.github.io
git submodule add https://github.com/zzossig/hugo-theme-zzo.git themes/zzo
git submodule update --remote --merge
hugo server --themesDir ../.. # 即可运行一个使用zzo主题的静态网站

以上就完成了静态网站的第一小步,下面继续了解hugo

├── archetypes
│   └── default.md
├── config
│   └── _default # 存储默认配置文件的目录,里面包含全局配置、菜单配置、语言配置、其他诸如友链等通信配置
├── content
│   ├── en # 存储英文版博客的目录,这里就是存储markdown文件的目录
│   └── zh # 存储中版博客的目录,这里就是存储markdown文件的目录
├── data
│   ├── font.toml # 设置字体
│   └── skin.toml # 设置皮肤的颜色
├── deploy.sh # 推送静态网页到git的脚本
├── layouts
│   └── partials
├── public # 执行hugo命令将markdown转换成html的静态页面目录
│   ├── CNAME
│   ├── css
│   ├── en
│   ├── favicon
│   ├── favicon.ico
│   ├── favicon.png
│   ├── fonts
│   ├── gallery
│   ├── images
│   ├── index.html
│   ├── js
│   ├── lib
│   ├── logo-192.png
│   ├── logo-512.png
│   ├── logo.png
│   ├── manifest.json
│   ├── sitemap.xml
│   └── zh
├── resources
│   └── _gen
├── static # 静态网站需要的一些样式文件目录
│   ├── en
│   ├── favicon
│   ├── fonts
│   ├── gallery
│   └── images
└── themes # 网站需要的模板主题目录
    └── zzo

可以将以前写的markdown存放在content/en/目录下,然后运行网站就可以看到你的笔记

☸️  k8sdev🔥 default  ~/workspaces/linuxermaster.github.io   master ●✚  🐳 👉 hugo server -t zzo

                   | EN  | ZH   
-------------------+-----+------
  Pages            | 248 |  52  
  Paginator pages  |  10 |   0  
  Non-page files   | 281 |   3  
  Static files     | 136 | 136  
  Processed images |   0 |   0  
  Aliases          |  56 |   8  
  Sitemaps         |   2 |   1  
  Cleaned          |   0 |   0  

Built in 6102 ms
Watching for changes in /Users/marionxue/workspaces/linuxermaster.github.io/{archetypes,content,data,layouts,static,themes}
Watching for config changes in /Users/marionxue/workspaces/linuxermaster.github.io/config/_default
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

如何定制文章的简介和图片

很简单,只需要在markdown的首部添加以下yaml格式的配置说明即可:

author: "云原生生态圈" # 文章标题下显示的作者名字
title: "Hugo+Zzo主题快速搭建持久维护的个人网站" # 文章的标题
date: 2020-07-20T19:49:06+09:00 # 自定义文章的发表时间
description: "私人订制你的技术平台平台" # 文章的说明描述
authorImage: "/images/whoami/头像.png" # 作者的头像
authorDesc: "啥都不会的DevOps工程师😂😂" # 作者的自述
draft: false # 是否标记为草稿,如果为true,将不会编译进html页面
hideToc: false # 是否隐藏toc目录
enableToc: true # 是否启用toc
enableTocContent: false # 是否显示toc
authorEmoji: 🔥 # 显示在作者名字之前的表情
tags: # 文章标签,用于搜索
- hugo
- blog
- zzo
- hugo template
image: images/posts/hugo-blog.png # 显示文章的图片
socialOptions: # 显示的一些社交账号信息
  email: "marionxue@qq.com"
  facebook: "@marionxue"

效果如下如:

image-20200720211816685

image-20200720211853692

如何自定义网站底部样式

image-20200720212149036
自定义网站底部的样式,需要修改css样式,由于篇幅的问题,这篇文章就不在说明了。

推送静态网站脚本

#!/bin/sh

# If a command fails then the deploy stops
set -e

printf "\033[0;32mDeploying updates to GitHub...\033[0m\n"

# Build the project.
hugo # if using a theme, replace with `hugo -t <YOURTHEME>`

# Go To Public folder
cd public

# Add changes to git.
git add .

# Commit changes.
msg="rebuilding site $(date)"
if [ -n "$*" ]; then
        msg="$*"
fi
git commit -m "$msg"

# Push source and build repos.
git push origin master%              
相关文章
另辟蹊径,利用宝塔快速搭建一个VuePress博客
另辟蹊径,利用宝塔快速搭建一个VuePress博客
1684 0
另辟蹊径,利用宝塔快速搭建一个VuePress博客
|
11天前
|
人工智能 大数据 Java
面向萌新的技术博客入门指南
面向萌新的技术博客入门指南
24 0
|
4月前
|
前端开发 Cloud Native 安全
简单使用 Hugo 博客
简单使用 Hugo 博客
|
9月前
|
JavaScript 安全 Linux
Hugo博客教程(一)
Hugo博客教程(一)
249 0
|
10月前
|
JavaScript 搜索推荐 程序员
使用Hexo 搭建你的技术博客
使用Hexo 搭建你的技术博客
121 0
|
弹性计算 人工智能 大数据
我的博客网站初体验
利用博客网站编写和呈现新闻,融合多种媒介,综合性的呈现信息,既满足了当下人们的阅读习惯,也丰富了内容的呈现形式,让一个事件、一个故事变得更加立体、丰富。利用网站编写融合新闻将成为我创建云场景、构建云服务的起点,未来我会充分利用博文网站平台,结合自己的专业讲好生活中的好故事。另外,继续探索新的云服务领域,例如AI、编程、大数据等,文科生也可以“牛”起来。
|
域名解析 弹性计算 资源调度
工具分享【一】5分钟搭建自己的博客
本文利用vuePress快速构建大气好看的个人博客,vuePress是由Vue 驱动的静态网站生成器,可以基于markdown语法生成网页,君哥的个人博客就是由vuepress构建
354 0
工具分享【一】5分钟搭建自己的博客
|
JavaScript
【开源博客】三个步骤学会Hexo快速生成精美博客!
最近学委跟小伙伴搞了一个py4ever 开源站点,使用的就是hexo。 下面是站点信息:py4ever开源站
193 0
【开源博客】三个步骤学会Hexo快速生成精美博客!
|
JavaScript Go Ruby
将博客从Hexo迁移至Hugo
自从了解了Github Pages这种静态博客后,开始喜欢上这种技术人员才能鼓捣明白的协作方式。自己的博客系统也从最初的Octopress,切换到Hexo,直到最近看到Hugo这种号称全球最快的静态博客系统,被适合技术人员的风格样式所吸引。于是在经历了三天的折腾后,顺利的将Hexo迁移至Hugo中。
409 0
将博客从Hexo迁移至Hugo
|
关系型数据库 MySQL 网络安全
Typecho博客部署
轻量级的 博客
1009 0