1 - Github常用构建命令

全面的 Markdown 语法教程,涵盖基础语法、高级技巧和实用示例,由于本人是github初学者,所以一些常用命令不是太熟悉,所以需要再文档里长期保存使用,下面我就把常用的构建命令贴出来。

Github常用构建命令

由于本人是gibhub初学者,所以一些常用命令不是太熟悉,所以需要再文档里长期保存使用,下面我就把常用的构建命令贴出来。

每天发布文章流程

  • 在需要发布的目录里新建一个英文的md文件,在vscode里写文章然后复制到md文件里既可以,然后执行生成静态文件。
# 1. 构建网站(推荐方式)
hugo --gc --minify --cleanDestinationDir

# 2. 检查构建结果
ls -la public/  # 确认文件生成

# 3. 查看 Git 状态
git status

# 4. 提交更改
git add .
git commit -m "feat: 更新网站内容 - $(date +%Y.%m.%d)"

# 5. 推送到仓库
git push origin main
  hugo --gc --minify
  • 添加文件到github
git add content/en/blog/life-essays/我的新文章.md
  • 提交更改
git commit -m "新增: 我的新文章"
  • 推送到 GitHub
git push origin main
  • 删除public目录并重新构建
# 删除整个public目录
rm -rf /www/wwwroot/maccmsrust.com/public

# 清理缓存并构建(推荐)
hugo --gc

# 清理Hugo缓存目录
rm -rf /root/.cache/hugo_cache/

# 重新构建
hugo --gc

# 重新构建
hugo
  • 一键发布脚本
# 创建 publish.sh
cat > publish.sh << 'EOF'
#!/bin/bash
cd /www/wwwroot/maccmsrust.com

# 构建网站
echo "正在构建网站..."
hugo --gc --minify

# 提交到GitHub
echo "正在提交到GitHub..."
git add .
git commit -m "更新: $(date +'%Y-%m-%d %H:%M')"
git push origin main

echo "发布完成!"
EOF

chmod +x publish.sh
  • 临时构建
hugo server -D
  • 使用合并方式拉取
git pull --no-rebase origin main
  • 使用变基方式拉取
git pull --rebase origin main
  • 提交构建
hugo --cleanDestinationDir
  • 提交代码
git add .
git commit -m "注释"
git push origin main
  • 拉取远程更改
git pull origin main
  • 查看冲突文件
git status
  • 生成静态文件
hugo --gc --minify
  • 定期备份脚本
#!/bin/bash
# 定义备份目录和备份文件名
BACKUP_DIR="/path/to/your/backup/directory"
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).tar.gz"
# 定义要备份的文件和目录
SOURCE_DIR="/path/to/your/source/directory"
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 创建备份文件
tar -czf "$BACKUP_DIR/$BACKUP_FILE" -C "$SOURCE_DIR" .
# 输出备份完成信息
echo "Backup completed: $BACKUP_DIR/$BACKUP_FILE"
# 可选:删除7天前的备份文件
find "$BACKUP_DIR" -type f -name "backup_*.tar.gz" -mtime +7 -exec rm {} \;
  • 下面是一键备份脚本
cat > /root/backup-maccmsrust.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d)
cd /www/wwwroot
tar -czf /root/backups/maccmsrust-$DATE.tar.gz maccmsrust.com/
find /root/backups/ -name "maccmsrust-*.tar.gz" -mtime +7 -delete
EOF

chmod +x /root/backup-maccmsrust.sh
  • 定时任务
crontab -e
0 2 * * * /root/backup-maccmsrust.sh

以上是整理出来的简单的常用命令,后续有需要再补充。

2 - 更新文章自动构建推送脚本

更新文章自动构建推送脚本

更新文章自动构建推送脚本

在Hugo中,我们可以通过编写一个脚本,实现更新文章后自动构建推送的功能。下面是一个示例脚本:


#!/bin/bash

echo "🚀 开始自动化部署..."



# 构建网站

echo "📦 构建网站..."

hugo --gc --minify --cleanDestinationDir



if [ $? -eq 0 ]; then

    echo "✅ 网站构建成功"

    

    # 提交到 Git

    echo "💾 提交更改..."

    git add .

    git commit -m "feat: 自动更新 - $(date +'%Y.%m.%d %H:%M')"

    

    # 推送(使用 SSH,无需密码)

    echo "📤 推送到仓库..."

    git push origin main

    

    echo "🎉 部署完成!"

else

    echo "❌ 构建失败"

    exit 1

fi

给脚本权限:

chmod +x deploy.sh

这个脚本首先检查 Git 配置,然后构建网站,拉取远程更改,提交更改,并推送到仓库。如果构建成功,脚本会输出 “🎉 部署完成!",否则输出 “❌ 构建失败”。

3 - 构建需要密码时候使用SSH密钥认证(推荐)

