实验室网站使用教程
1. 实验室网站结构
实验室网站使用Hugo(https://gohugo.io/)开发搭建,当前主要包括5个栏目(Menu):
- 关于我 (content/_index.md)
- 论文发表 (content/publication.md)
- 教书育人 (content/teaching.md)
- DEMO (content/demo)
- 技术博客 (content/blogs)
源代码目录结构如下:
(base) ╭─hengd@macpro.local ~/Projects/hengd-site ‹main*›
╰─➤ tree -L 2
.
├── archetypes
├── assets
├── config.toml
├── content # 存放页面的目录,hugo new 命令生成的文件会在此目录下
├── data
├── hugo-encryptor.py # 加密程序
├── i18n
├── layouts
├── public # 网站HTML代码生成目录(不要进行任何编辑!)
├── resources
├── static
│ └── img # 存放图片的目录
└── themes
2. 常用命令
(1) 启动本地服务
hugo server -D
在hengd-site目录下调用上面的命令,结果如下:
(base) ╭─hengd@macpro.local ~/Projects/hengd-site ‹main*›
╰─➤ hugo server -D
Start building sites …
hugo v0.111.3+extended darwin/arm64 BuildDate=unknown
| ZH-CN
-------------------+--------
Pages | 24
Paginator pages | 0
Non-page files | 0
Static files | 10
Processed images | 0
Aliases | 8
Sitemaps | 1
Cleaned | 0
Built in 25 ms
Watching for changes in /Users/hengd/Projects/hengd-site/{archetypes,assets,content,data,i18n,layouts,static,themes}
Watching for config changes in /Users/hengd/Projects/hengd-site/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at //localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
此时可通过浏览器网址http://localhost:1313访问网站。
(2) 创建新页面
hugo new blogs/xxxx.md
在hengd-site目录下调用上面的命令,会在content/blogs文件夹下创建xxxx.md文件。该文件遵循markdown格式,具体语法参见Markdown 基本语法。注意绝大多数页面需要新建在blogs文件夹(即技术博客栏目)下。
根据上面命令生成的md文件内容如下:
---
title: "xxxx"
date: 2023-08-07T09:44:26+08:00
draft: true
---
请根据如下步骤对md文件元数据部分进行修改:
- 将文章标题title的值修改成具体的文章标题
- 将draft的值设置为false
- 添加weight, categories和menu字段。menu字段必须属于blogs。
- 添加summary字段,简要说明该文章的内容。
---
title: "实验室网站使用教程"
date: 2023-08-07T09:44:26+08:00
draft: false
weight: 1
categories:
- "Hugo"
menu:
- "blogs"
summary: "本页面记录实验室网站http://hengd.site的使用方法,包括: 网站结构、常用命令等。"
---
注意: 每次创建新页面之后,都需要生成静态HTML代码。具体命令如下:
hugo
命令运行结果
(base) ╭─hengd@macpro.local ~/Projects/hengd-site ‹main*›
╰─➤ hugo
Start building sites …
hugo v0.111.3+extended darwin/arm64 BuildDate=unknown
| ZH-CN
-------------------+--------
Pages | 24
Paginator pages | 0
Non-page files | 0
Static files | 10
Processed images | 0
Aliases | 8
Sitemaps | 1
Cleaned | 0
Total in 46 ms
(3) 部署
- 将public目录上传至服务器
scp -r public lighthouse@101.32.44.150:/home/lighthouse
输入密码(在实验室群里问老师)后出现如下信息
(base) ╭─hengd@macpro.local ~/Projects/hengd-site ‹main*›
╰─➤ scp -r public lighthouse@101.32.44.150:/home/lighthouse
lighthouse@101.32.44.150's password:
index.html 100% 236 5.1KB/s 00:00
index.html 100% 3739 81.1KB/s 00:00
index.xml 100% 764 16.7KB/s 00:00
index.html 100% 4129 89.6KB/s 00:00
index.html 100% 239 5.2KB/s 00:00
index.html 100% 5312 116.7KB/s 00:00
index.html 100% 5954 130.3KB/s 00:00
index.xml 100% 1251 26.7KB/s 00:00
index.html 100% 6535 144.8KB/s 00:00
index.html 100% 221 4.8KB/s 00:00
favicon.ico 100% 1350 30.0KB/s 00:00
index.html 100% 9788 213.0KB/s 00:00
index.xml 100% 3153 68.3KB/s 00:00
decrypt.js 100% 2086 46.1KB/s 00:00
index.html 100% 11KB 233.9KB/s 00:00
apple-touch-icon.png 100% 111 2.4KB/s 00:00
style.css 100% 17KB 380.7KB/s 00:00
menu.js 100% 723 15.9KB/s 00:00
404.html 100% 3194 65.5KB/s 00:00
index.html 100% 236 5.2KB/s 00:00
index.html 100% 3698 81.7KB/s 00:00
index.xml 100% 398 8.6KB/s 00:00
placeholder.png 100% 4711 100.8KB/s 00:00
avatar.png 100% 1139 24.7KB/s 00:00
logo.png 100% 45KB 492.9KB/s 00:00
abstract-1.png 100% 376KB 2.0MB/s 00:00
index.html 100% 3281 73.5KB/s 00:00
index.html 100% 5791 122.1KB/s 00:00
sitemap.xml 100% 1273 27.5KB/s 00:00
index.html 100% 254 5.5KB/s 00:00
index.html 100% 266 5.8KB/s 00:00
index.html 100% 4783 100.5KB/s 00:00
index.xml 100% 826 17.1KB/s 00:00
index.html 100% 5065 111.9KB/s 00:00
index.xml 100% 938 20.2KB/s 00:00
index.html 100% 269 5.8KB/s 00:00
index.html 100% 4885 100.0KB/s 00:00
index.xml 100% 926 20.1KB/s 00:00
- 登陆网站托管服务器
ssh lighthouse@101.32.44.150
输入密码后,在服务器端执行ls -lh
命令,显示如下信息
lighthouse@VM-4-12-ubuntu:~$ ls -lh
total 88K
-rwxrwxr-x 1 lighthouse lighthouse 9.5K Jan 29 2022 bbr.sh
-rw-rw-r-- 1 lighthouse lighthouse 119 Apr 26 16:22 build_and_restart.sh
drwxr-xr-x 7 lighthouse lighthouse 4.0K Mar 7 07:25 flask-dashboard-volt-master
drwxrwxrwx 2 lighthouse lighthouse 4.0K Apr 13 13:13 hengd.site_nginx
drwxr-x--- 6 lighthouse lighthouse 4.0K Jul 7 2022 nodejs
-rwxrwxr-x 1 lighthouse lighthouse 60K Mar 22 2021 ssr.sh
- 重启网站服务
sh build_and_restart.sh
- 浏览器访问hengd.site,查看技术博客栏目中是否出现新增的页面。
(4) 内容加密
在markdown文件(xxx.md)的正文内容部分,可以使用如下标记对文本进行加密
{% hugo-encryptor "password" %}
这是一段加密内容,必须输入password之后才能看到。
{% /hugo-encryptor %}
注意,将上面代码块中的{
改为{{
,}
改为}}
,password
设置成小组默认密码(具体询问老师).
执行静态页面生成命令hugo
之后,还需要使用如下命令激活页面加密
python hugo-encryptor.py
命令执行会显示如下结果
(base) ╭─hengd@macpro.local ~/Projects/hengd-site ‹main*›
╰─➤ python hugo-encryptor.py
public/blogs/llm/index.html
public/blogs/llama-recipes/index.html
public/blogs/wiki/index.html
public/index.xml
(5) 在markdown文章中添加图片
- 把图片
dolly-dataset.jpg
放入static/img
文件夹。 - 在markdown文件中添加图片引用行:
{{去掉#< figure src="/img/dolly-dataset.jpg#center" width="60%">}}
# 构建静态页面
hugo
# 上传静态代码到服务器
scp -r public lighthouse@101.32.44.150:/home/lighthouse
# 登陆服务器并执行服务器重启脚步
ssh lighthouse@101.32.44.150
sh build_and_restart.sh