(一) 使用 Hugo 搭建个人博客保姆级教程(上篇)

news/2024/9/16 5:18:39/

Hugo博客封面

手把手教你如何从0开始构建一个静态网站,这不需要有太多的编程和开发经验和时间投入,也基本不需要多少成本(除了个性化域名),使用GitHub和Hugo模板即可快速构建和上线一个网站。

目标读者

本文档适用于以下用户:

  • 对网站构建不太了解,没有Web开发经验的用户
  • 希望快速构建一个网站,个性化需求不多,不想花费太多精力打理,更新不多的用户
  • 希望学习网站构建、网站模板、Web开发的用户
  • 对Go语言感兴趣,希望从事开源项目的用户

原理

静态网站构建原理

世界上的网站上千万,网页数量更是如天上的星星数也数不清。那么这些网站都是如何构建的?都包括哪些类型呢?笼统的概括世界上的网站分为两种类型:

  • 静态网站:仅提供展示功能,不能与用户交互,不需要后端数据库存储用户信息
  • 交互式网站:需要与用户交互,保存用户信息

大多数现代Web应用程序使用层叠样式表(CSS)、JavaScript、图片甚至是特殊的字体和字形库,如Awesome字体,这也是我们工具箱中最常用的库之一。

几乎所有的网站中都会包含一个静态文件目录 static,这个目录下包含三个目录,分别保存着三类文件:

  • js:Javascript
  • images:图片
  • css:层叠样式表和字体

我们不会为每个网站分别导入不同的样式信息,而是使用模板来生成网页的不同部分。

我们在下一章中将分别介绍三款流行的静态网站生成工具。

静态网站构建工具

静态网站构建工具简介

使用静态网站构建工具不但可以让我们构建静态网站的工作大大简化,而且还可以迅速验证自己的想法,以最高效的方式开发网站。

这一章中将分别介绍三款流行的开源静态网站构建工具,然后说明为什么我们选择使用 Hugo 来构建静态网站。

对比

下面是三款静态网站构建工具的简要对比:

  • Jekyll 简介

Jekyll 是最早开始流行的静态网站构建工具,使用Ruby语言开发,开源已有9个年头了,是Github Pages默认的静态网站构建工具。当前互联网上有大量基于jekyll构建的静态网站,包括现在流行的开源容器编排调度引擎kubernetes的官网。

  • Jekyll的理念

    Jekyll网站构建的理念就是只做用户告诉它要做的事情,不多也不少:

    • No Magic:简单易懂
    • It “Just Works”:初始化网站配置,不需要为让用户操心
    • Content is King:内容为王,这是用于应该真正关心的部分
    • Stability:向后兼容,容易维护
    • Small & Extensible:核心功能满足90%用户的需求,其它功能使用插件形式,易于集成
      以上理念也被后来出现的其它静态网站构建工具所传承。
  • Hexo简介

    Hexo 是一款使用node.js开发的静态网站构建工具,便于构建华丽绚烂的页面。

    截止今日, Hexo 已经有386个主题框架。

  • Hugo简介

    Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。

    Hugo以速度快著称,号称是世界上最快的网站生成框架。

    The world’s fastest framework for building websites

以上工具都可以将markdown内容转换为静态页面。

为什么选择Hugo

来自1Password的评价

这里有一段来自1Password的对hugo的评价,很有代表性。

内容翻译自 https://gohugo.io/showcase/1password-support/

在1Password,我们过去每个月都会经历一个不同的文档平台:博客引擎,电子书,维基,用Ruby和JavaScript编写的网站生成器。 每个方式都有自己的不足。然后我们找到了hugo。我们做了最后一次切换,我们很高兴我们做到了。

并非所有静态站点生成器都是相同的

