实验室网站使用教程

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文件元数据部分进行修改:

  1. 将文章标题title的值修改成具体的文章标题
  2. 将draft的值设置为false
  3. 添加weight, categories和menu字段。menu字段必须属于blogs。
  4. 添加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) 部署

  1. 将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
  1. 登陆网站托管服务器
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
  1. 重启网站服务
sh build_and_restart.sh
  1. 浏览器访问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文章中添加图片

  1. 把图片dolly-dataset.jpg放入static/img文件夹。
  2. 在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