建站过程

安装配置Hexo

Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

详情请自行翻阅官网:https://hexo.io/zh-cn/docs/

此处仅贴出常用指令自用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 使用 npm 安装 Hexo
$ npm install -g hexo-cli

# 请自行替换文件夹名,新建一个网站
$ hexo init <folder>
$ cd <folder>
$ npm install

# 新建一篇文章,文章名称和标题为 [title],文章采用 [layout] 布局
$ hexo new [layout] <title>
$ hexo new "post title with whitespace" # 如果标题包含空格,需加引号

# 清除缓存,网页正常情况下可以忽略此条命令,执行该指令后,会删掉站点根目录下的public文件夹
$ hexo clean

# 生成静态文件
$ hexo generate
$ hexo g

# 发表草稿
$ hexo publish [layout] <filename>

# 启动服务器(常用于调试)
$ hexo server
$ hexo s

# 部署网站,将本地数据部署到远端服务器(如github、coding)
$ hexo deploy
$ hexo d

# 创建分类选项Created: ~\myBlog\source\categories\index.md
$ hexo new page categories

# 需分类的文章要添加
# categories:
# - web前端
# 注意这里的分类名前需要一个空格
#如果在“- web前端”下方添加“-xxx”,hexo不会产生两个分类,而是把分类嵌套(即该文章属于 “- web前端”下的 “-xxx ”分类)。

链接Github

1
2
3
4
5
6
7
8
9
10
1. 生成SSH_KEY
首先在git下
输入命令:cd ~/.ssh进入.ssh文件
输入命令:ssh-keygen -t rsa -C ‘注册时的邮箱地址’

将刚刚在.ssh目录下所复制的id_rsa.put文件中的信息复制进key(注意空格)(名字随意)

接着在本地绑定与Github的用户名和邮箱(git)
输入命令:git config --global user.name “注册时用户名”
输入命令:git config --global user.email “注册时邮箱”

在 Windows PowerShell 下重新生成 SSH 密钥并配置 GitHub,按照以下步骤操作:(出自gpt)

1. 打开 PowerShell

首先,按下 Win + X,然后选择 Windows PowerShell,或在开始菜单中搜索 "PowerShell" 并运行。

2. 生成 SSH 密钥

在 PowerShell 中运行以下命令来生成新的 SSH 密钥:

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa:指定使用 RSA 算法。
  • -b 4096:指定密钥长度为 4096 位(安全性更高)。
  • -C "your_email@example.com":添加一个注释,通常是你的电子邮件地址,方便以后识别。

执行该命令后,你会看到类似以下的提示:

1
Enter file in which to save the key (C:\Users\your_username\.ssh\id_rsa):

按下 Enter,接受默认的保存位置(C:\Users\your_username\.ssh\id_rsa),或者可以输入一个新的路径。

3. 设置密码短语(可选)

接下来会提示你输入一个 密码短语。这个密码用于保护私钥,你可以选择设置一个密码,或者直接按 Enter 跳过设置密码短语。

4. 添加 SSH 密钥到 SSH 代理

生成完密钥后,接下来需要将 SSH 密钥添加到 SSH 代理。首先启动 SSH 代理,并将密钥加载到代理中。

运行以下命令启动 SSH 代理:

1
eval $(ssh-agent -s)

然后,添加你的私钥(默认为 id_rsa)到 SSH 代理:

1
ssh-add ~/.ssh/id_rsa

5. 复制公钥到剪贴板

接下来,你需要将公钥复制到剪贴板,以便将其添加到 GitHub。

运行以下命令来显示公钥:

1
cat ~/.ssh/id_rsa.pub

将显示的公钥内容复制到剪贴板,按下 Ctrl + C 或右键点击 PowerShell 窗口并选择 复制

6. 将公钥添加到 GitHub

  1. 登录到 GitHub
  2. 点击右上角的头像,然后选择 Settings
  3. 在左侧菜单中,点击 SSH and GPG keys
  4. 点击 New SSH key
  5. Title 字段中,为你的 SSH 密钥命名(例如:“Windows SSH Key”)。
  6. 将刚才复制的公钥粘贴到 Key 字段中。
  7. 点击 Add SSH key

7. 测试 SSH 连接

完成上述步骤后,测试 SSH 连接是否成功:

1
ssh -T git@github.com

如果是第一次连接,可能会看到如下提示,询问是否信任 GitHub 的服务器:

1
2
The authenticity of host 'github.com (IP_ADDRESS)' can't be established.
Are you sure you want to continue connecting (yes/no)?

输入 yes 后继续。

如果成功连接,将看到类似以下的消息:

1
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

8. 配置 Git 使用 SSH

最后,确保 Git 配置使用 SSH 而不是 HTTPS 进行推送和拉取操作。检查远程 URL:

1
git remote -v

如果显示的 URL 是类似于 https://github.com/username/repository.git,可以将它改成 SSH 版本:

1
git remote set-url origin git@github.com:username/repository.git

如无法推送至git,或许修改端口可以解决。

图片显示及设置

关于markdown中显示图片并设置大小和位置,可以在markdown中直接使用html标记,这里的images在../myBlog/source/images下。

1
<img src="/images/test.svg" width="50%" height="50%" align="center">

为了居中显示图片,可以

1
2
3
<div align="center">
<img src="/images/test.svg" width="50%" height="50%" align="center">
</div>

更多操作可以参考html中图片用法。

数学公式渲染

当在markdown中使用数学公式,会出现渲染两次的问题,如下

1
2
3
$$
L = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right]
$$

依据deepseek的提示和试错,找到一种可能的解决方法。

1
2
3
4
5
6
7
8
这是一个行内公式:\\( E = mc^2 \\)
\\(a+b=c\\)

### 块级公式
这是一个块级公式:
\\[
E = mc^2
\\]

渲染得到下图,问题解决。

相关配置,在_config.yml文件中

1
2
3
mathjax: 
enable: true
auto_render: false # 禁用自动渲染

在_config.icarus.yml文件中

1
2
# MathJax 配置
mathjax: true

然而,在使用时发现在渲染复杂公式时可能会失败。

于是又考虑另一个方法:使用katex。在markdown中,正常使用"$"符号。无论是行内还是块内均可。

1
2
3
4
5
$$
y = f\left( \sum_{i=1}^{n} w_i x_i + b \right)
$$

$a+b=c$

渲染得到下图,问题解决。

相关配置,在_config.yml文件中

1
2
3
katex: 
enable: true
auto_render: false # 禁用自动渲染

在_config.icarus.yml文件中

1
2
katex: true
mathjax: false

注意:KaTeX对 $ 后的空格是敏感的,但它的行为与 LaTeX 稍有不同。在LaTeX中,空格通常会被自动忽略,而KaTeX则在某些情况下可能会导致渲染问题。

导航栏置顶

在使用时,顶部导航栏会随着鼠标滑动而消失。

在\themes\icarus\include\style\navbar.styl文件中进行修改,仅贴出修改部分代码。z-index 控制元素的堆叠顺序,值越大,元素越靠前。

1
2
3
4
5
6
.navbar-main
position: fixed
width: 100%
top: 0px
box-shadow: $shadow
z-index: 100

黑夜主题实现

黑夜主题卡片堆叠问题

待解决...

作者

sonder

发布于

2025-01-14

更新于

2025-03-28

许可协议