找到一个能让您的客户,作者,设计师和DevOps团队满意的工具并非易事,但我们通过Hugo进行了管理:

  • Hugo是静态的。我们是一家安全公司,所以我们坚持静态网站并尽可能地使用它们。我们觉得客户在HTML文件上比在需要强化的复杂服务器上更安全。

  • Hugo是基于Go的。在1Password我们喜欢Go编程语言,我们很高兴得知Hugo使用了我们的设计师和前端开发人员已经掌握的相同的Go模板语法。

  • Hugo很快。我们以前的静态站点生成器花费将近一分钟来编译我们的(那时还小得多)站点。开发人员可能已经习惯了这一点,但对于希望看到工作实时预览的作家来说,这并不合适。Hugo在几毫秒内完成了同样的工作,到现在,转瞬之间就可以编译五种语言编写的400多个页面。

  • Hugo很灵活。感谢Hugo的内容和布局系统,我们能够保留现有的文件和文件夹结构,并在几天内移植整个生产站点。然后我们可以创建以前不可能的新内容类型,比如这些时髦的陈列柜。

  • Hugo非常适合作家。我们的文档团队已经对Markdown和Git感到满意,并且可以开始为Hugo创建内容而无需停顿。一旦我们添加了短代码,我们的作者就可以通过少量的新语法来使用类似平台盒(platform boxes)的功能来装饰文章。

  • Hugo有一个惊人的开发者社区。Hugo更新频繁,充满了功能和修复。在我们开发网站的多语言版本时,我们提交了所需功能的PR,并通过@bep和其他人的流程得到了帮助。

  • Hugo易于部署。 Hugo拥有适量的配置选项,可以适应我们的构建系统而不会太复杂。

好了,话不多说,正式开始Hugo搭建教程👇

Hugo博客搭建教程


http://www.ppmy.cn/news/1135300.html

相关文章

数据结构—栈、队列、链表

