使用Hugo框架搭建博客的过程 - 前期准备
前言
这篇教程介绍了如何搭建这样效果的博客。
所需步骤
可以从这样的角度出发:
- 注册域名。
- 使用CDN加快网站访问速度。
- 网站内容需要部署在服务器或对象存储平台上。
- 重要的是放什么内容。博客需要选择框架,或自己开发。
- 框架确定后,选择主题,或自己开发。
- 配置主题。
- 发表第一篇Hello World!
在这个过程中,前期准备阶段包括:框架选择、主题选择、注册域名、备案和CDN配置。
博客框架
框架选择
- Wordpress
缺点:不安全。
主题推荐:Sakura - Hexo
缺点:渲染生成文章速度不如Hugo。
主题推荐:matery - Hugo
The world’s fastest framework for building websites.
结论
- 选择Hugo框架。
- 静态博客方便备份。
- 用Markdown写文章,方便以后迁移。
- 缺点,使用对象存储服务需要支付流量费,存在被DDOS的风险。
下载
- Hugo和Hugo extend区别
Hugo extend支持Sass/SCSS。下载地址 - Windows可考虑使用scoop下载, 安装与升级很方便。
Hugo主题
LoveIt
功能很全面的一个主题,支持很多功能,节省了不少自己折腾的时间。LoveIt主题介绍
安装主题有两种方案,如果不修改主题配置和模板,可以直接添加添加子模块,这样比较简单。
修改主题会麻烦一些,但是可以让自己的博客与众不同。需要将Fork到自己的仓库,有一个缺点,fork后添加的submodule是自己的仓库,使用Dependabot需要手动和上游同步之后,才会触发blog仓库更新检查。所以不适用Dependabot。
不修改主题模板
添加子模块到blog仓库的themes目录下。
git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt可设置Dependabot自动合并主题更新,参考:About Dependabot version updates和Automate Theme Update。
Fork主题后进行DIY
- fork主题到自己的仓库。
- 添加子模块:
git submodule add <自己仓库的url> <path> - 设置上游进行同步,在主题目录中执行
git remote add upstream <上游主题的url>
toha
toha是一个非常适合做个人简历的主题。
注册域名
万网注册域名。
配置DNS解析,域名邮箱解析等可能存在冲突。
HTTPS证书
使用HTTPS证书避免HTTP劫持风险,劫持https请求需要伪造证书。
阿里云可申请免费HTTPS证书,但是一个子域名需要单独申请一个证书。
Chrome浏览器HTTP网站显示“不安全”,是怎么回事?
谷歌从Chrome 56版本浏览器开始对使用HTTP协议传输密码信息的网站进行“不安全”警告;而2018年7月,谷歌Chrome 68将对所有HTTP网站显示“不安全”警告。随着Chrome浏览器的版本升级,会有越来越多的用户看到HTTP网站的“不安全”警告。来源:https://www.sohu.com/a/242732942_188485
备案
- IPC备案
- 公安备案
如果在万网购买的域名,备案过程很简单,按要求填写信息,上传照片即可。注意照片要合要求,否则可能会被打回来重新上传。
香港,国外的服务器不需要备案。
CDN
购买CDN资源包,加速域名访问。静态博客不需要购买动态请求次数。
以上步骤完成后,将域名解析到CDN,CDN加速源站或对象存储服务(在部署阶段介绍)。访问域名,确定CDN是否加速。
- 通过ping命令查看IP是否为CDN的IP。
- 打开Chrome控制台,查看返回包头是否有
X-Cache字段。
参考
使用Hugo框架搭建博客的过程 - 前期准备的更多相关文章
- 使用Hugo框架搭建博客的过程 - 页面模板
前言 最初在制作友链界面时,没有学习Hugo框架,一头雾水.网上有关的教程甚少,只能去学一遍Hugo. 在学习Hugo的过程中,了解了列表模板,分类模板.开发了几个功能页面,如:留言板,友链,记忆分类 ...
- 使用Hugo框架搭建博客的过程 - 功能拓展
前言 本文介绍一些拓展功能,如文章页面功能增加二级菜单,相关文章推荐和赞赏.另外,使用脚本会大大简化写作后的上传流程. 文章页面功能 这部分功能的拓展主要是用前端的JS和CSS,如果对前端不了解,可以 ...
- 使用Hugo框架搭建博客的过程 - 主题配置
前言 博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了. 基本功能配置 主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题 ...
- 使用Hugo框架搭建博客的过程 - 部署
前言 完成前期的准备工作后,在部署阶段需要配置服务器或对象存储服务. 对象存储和服务器对比 对象存储平台 国内有阿里云OSS.腾讯COS.又拍云.七牛云等.国外有Github Pages.Netlif ...
- 用 Hugo 快速搭建博客
用 Hugo 搭建博客 Hugo 是一个用 Go 编写的静态站点生成器,生成速度很快 下面是具体操作: 1.安装 Hugo Windows 用户 使用 Chocolatey 或者 Scoop 快速安装 ...
- 在Windows下使用Hexo+GithubPage搭建博客的过程
1.安装Node.js 下载地址:传送门 去 node.js 官网下载相应版本,进行安装即可. 可以通过node -v的命令来测试NodeJS是否安装成功 2.安装Git 下载地址:传送门 去 Git ...
- 使用Hexo框架搭建博客,并部署到github上
开发背景:年后回来公司业务不忙,闲暇时间了解一下node的使用场景,一篇文章吸引了我15个Nodejs应用场景,然后就被这个hexo框架吸引了,说时迟,那时快,赶紧动手搭建起来,网上找了好多资料一天时 ...
- Hugo hexo 搭建博客系列1:自己的服务器
hexo jekyll https://hexo.io/zh-cn/ http://theme-next.iissnan.com/getting-started.html Hexo 是高效的静态站点生 ...
- hugo + nginx 搭建博客记录
作为一个萌新Gopher,经常逛网站能看到那种极简的博客,引入眼帘的不是花里胡哨的图片和样式,而是黑白搭配,简简单单的文章标题,这种风格很吸引我.正好看到煎鱼佬也在用这种风格的博客,于是卸载了我的wo ...
随机推荐
- 《Java架构师的最佳实践》生产环境JVM调优之空间担保失败引起的FullGC
1 问题现象 应用prod-xxx-k8s,在内存足够的情况下,仍然会产生偶发FullGC的问题. JVM配置如下: -Xmx8192m -Dhsf.server.max.poolsize=2500 ...
- 计划任务 at & crond tbc
一次性任务 at 工具 由包 at 提供 依赖与atd服务,需要启动才能实现at任务 at队列存放在/var/spool/at目录中 执行任务时PATH变量的值和当前定义任务的用户身份一致 作业执行命 ...
- selenium常用代码
from selenium import webdriver # 1. 添加浏览器设置参数对象 options = webdriver.ChromeOptions() # 2. 设置中文,与下载无弹窗 ...
- Google I/O 2021 Android精华内容
Google I/O 2021结束了, 都有什么精彩内容呢? Android部分的Playlist附上: Android & Play at Google I/O 2021 Developer ...
- CVPR2020论文解读:OCR场景文本识别
CVPR2020论文解读:OCR场景文本识别 ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network∗ 论文 ...
- TensorRT 7.2.1开发初步
TensorRT 7.2.1开发初步 TensorRT 7.2.1开发人员指南演示了如何使用C ++和Python API来实现最常见的深度学习层.它显示了如何采用深度学习框架构建现有模型,并使用该模 ...
- 谁才是智能家居的未来?视声M+O融合方案给出答案
有些智能家居,你不能说它不智能. 但在现实生活中,常常帅不过一秒. 就比如,当你经历了一天的疲惫后回到家,发现玄关的智能开关突然没反应,家里的灯怎么都打不开.这种时候你得明白,你的智能开关面板很有可能 ...
- win10下abd环境配置
一.下载安装 Android SDK 下载地址: http://tools.android-studio.org/index.php/sdk 下载完成后进行解压至D盘根目录下,也可以自定义英文路径下 ...
- 1、java语言概述
Java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合.有系统软件和应用软件之分. 人机交互方式 图形化界面(Graphical User Interface ...
- 【NX二次开发】创建老版的基准平面uf5374
使用uf5374() 源码: double dP1[3] = { 0.0,0.0,0.0 }; double dP2[3] = { 0.0,1.0,0.0 }; double dP3[3] = { 0 ...