---
date: "2019-11-28:00:00+02:00"
slug: "template-repositories"
sidebar_position: 14
aliases:
  - /zh-tw/template-repositories
---

# 模板倉庫

自 Gitea `1.11` 起，您可以創建模板倉庫。
創建基於模板的倉庫時，您可以複製其大部分內容，甚至自動注入變量。

默認情況下，不會在任何文件中展開變量。
只有包含在 `.gitea/template` 文件中的模式內的文件才會被檢查是否包含變量。
創建模板時，除 `.gitea/template` 文件外，所有文件都包含在內。

Gitea 使用 [gobwas/glob](https://github.com/gobwas/glob) 進行其 glob 語法。
它與傳統的 `.gitignore` 非常相似，但可能存在細微差異。

## 示例 `.gitea/template` 文件

所有路徑均相對於倉庫的基礎

```gitignore
# 展開倉庫中任何位置的所有 .go 文件
**.go

# 文本目錄中的所有文本文件
text/*.txt

# 特定文件
a/b/c/d.json

# 大小寫均可匹配的批處理文件
**.[bB][aA][tT]
```

## 變量展開

在上述 glob 匹配的任何文件中，以下變量將被展開。

匹配的文件名和路徑也可以展開，並且經過保守的清理以支持跨平台文件系統。

您可以通過在變量前加上 `$` 或將其括在 `${}` 中來使用變量，因此 `$VAR` 和 `${VAR}` 都會在此位置插入 `VAR` 的值。
要轉義展開，請使用 `$$`，例如 `$$VAR` 或 `$${VAR}`。

這些是 Gitea 目前識別的變量：

| 變量                 | 展開為                           | 可轉換 |
| -------------------- | -------------------------------- | ------ |
| YEAR                 | 生成倉庫的年份（即 `2024`）      | ✘      |
| MONTH                | 生成倉庫的月份（即 `03`）        | ✘      |
| MONTH_ENGLISH        | 月份，但用英文表示（即 `March`） | ✓      |
| DAY                  | 生成倉庫的日期（即 `02`）        | ✘      |
| REPO_NAME            | 生成倉庫的名稱                   | ✓      |
| TEMPLATE_NAME        | 模板倉庫的名稱                   | ✓      |
| REPO_DESCRIPTION     | 生成倉庫的描述                   | ✘      |
| TEMPLATE_DESCRIPTION | 模板倉庫的描述                   | ✘      |
| REPO_OWNER           | 生成倉庫的所有者                 | ✓      |
| TEMPLATE_OWNER       | 模板倉庫的所有者                 | ✓      |
| REPO_LINK            | 生成倉庫的 URL                   | ✘      |
| TEMPLATE_LINK        | 模板倉庫的 URL                   | ✘      |
| REPO_HTTPS_URL       | 生成倉庫的 HTTP(S) 克隆鏈接      | ✘      |
| TEMPLATE_HTTPS_URL   | 模板倉庫的 HTTP(S) 克隆鏈接      | ✘      |
| REPO_SSH_URL         | 生成倉庫的 SSH 克隆鏈接          | ✘      |
| TEMPLATE_SSH_URL     | 模板倉庫的 SSH 克隆鏈接          | ✘      |

## 轉換器 :robot:

自 Gitea `1.12.0` 起，表中標記為可轉換的變量還具有應用了給定轉換器的替代版本。

可以通過將轉換器名稱附加到變量名稱來調用轉換後的變量。
例如，要獲取 `PASCAL` 大小寫的 `REPO_NAME`，您應該使用變量 `${REPO_NAME_PASCAL}`。

以下是可用的轉換器（假設輸入為 `go-sdk`）：

| 轉換器 | 效果   |
| ------ | ------ |
| SNAKE  | go_sdk |
| KEBAB  | go-sdk |
| CAMEL  | goSdk  |
| PASCAL | GoSdk  |
| LOWER  | go-sdk |
| UPPER  | GO-SDK |
| TITLE  | Go-Sdk |
