Skip to content

Commit

Permalink
update markdown snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
hotchilipowder committed Dec 3, 2024
1 parent 416e33f commit 6878d2b
Show file tree
Hide file tree
Showing 3 changed files with 192 additions and 1 deletion.
126 changes: 126 additions & 0 deletions docs/mds/github_actions.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@


# Github Action


Expand Down Expand Up @@ -103,14 +105,138 @@ jobs:
```
基于找个特性,可以实现在 self-hosted 中自动重启docker (docker跑在 `sudo`中且普通用户没有权限的情况下)



:::{hint}
使用`sudo -S`可以实现从标准输入中读取密码
:::




#### 创建依赖的作业

默认情况下,工作流程中的作业同时并行运行。 如果你有一个作业只能在另一个作业完成后运行,则可以使用 needs 关键字来创建此依赖项。 如果其中一个作业失败,则跳过所有从属作业;但如果需要作业继续运行,可以使用 if 条件语句来定义。


```YAML
jobs:
setup:
runs-on: ubuntu-latest
steps:
- run: ./setup_server.sh
build:
needs: setup
runs-on: ubuntu-latest
steps:
- run: ./build_server.sh
test:
needs: build
runs-on: ubuntu-latest
steps:
- run: ./test_server.sh
```

#### 使用矩阵

使用矩阵策略,可以在单个作业定义中使用变量自动创建基于变量组合的多个作业运行。 例如,可以使用矩阵策略在某个语言的多个版本或多个操作系统上测试代码。 矩阵是使用 strategy 关键字创建的,该关键字接收生成选项作为数组。 例如,此矩阵将使用不同版本的 Node.js 多次运行作业:

```YAML
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node: [14, 16]
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
```


#### 缓存依赖项

如果你的作业定期重用依赖项,你可以考虑缓存这些文件以帮助提高性能。 缓存一旦创建,就可用于同一仓库中的所有工作流程。


```YAML
jobs:
example-job:
steps:
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
```

有关详细信息,请参阅“[缓存依赖项以加快工作流程](https://docs.github.com/zh/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows)”


#### 使用数据库和服务容器

如果作业需要数据库或缓存服务,可以使用 services 关键字创建临时容器来托管服务;生成的容器随后可用于该作业中的所有步骤,并在作业完成后删除。
此示例演示作业如何使用 services 创建 postgres 容器,然后使用 node 连接到服务。

```YAML
jobs:
container-job:
runs-on: ubuntu-latest
container: node:20-bookworm-slim
services:
postgres:
image: postgres
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: Connect to PostgreSQL
run: node client.js
env:
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
```

#### 使用标签路由工作流程

如果要确保特定类型的运行器处理作业,可以使用标签来控制作业的执行位置。 除了默认标签 self-hosted 之外,还可以为自托管运行器分配其他标签。 然后,可以在 YAML 工作流中引用这些标签,确保作业以可预测的方式路由。 GitHub 托管运行器已获分配了预定义的标签。

此示例显示工作流程如何使用标签来指定所需的运行器:

```YAML
jobs:
example-job:
runs-on: [self-hosted, linux, x64, gpu]
```

工作流只能在所有标签处于 runs-on 数组中的运行器上运行。 作业将优先转到具有指定标签的空闲自托管运行器。 如果没有可用且具有指定标签的 GitHub 托管的运行器,作业将转到 GitHub 托管的运行器。


若要详细了解自托管运行器标签,请参阅将 [标签与自托管运行程序结合使用](https://docs.github.com/zh/actions/hosting-your-own-runners/managing-self-hosted-runners/using-labels-with-self-hosted-runners)。

有关 GitHub 托管的运行器标签的详细信息,请参阅 [使用 GitHub 托管的运行器](https://docs.github.com/zh/actions/using-github-hosted-runners/using-github-hosted-runners#supported-runners-and-hardware-resources)。


#### 重新使用工作流

可调用一个工作流,可以公开或私下与组织共享工作流。 这样便可重用工作流,避免重复并使工作流更易于维护。 有关详细信息,请参阅 [重新使用工作流](https://docs.github.com/zh/actions/sharing-automations/reusing-workflows)



## Github 托管




## Self-hosted 托管


Expand Down
21 changes: 21 additions & 0 deletions docs/mds/typst.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Learning Typst


- [ ] 可以在 slide 里展示一个用户可见的进度条或当前剩余页数提示。
- [ ] 易于加入代码块,要有正确的高亮,以及最好能够做到可复制,而不仅是截一张图片。
- [ ] 易于编写数学公式,最好是能直接复用已有的数学公式源文件,且易于编辑。
- [ ] 能够方便地设置文本样式,例如字号、字重和颜色。
- [ ] 能够复用已有模板,用户只需要做一些填充工作。有「子幻灯片」能力,在 Powerpoint 指一部分动画效果,在 Beamer 里指 pause。
- [ ] 有「演讲者视图」,可以展示仅演讲者可见的提示或笔记。
- [ ] 能够方便地随意放置图片、以及图片之间的层叠覆盖,即基于页面的绝对定位布局。
- [ ] 能够加入一些箭头、高亮或说明文本,对 slide 的内容进行解释。
- [ ] 能够加入 GIF 动图或者视频。
- [ ] 能有动态过渡效果,例如淡入淡出、平滑等。

## Why I want to use it

1. 不破不立,反正啥都没有
2. 日常教学需要: 数学、代码、标注
3. 论文作图,规整
4. 日常总结、笔记和规范化

46 changes: 45 additions & 1 deletion snippets/UltiSnips/markdown.snippets
Original file line number Diff line number Diff line change
@@ -1,3 +1,34 @@
global !p
from vimsnippets import complete, has_cjk, display_width
MD_ADMONITION = [
"attention",
"caution",
"danger",
"error",
"hint",
"important",
"note",
"seealso",
"tip",
"warning"
]
GITHUB_ALERTS = [
"NOTE",
"TIP",
"IMPORTANT",
"WARNING",
"CAUTION"
]
endglobal



snippet text_with_color "Text with warning attribute"
[${1:Your text}]{.bg-warning}
endsnippet
Expand Down Expand Up @@ -91,6 +122,10 @@ endsnippet

snippet md_admon "Admonitions"

:::{$1`!p snip.rv =complete(t[1], MD_ADMONITION)`}
${2:${VISUAL:Content}}
:::
$0
endsnippet

snippet md_tb "description"
Expand Down Expand Up @@ -164,8 +199,17 @@ $$ (mymath2)
endsnippet


snippet md_sa "Specific Admonitions" b
\`\`\`{$1`!p snip.rv =complete(t[1], MD_ADMONITION)`}

${2:${VISUAL:Content}}

\`\`\`
$0
endsnippet



snippet md_alert "Alter from github" b
> [!`!p snip.rv=complete(t[1], GITHUB_ALERTS)`]
> ${1:content}
endsnippet

0 comments on commit 6878d2b

Please sign in to comment.