一、栈 Stack(存取O(1)) 先进后出,进去123,出来321。 基于数组:最后一位为栈尾,用于取操作。 基于链表:第一位为栈尾,用于取操作。 1.1、数组栈 /*** 基于数组实现的顺序栈&#…

Java-API简析_java.lang.Object类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/133474051 出自【进步*于辰的博客】 因为我发现目前,我对Java-API的学习意识比较薄弱…

Redis Cluster Cron调度

返回目录 说明 clusterCron 每秒执行10次clusterCron 内置了一个iteration计数器。每一次运行clusterCron,iteration都加1。当 iteration % 10 0的时候,就会随机选取一个节点,给它发送PING。而由于clusterCron每秒执行10次,所以…

Stable Diffusion云服务器部署完整版教程

Stable Diffusion云服务器部署完整版教程 2023年07月04日 22:30 3607浏览 18喜欢 22评论 <span class"bili-avatar-icon bili-avatar-right-icon "></span> </div>薯片_AI 粉丝&#xff1a; 1513 文章&#xff1a; 1 设置分组取消关注 已关注 …

(一) 使用 Hugo 搭建个人博客保姆级教程(下篇)

关于博客建站简介,请参考上篇 (一) 使用 Hugo 搭建个人博客保姆级教程(上篇) (一)Hugo 安装 Hugo在多个操作系统下的安装 准备工作 安装golang 安装hugo之前,先安装好golang,推荐安装最新版本。Windows 用户强烈建议使用 Scoop 安装(关于 Scoop 安装及使用可参考 Sc…

(高阶) Redis 7 第18讲 RedLock 分布式锁

🌹 以下分享 RedLock 分布式锁,如有问题请指教。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有对阁下帮助,请👍点赞💖收藏🐱‍🏍分享😀 问题 分布式锁问题从(高阶) Redis 7 第17讲 分布式锁 实战篇_PJ码匠人的博客-CSDN博客 这篇文章来看,…

侯捷 C++ STL标准库和泛型编程 —— 8 适配器

8 适配器 适配器 Adapter 只是一个小变化&#xff0c;比如改个接口&#xff0c;函数名称等等其出现在三个地方&#xff1a;仿函数适配器&#xff0c;迭代器适配器&#xff0c;容器适配器可以使用继承 / 复合的两种方式实现&#xff0c;STL中都用复合 其思想就是将该记的东西记…

JS中的 typeof 针对各种类型的返回值 以及typeof历史遗留问题

JS中的 typeof 针对各种类型的返回值 typeof 运算符返回一个字符串&#xff0c;表示操作数的类型。 下表总结了 typeof 可能的返回值 类型结果Undefined"undefined"Null"object"&#xff08;原因&#xff09;Boolean"boolean"Number"numbe…

第10章 MySQL(一)

10.1 谈谈MySQL的架构 难度:★★ 重点:★ 白话解析 要想彻底的理解MySQL,它的架构一定要先弄清楚,当Java程序员通过JDBC或者Mybatis去执行一条SQL的时候,到底经历了什么。下边先看一幅图: 户端:Java程序员通过JDBC或者Mybatis去拿MySQL的驱动程序,实际上就是拿客户端。…

[Spring] Spring5——IOC 简介(二)

目录 六、工厂 Bean&#xff08;Factory&#xff09; 1、普通 bean 2、工厂 bean 3、示例 七、Bean 的作用域 1、单例和多例 2、如何设置为单实例或多实例 八、Bean 的生命周期 1、生命周期 2、生命周期示例 3、Bean 的后置处理器 4、后置处理器示例 九、XML 的自…

什么是博弈论?

什么是博弈&#xff1f;字面描述中&#xff0c;博弈由两个字构成&#xff1a;博 和 弈。博弈是一种双方&#xff08;多方&#xff09;的对抗&#xff08;比赛&#xff09;&#xff0c;对抗总是在一定的规则下进行&#xff0c;参与者必然会考虑应用相应的策略&#xff08;计谋&a…

from PIL import Image,文字成图,ImageFont import jieba分词,input优雅python绘制图片

开始的代码 import os from PIL import Image, ImageDraw, ImageFont import jiebadef generate_image_with_white_bg(text, font_path, output_path):# 设置图片大小和背景颜色image_width 800image_height 600bg_color (255, 255, 255) # 白色# 创建图片对象image Imag…

Java8 Lambda.stream.sorted() 方法使用浅析分享

文章目录 Java8 Lambda.stream.sorted() 方法使用浅析分享sorted() 重载方法一升序降序 sorted() 重载方法二升序降序多字段排序 mock代码 Java8 Lambda.stream.sorted() 方法使用浅析分享 本文主要分享运用 Java8 中的 Lambda.stream.sorted方法排序的使用&#xff01; sorted…

【Java每日一题】— —第二十题:杨辉三角(直角三角形)。(2023.10.04)

&#x1f578;️Hollow&#xff0c;各位小伙伴&#xff0c;今天我们要做的是第二十题。 &#x1f3af;问题&#xff1a; 杨辉三角&#xff08;直角三角形&#xff09;。 解法1 第一步:动态初始化 第二步:为主对角线及第一列的元素赋值1 第三…

【Java每日一题】— —第十九题:用二维数组存放九九乘法表,并将其输出。(2023.10.03)

&#x1f578;️Hollow&#xff0c;各位小伙伴&#xff0c;今天我们要做的是第十九题。 &#x1f3af;问题&#xff1a; 用二维数组存放九九乘法表&#xff0c;并将其输出。 测试结果如下&#xff1a; &#x1f3af; 答案&#xff1a; System.out.println("九九乘法表如…

HTML5 跨屏前端框架 Amaze UI

Amaze UI采用国际最前沿的“组件式开发”以及“移动优先”的设计理念&#xff0c;基于其丰富的组件&#xff0c;开发者可通过简单拼装即可快速构建出HTML5网页应用&#xff0c;上线仅半年&#xff0c;Amaze UI就成为了国内最流行的前端框架&#xff0c;目前在Github上收获Star数…

每日一题 416 分割等和子集(01背包)

题目 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, 5, 5] …

毅速3D打印:深骨位零件制造首选3D打印

在模具制造领域&#xff0c;深骨位零件由于其复杂形状和结构&#xff0c;传统的加工方法往往难以满足生产要求&#xff0c;导致产品不良问题频繁出现。而如今&#xff0c;随着3D打印技术的普及&#xff0c;深骨位零件在3D打印面前变得不再困难。 3D打印是一种快速成型技术&…

想要精通算法和SQL的成长之路 - 旋转链表

想要精通算法和SQL的成长之路 - 旋转链表 前言一. 旋转链表 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 旋转链表 原题链接 由于k的大小可能超过链表长度&#xff0c;因此我们需要根据链表长度取模。那么我们首先需要去计算链表的长度是多少&#xff1a; if (head …

asp.net core 远程调试

大概说下过程&#xff1a; 1、站点发布使用Debug模式 2、拷贝到远程服务器&#xff0c;以及iis创建站点。 3、本地的VS2022的安装目录&#xff1a;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE下找Remote Debugger 你的服务器是64位就拷贝x64的目…