构建需要密码时候使用SSH密钥认证

构建需要密码时候使用SSH密钥认证

  • 生成密匙
ssh-keygen -t ed25519 -C "your_email@example.com"

添加公钥到 GitHub:

# 查看公钥
cat ~/.ssh/id_ed25519.pub

# 复制到 GitHub: Settings → SSH and GPG keys → New SSH key

修改远程仓库为 SSH:

# 查看当前远程仓库地址
git remote -v

# 修改为 SSH 地址
git remote set-url origin git@github.com:你的用户名/你的仓库名.git

# 确认修改成功
git remote -v

这个错误说明 SSH 代理没有运行。需要启动 SSH 代理并添加密钥。

  1. 启动 SSH 代理
# 启动 SSH 代理
eval "$(ssh-agent -s)"

# 或者明确指定
ssh-agent bash
  1. 添加密钥到 SSH 代理
# 添加默认密钥
ssh-add

# 或者明确指定密钥文件
ssh-add ~/.ssh/id_rsa
# 或者如果是 ed25519 密钥
ssh-add ~/.ssh/id_ed25519
  1. 确认 SSH 代理是否成功添加密钥
ssh-add -l

完整的设置流程

# 1. 启动 SSH 代理
eval "$(ssh-agent -s)"

# 2. 添加你的 SSH 密钥
ssh-add ~/.ssh/id_rsa
# 或者
ssh-add ~/.ssh/id_ed25519

# 3. 验证
ssh-add -l

# 4. 测试 GitHub 连接
ssh -T git@github.com

修改远程仓库地址

# 查看当前远程地址
git remote -v

# 修改为 SSH(替换为你的实际用户名和仓库名)
git remote set-url origin git@github.com:你的用户名/你的仓库名.git

# 确认修改
git remote -v

以上步骤完成后,你应该能够通过 SSH 密钥认证成功连接到 GitHub,并且不再需要输入密码。

4 - markdown语法完整指南

掌握Markdown语法可以大大提升你的写作效率和内容质量。无论是撰写技术文档、博客文章,还是日常笔记,Markdown都是一个强大且易用的工具。

Markdown 基础语法完整指南

1 标题

使用 `#` 符号表示标题级别,`#` 代表一级标题,`##` 代表二级标题,以此类推。例如:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题

2 文字格式

**加粗**:使用 `**` 或 `__` 包围文字,例如 `**加粗文字**` 或 `__加粗文字__`。
*斜体*:使用 `*` 或 `_` 包围文字,例如 `*斜体文字*` 或 `_斜体文字_`。
***加粗斜体***:使用 `***` 或 `___` 包围文字,例如 `***加粗斜体文字***` 或 `___加粗斜体文字___`。

3 列表

无序列表:使用 `-`、`*` 或 `+` 表示无序列表项,例如:
	- 项目一
	- 项目二
	 - 子项目
	* 项目二
	+ 项目三
有序列表:使用数字加点表示有序列表项,例如:
	1. 第一项
	2. 第二项
	 1. 子项
	3. 第三项

