diff --git a/.gitea/workflows/cicd.yaml b/.gitea/workflows/cicd.yaml new file mode 100644 index 00000000..45c8a804 --- /dev/null +++ b/.gitea/workflows/cicd.yaml @@ -0,0 +1,57 @@ +name: Build and Deploy Quartz Site + +on: + push: + branches: [ dev ] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + + # 使用 Git 克隆 Quartz 仓库到指定目录 + - name: Clone Quartz repository (quartz) + run: git clone https://${{ secrets.GIT_PUSH_PULL_TOKEN }}@git.7wate.com/zhouzhongping/quartz-wiki.git /wiki/quartz + + # 克隆 Wiki 仓库到 Quartz 项目的 content 目录 + - name: Check out repository (Wiki) + run: git clone https://${{ secrets.GIT_PUSH_PULL_TOKEN }}@git.7wate.com/zhouzhongping/wiki.git /wiki/quartz/content + + # 设置 Node.js 环境 + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '20' + + - name: Install Quartz dependencies and Build site + run: | + + # 进入 Quartz 项目目录,安装依赖并构建网站 + cd /wiki/quartz + npm ci + npx quartz build + + # 创建 public 目录并复制构建结果到此目录 + mkdir -p /wiki/public/ && cp -r public/* /wiki/public/ + + - name: Deploy to HTML branch of current repository (A仓库) + run: | + + # 设置 Git 用户名和邮箱 + git config --global user.name "Actions" + git config --global user.email "Actions@7wate.com" + + # 在 public 目录下初始化 git 仓库 + cd /wiki/public/ + git init + # 添加远程仓库地址 + git remote add origin https://${{ secrets.GIT_PUSH_PULL_TOKEN }}@git.7wate.com/zhouzhongping/wiki.git + + # 添加所有文件并提交 + git add . + # 获取当天日期作为提交信息 + DATE=`date '+%Y-%m-%d'` + git commit -m "Deploy HTML files - $DATE" + + # 强制推送到远程的 html 分支 + git push origin quartz --force diff --git a/Book/计算机/流畅的Python.md b/Book/计算机/流畅的Python.md index be5014a8..d3138997 100644 --- a/Book/计算机/流畅的Python.md +++ b/Book/计算机/流畅的Python.md @@ -37,9 +37,9 @@ date: 2023-07-17 > 在Python中,函数用*args来获取不确定数量的参数算是一种经典写法了。 -> seq[start:stop:step]进行求值的时候,Python会调用seq.__getitem__(slice(start, stop, step))。 +> `seq[start:stop:step]`进行求值的时候,Python会调用`seq.__getitem__(slice(start, stop, step))`。 -> 如果在a * n这个语句中,序列a里的元素是对其他可变对象的引用的话,你就需要格外注意了,因为这个式子的结果可能会出乎意料。比如,你想用my_list=[[]] * 3来初始化一个由列表组成的列表,但是你得到的列表里包含的3个元素其实是3个引用,而且这3个引用指向的都是同一个列表。这可能不是你想要的效果。 +> 如果在a * n这个语句中,序列a里的元素是对其他可变对象的引用的话,你就需要格外注意了,因为这个式子的结果可能会出乎意料。比如,你想用`my_list=[[]] * 3`来初始化一个由列表组成的列表,但是你得到的列表里包含的3个元素其实是3个引用,而且这3个引用指向的都是同一个列表。这可能不是你想要的效果。 > Python Tutor是一个对Python运行原理进行可视化分析的工具 @@ -65,7 +65,7 @@ date: 2023-07-17 > 接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higher-order function) -> all(iterable)如果iterable的每个元素都是真值,返回True;all([])返回True。any(iterable)只要iterable中有元素是真值,就返回True;any([])返回False。 +> all(iterable)如果iterable的每个元素都是真值,返回True;`all([])`返回True。any(iterable)只要iterable中有元素是真值,就返回True;`any([])`返回False。 > Python简单的句法限制了lambda函数的定义体只能使用纯表达式。换句话说,lambda函数的定义体中不能赋值,也不能使用while和try等Python语句。 diff --git a/Tech/operating-system/Linux/进阶/Linux 网络配置.md b/Tech/operating-system/Linux/进阶/Linux 网络配置.md index cbd8c2c5..fadd1f97 100644 --- a/Tech/operating-system/Linux/进阶/Linux 网络配置.md +++ b/Tech/operating-system/Linux/进阶/Linux 网络配置.md @@ -148,11 +148,19 @@ root@debian:~$ ip link set dev ens32 up ### NetworkManager -NetworkManager 是一款在 Linux 操作系统上用于管理网络连接的软件,最初由 Red Hat 公司开发。NetworkManager 的首个版本发布于 2004 年,之后迅速成为了 **Linux 操作系统中最流行的网络管理工具之一。**在 NetworkManager 诞生之前,**Linux 中的网络管理需要手动配置网络文件,使得网络配置繁琐、困难且容易出错。**随着 NetworkManager 的发展和普及,用户可以更加方便地配置和管理网络,从而提高了 Linux 操作系统的易用性。 +NetworkManager是由Red Hat公司开发的一款用于管理Linux操作系统上网络连接的软件。自2004年首次发布以来,它迅速成为Linux操作系统中最流行的网络管理工具之一。在NetworkManager诞生之前,Linux中的网络管理通常需要通过手动配置网络文件完成,这一过程不仅繁琐且易出错,但随着NetworkManager的出现,这一切都变得简单和直观。 -NetworkManager 的工作原理是通过插件和 D-Bus 通信机制实现。插件用于处理特定类型的网络连接,例如 Wi-Fi、以太网、PPP 等等。当用户启动 NetworkManager 后,它会扫描系统中可用的网络连接,并调用相应的插件进行配置。在用户连接到一个新的网络时,NetworkManager 会自动识别网络类型,并根据相应的插件进行设置。 +#### 架构和工作原理 -NetworkManager 的核心功能是管理网络连接和网络接口。它提供了许多命令行工具和 GUI 工具,使得用户可以轻松地添加、修改、启用和禁用网络连接。当用户添加或修改一个网络连接时,NetworkManager 会自动更新相关的配置文件,从而保证网络设置的一致性和正确性。 +NetworkManager展现了其在管理网络连接和网络接口方面的核心能力,提供了一整套综合工具,大大简化了网络设置的复杂性。用户得以轻松添加、修改、启用或禁用各类网络连接,包括有线和无线网络,乃至虚拟私人网络(VPN)。其核心由负责监控和管理网络的后台守护进程、提供直观操作的图形界面以及功能强大的命令行界面组成,还包括管理设备驱动和处理连接请求的高效后端服务。在用户进行网络设置调整时,NetworkManager自动更新相关配置文件,确保网络设置的一致性和准确性得到坚实保障。借助灵活的插件体系和高效的D-Bus通信机制,NetworkManager能够轻松处理多种类型的网络连接,将配置和管理过程自动化,从而提供了一个无缝、直观且高度可靠的网络管理解决方案。 + +#### nmcli + +`nmcli`是NetworkManager的命令行界面,提供了全面的功能来管理网络。用户可以通过它快速创建、修改和监控网络连接。无论是列出网络设备状态,管理网络连接,设置静态IP,还是管理VPN和其他特殊连接,`nmcli`都能提供强大支持。 + +#### nmtui + +对于那些偏好图形界面或在终端中工作的用户,`nmtui`提供了一个简单直观的解决方案。这个交互式的文本界面应用使得配置NetworkManager控制的网络设置变得轻松。它的直观操作和无需鼠标的特性,使得`nmtui`成为SSH会话和终端窗口中理想的网络管理工具。 #### 命令