markdown语法
1 - 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-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 代理并添加密钥。
- 启动 SSH 代理
# 启动 SSH 代理
eval "$(ssh-agent -s)"
# 或者明确指定
ssh-agent bash
- 添加密钥到 SSH 代理
# 添加默认密钥
ssh-add
# 或者明确指定密钥文件
ssh-add ~/.ssh/id_rsa
# 或者如果是 ed25519 密钥
ssh-add ~/.ssh/id_ed25519
- 确认 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 基础语法完整指南
1 标题
使用 `#` 符号表示标题级别,`#` 代表一级标题,`##` 代表二级标题,以此类推。例如:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
2 文字格式
**加粗**:使用 `**` 或 `__` 包围文字,例如 `**加粗文字**` 或 `__加粗文字__`。
*斜体*:使用 `*` 或 `_` 包围文字,例如 `*斜体文字*` 或 `_斜体文字_`。
***加粗斜体***:使用 `***` 或 `___` 包围文字,例如 `***加粗斜体文字***` 或 `___加粗斜体文字___`。
3 列表
无序列表:使用 `-`、`*` 或 `+` 表示无序列表项,例如:
- 项目一
- 项目二
- 子项目
* 项目二
+ 项目三
有序列表:使用数字加点表示有序列表项,例如:
1. 第一项
2. 第二项
1. 子项
3. 第三项
4 链接和图片
<!-- 行内链接 -->
[链接文本](https://example.com)
<!-- 带标题的链接 -->
[链接文本](https://example.com "标题文字")
<!-- 引用式链接 -->
[链接文本][1]
[1]: https://example.com
<!-- 图片 -->


<!-- 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进行创作!
关键要点:
- 嵌套层级:用4个反引号包裹包含代码块的内容
- 格式统一:每个示例都用代码块包裹
- 缩进一致:保持统一的缩进格式
- 语法正确:确保所有Markdown语法都正确嵌套
这样写出来的Markdown文件既能展示语法,又能正确渲染显示效果。
5 - 日常写文章流程
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语言最早是从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!