4 链接和图片

  <!-- 行内链接 -->
  [链接文本](https://example.com)

  <!-- 带标题的链接 -->
  [链接文本](https://example.com "标题文字")

  <!-- 引用式链接 -->
  [链接文本][1]
  [1]: https://example.com
	
  <!-- 图片 -->
  ![图片描述](image.jpg)
  ![图片描述](image.jpg "可选标题")

  <!-- Hugo 特色 - 使用站点资源 -->
  {{< figure src="image.jpg" title="图片标题" >}}

5 引用

使用 `>` 符号表示引用块,例如:
	> 这是一个引用块
  > 可以多行写作
  >
  > > 嵌套引用
  > 
  > 引用结束

高级语法

代码块

```
<!-- 行内代码 -->
使用 `console.log()` 函数
```

<!-- 代码块 -->
```javascript
function hello() {
  console.log("Hello, World!");
}
```

```python
def hello():
    print("Hello, World!")
```

<!-- 带标题的代码块 -->
```go {linenos=true,hl_lines=[2,"4-5"],linenostart=199}
// Hugo 高亮特色
package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}
```
7 表格
| 左对齐 | 居中对齐 | 右对齐 |
| :----- | :------: | -----: |
| 单元格 | 单元格   | 单元格 |
| 第二行 | 数据     | 数据   |

<!-- 简化写法 -->
左对齐 | 居中对齐 | 右对齐
:--- | :---: | ---:
内容 | 内容 | 内容

8 脚注

这是一个脚注示例[^1]。

[^1]: 这是脚注的内容,可以包含更多信息。
[^2]: 这是第二个脚注的内容。

Hugo 特色功能

9 Front Matter (文章元数据)

---
title: "文章标题"
date: 2024-01-15T10:00:00+08:00
draft: false
tags: ["Markdown", "Hugo", "教程"]
categories: ["技术"]
description: "文章描述"
slug: "custom-url"
keywords: ["关键词1", "关键词2"]
---
10 短代码 (Shortcodes)
<!-- 提醒框 -->
{{< alert warning >}}
这是一个警告信息
{{< /alert >}}

<!-- 图片画廊 -->
{{< gallery >}}
  {{< figure src="image1.jpg" caption="图片1" >}}
  {{< figure src="image2.jpg" caption="图片2" >}}
{{< /gallery >}}

<!-- YouTube 视频 -->
{{< youtube abcdefg >}}

<!-- 自定义短代码 -->
{{< myshortcode param="value" >}}
内容
{{< /myshortcode >}}
11 数学公式
<!-- 行内公式 -->
这是行内公式 $E = mc^2$

<!-- 块级公式 -->
$$
\begin{aligned}
f(x) &= \int_{-\infty}^\infty \hat f(\xi),e^{2 \pi i \xi x} \\, d\xi
\end{aligned}
$$

12 图表 (Mermaid)

```mermaid
graph TD;
    A[开始] --> B{判断}
    B -->|是| C[执行]
    B -->|否| D[结束]
    C --> D
```

13 文章结构示例

---
title: "技术文档总览"
date: 2025-01-15T10:00:00+08:00
type: docs
weight: 1
description: "这里主要是给我几个必要的技术文档,包括Go语言, WordPress, 还有MaccmsRust的教程。"
slug: "technical-docs-overview"  # ⭐ 改为唯一的slug
tags: ["wordpress", "Hugo", "教程"]
categories: ["技术文档"]
keywords: ["技术文档", "maccmsrust", "Go语言"]
---

# 一级标题

这是文章的引言部分。

## 二级标题

这里是正文内容。

### 三级标题

- 列表项一
- 列表项二

> 这是一个引用块。

最佳实践

7.1 文件命名

  • 使用小写字母和连字符
  • 避免使用空格和特殊字符
  • 示例:markdown-tutorial.md

7.2 格式规范

  • 标题前后空一行
  • 列表项统一使用一种符号
  • 表格保持对齐
  • 代码块指定语言

7.3 内容组织

  • 清晰的标题结构
  • 适当的段落划分
  • 重要的内容加粗强调
  • 代码示例提供完整上下文

结语

掌握Markdown语法可以大大提升你的写作效率和内容质量。无论是撰写技术文档、博客文章,还是日常笔记,Markdown都是一个强大且易用的工具。希望这份完整指南能帮助你更好地利用Markdown进行创作!

关键要点:

  1. 嵌套层级:用4个反引号包裹包含代码块的内容
  2. 格式统一:每个示例都用代码块包裹
  3. 缩进一致:保持统一的缩进格式
  4. 语法正确:确保所有Markdown语法都正确嵌套

这样写出来的Markdown文件既能展示语法,又能正确渲染显示效果。

5 - 日常写文章流程

平时写博客文章时使用markdown语法和hugo程序的流程。

hugo程序使用Markdown语法编写文章流程

# 1. 创建文章
hugo new content/en/blog/life-essays/新文章.md

# 2. 编辑文章
nano content/en/blog/life-essays/新文章.md

# 3. 本地预览(可选)
hugo server -D

# 4. 构建并推送
hugo --gc --minify
git add content/en/docs/markdown/1.md
git commit -m "新增: 新文章"
git push origin main

不需要拉取的情况:

  • 只是写新文章,没有修改程序文件
  • 直接添加>提交>推送即可

什么时候需要拉取git pull?

  • 修改了程序文件(比如主题文件)
  • 需要更新主题
  • 需要更新hugo版本
  • 需要更新其他资源文件
  • 其他人也修改了程序文件
git pull origin main

都需要使用以上命令拉取。

6 - Go语言菜鸟教程

go语言是一种开源的编程语言,它能让构造更为简单,更可靠而且搞笑的软件变得容易。

Go语言菜鸟教程概述

go语言是一种开源的编程语言,它能让构造更为简单,更可靠而且搞笑的软件变得容易。 go语言最早是从2007年末由Robert griesemer,Rob pike,Ken thompson主持开发而成,后来还加入了lan lance taylor,Russ cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。


Go语言特色

  • 简介,快速,安全
  • 并行,有趣,开源
  • 内存管理,数组安全,编译迅速

Go语言的实际用途

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

第一个GO语言程序

接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

要执行 Go 语言代码可以使用 go run 命令。

执行以上代码输出:

$ go run hello.go 
Hello, World!

此外我们还可以使用 go build 命令来生成二进制文件:

$ go build hello.go 
$ ls
hello    hello.go
$ ./hello 
Hello, World!

以上就是第一篇go语言的开篇,每天我会写点东西分享给大家。