建站/静态网站生成器
施工中
什么是静态网站生成器?
“静态站点生成器”由static site generators
(SSG)直译而来。通俗来说,常用的动态网站博客框架如typora,我们可以通过安装主题以美化界面,同时可以在线上发布文章,每个文章都有相同的主题。但如果手动编写静态网站,最多使用同一套css/js脚本,html主体还是得手搓,会浪费很多时间在内容之外的事上;即便使用markdown等适用范围广的标记语言并输出为html文件,但组织不同html页面间的联系仍旧十分耗力。静态网站生成器便是执行此工作,通过如传统动态网站般的模板自动为内容生成html文件,保证每个文章的ui都遵循了主题的样式设定,我们只需要在本地维护原始格式的文件(例如.md),即便更换主题,生成器也会为所有内容重新生成新的html文件,并推送到服务器中。与传统动态网站博客相较,缺点是无法线上轻易的维护、没有账户体系(可以外挂外部资源);优点是备份内容更方便,本地创作一打包即可,站点更加轻量化,纯html总比需要调用php、mysql要强,更加安全,没有账户体系意味着除ddos外的绝大多数攻击方式都将失效。
常用方案
目前比较流行的就是hugo和hexo,对于我这种只会用别人弄好的主题的人而言,两者区别不大,哪个热门用哪个就对了,因为意味着维护者多,遇到问题更容易解决。
本文采用hugo
部署hugo网站
※ https://gohugo.io/documentation/
0.前要条件
需要先安装 Git 、 Go ,访问官网以了解对应系统的安装方式。
可选安装Dart Sass,是将sass样式文件编译为浏览器可解析的css文件的编译器,hugo附加的相对落后的LibSass编译器或不支持一些sass语言的新功能。
1. 本地安装hugo
可直接下载编译好的文件:https://github.com/gohugoio/hugo/releases
也可使用对应系统自带的包管理器安装:
- Windows用户参考:https://gohugo.io/installation/windows/#package-managers
- 新版本win10/11预装winget,旧版本参考其他人所写的文章。
- Linux用户参考:https://gohugo.io/installation/linux/#repository-packages
- 并非所有发行版都预安装snap,如果有需要可参考snap官网。
2. 新建站点项目
建立站点项目:hugo new site 项目名
- 默认会新建:
~/项目名
文件夹,存放网站资源文件,也是hugo站点根目录。
在站点根目录运行:hugo server -D
以启动本地服务器,可预览目标站点
-D
参数是显示草稿等其他内容,不带此参数只有已发布内容。
3. 下载主题
将主题文件下载到站点根目录/themes
- 例如下载主题文件并手动复制到文件夹内,或在网站根目录下运行:
git clone https://github.com/JingWangTW/dark-theme-editor.git themes/dark-theme-editor
修改hugo.toml
配置文件以启用主题
- 通常添加行:
theme = 'dark-theme-editor'
即可; - 对于复杂的请参考主题的介绍页面所提供的配置文件。
网站是热加载的,直接刷新页面即可体现出内容变化。
4. 编写文章
创建文章:hugo new 文件夹名/文章名.md
,默认会带有如下信息:
---
title: "Osint"
date: 2024-11-14T00:31:29+08:00
draft: true
---
编写完内容后将draft
的值修改为false
就会在预览中显示。
5. 输出网页
根目录运行:hugo
md文件会自动转为html,但注意如果自己编写了html,那么主题的样式会覆盖自定义的样式。
其他选择
hexo:轻量化个人博客,不过太轻量也不一定适合,跟typecho一个类别的,可以搜搜看别人使用此框架的网站,然后体验体验(不过不能只看我外观,还是要看编辑是否方便)。
- 待更新github+hexo的玩法,看很多人实现了动态站点一样的外观效果(css+js),以及利用一些工具本地编辑.md文件,直接转换成html且同步到github,虽然还是繁琐点,但值得试试(应该跟本地编辑生成静态页面同步github一样的原理)。