diff --git a/i18n/zh-cn/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md b/i18n/zh-cn/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md index ed090043..afd1b83c 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md +++ b/i18n/zh-cn/docusaurus-plugin-content-docs/current/administration/customizing-gitea.md @@ -7,77 +7,541 @@ aliases: - /zh-cn/customizing-gitea --- -# 自定义 Gitea 配置 +# 自定义 Gitea -Gitea 引用 `custom` 目录中的自定义配置文件来覆盖配置、模板等默认配置。 +自定义 Gitea 通常通过 `CustomPath` 目录完成。默认情况下,它是工作目录(WorkPath)下的 +`custom` 目录,但如果您的[安装方式](../installation/from-binary.md)做了不同设置,也可能位于其他位置。 +这是覆盖配置项、模板等内容的核心位置。您可以通过 `gitea help` 查看 `CustomPath`,也可以在 +_站点管理_ 页面的 _Configuration_ 选项卡中找到该路径。您还可以通过设置 `GITEA_CUSTOM` +环境变量,或在 `gitea` 二进制上使用 `--custom-path` 选项来覆盖 `CustomPath`。 +(命令行选项会覆盖环境变量。) -如果从二进制部署 Gitea ,则所有默认路径都将相对于该 gitea 二进制文件;如果从发行版安装,则可能会将这些路径修改为 Linux 文件系统标准。Gitea -将会自动创建包括 `custom/` 在内的必要应用目录,应用本身的配置存放在 -`custom/conf/app.ini` 当中。在发行版中可能会以 `/etc/gitea/` 的形式为 `custom` 设置一个符号链接,查看配置详情请移步: +如果 Gitea 以二进制方式部署,所有默认路径都相对于 Gitea 二进制文件。 +如果通过发行版安装,这些路径通常会按照 Linux 文件系统标准进行调整。Gitea 会尝试创建所需目录, +包括 `custom/`。某些发行版可能会通过 `/etc/gitea/` 为 `custom` 提供一个符号链接。 + +应用配置可以在 `CustomConf` 文件中找到,默认路径为 `$GITEA_CUSTOM/conf/app.ini`, +但如果您的[安装方式](../installation/from-binary.md)修改了配置,也可能位于其他位置。 +同样,您可以通过 `gitea help` 查看该变量,也可以使用 `gitea` 二进制的 `--config` 选项覆盖它。 - [快速备忘单](../administration/config-cheat-sheet.md) - [完整配置清单](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini) -如果您在 binary 同目录下无法找到 `custom` 文件夹,请检查您的 `GITEA_CUSTOM` -环境变量配置, 因为它可能被配置到了其他地方(可能被一些启动脚本设置指定了目录)。 +如果在检查 `gitea help` 后仍找不到 `CustomPath` 目录,请检查 `GITEA_CUSTOM` 环境变量; +它可以用来将默认路径覆盖为其他位置。例如,`GITEA_CUSTOM` 可能由 init 脚本设置。 +您也可以在站点管理页面的 “Configuration” 选项卡下检查该值是否已设置。 - [环境变量清单](../administration/environment-variables.md) -**注:** 必须完全重启 Gitea 以使配置生效。 +:::note +Gitea 必须执行完整重启后,配置更改才会生效。 +::: -## 使用自定义 /robots.txt +## 提供自定义公共文件 -将 [想要展示的内容](http://www.robotstxt.org/) 存放在 `custom` 目录中的 -`robots.txt` 文件来让 Gitea 使用自定义的`/robots.txt` (默认:空 404)。 +要让 Gitea 提供自定义公共文件(例如页面和图片),请将 `$GITEA_CUSTOM/public/` +目录作为 webroot。Gitea 会跟随符号链接。 +当前仅提供以下文件: -## 使用自定义的公共文件 +- `public/robots.txt` +- `public/.well-known/` 目录中的文件 +- `public/assets/` 目录中的文件 -将自定义的公共文件(比如页面和图片)作为 webroot 放在 `custom/public/` 中来让 Gitea 提供这些自定义内容(符号链接将被追踪)。 +例如,存放在 `$GITEA_CUSTOM/public/assets/` 中的 `image.png` 文件,可以通过 +`http://gitea.domain.tld/assets/image.png` 访问。 -举例说明:`image.png` 存放在 `custom/public/assets/`中,那么它可以通过链接 http://gitea.domain.tld/assets/image.png 访问。 +## 修改 Logo -## 修改默认头像 +如果要构建自定义 logo 和/或 favicon,请克隆 Gitea 源码仓库,替换 `assets/logo.svg` +和/或 `assets/favicon.svg`,然后运行 `make generate-images`。`assets/favicon.svg` +仅用于 favicon。执行后会更新以下输出文件,随后您可以将它们放到服务器上的 +`$GITEA_CUSTOM/public/assets/img` 中: -替换以下目录中的 png 图片: `custom/public/assets/img/avatar\_default.png` +- `public/assets/img/logo.svg` - 用于站点图标、应用图标 +- `public/assets/img/logo.png` - 用于 Open Graph +- `public/assets/img/avatar_default.png` - 用作默认头像图片 +- `public/assets/img/apple-touch-icon.png` - 用于 iOS 设备书签 +- `public/assets/img/favicon.svg` - 用于 favicon +- `public/assets/img/favicon.png` - 用作不支持 SVG favicon 的浏览器回退图标 -## 自定义 Gitea 页面 +如果源图片不是矢量格式,您可以尝试使用诸如[这个工具](https://www.aconvert.com/image/png-to-svg/) +将光栅图像转换为矢量图。 -您可以改变 Gitea `custom/templates` 的每个单页面。您可以在 Gitea 源码的 `templates` 目录中找到用于覆盖的模板文件,应用将根据 -`custom/templates` 目录下的路径结构进行匹配和覆盖。 +## 自定义 Gitea 页面和资源 -包含在 `{{` 和 `}}` 中的任何语句都是 Gitea 的模板语法,如果您不完全理解这些组件,不建议您对它们进行修改。 +Gitea 可执行文件内置了运行所需的全部资源:模板、图片、样式表和翻译。您可以在 `custom` +目录下放置与原路径一致的替换文件来覆盖其中任意资源。例如,要替换 C++ 仓库默认提供的 +`.gitignore`,我们需要替换 `options/gitignore/C++`。为此,您必须将替换文件放到 +`$GITEA_CUSTOM/options/gitignore/C++`(`CustomPath` 目录位置见本文开头说明)。 + +Gitea 的每一个页面都可以修改。动态内容通过 [go template](https://pkg.go.dev/html/template) +生成,您可以通过在 `$GITEA_CUSTOM/templates` 目录下放置替换文件进行修改。 + +要获取任意内嵌文件(包括模板),可以使用[`gitea embedded` 工具](../administration/cmd-embedded.md)。 +另外,也可以在 Gitea 源码仓库的 [`templates`](https://github.com/go-gitea/gitea/tree/main/templates) +目录中找到它们。(注意:示例链接指向 `main` 分支,请确保所使用的模板与您当前的发布版本兼容。) + +请注意,任何包含在 `{{` 和 `}}` 中的语句都是 Gitea 的模板语法, +如果您没有完全理解这些组件,就不应修改它们。 + +### 自定义首页 / 主页 + +将与您所使用 Gitea 版本对应的 [`home.tmpl`](https://github.com/go-gitea/gitea/blob/main/templates/home.tmpl) +从 `templates` 目录复制到 `$GITEA_CUSTOM/templates`。 +随后按您的需要编辑即可。 +不要忘记重启 Gitea 以应用更改。 ### 添加链接和页签 -如果您只是想添加额外的链接到顶部导航栏或额外的选项卡到存储库视图,您可以将它们放在您 `custom/templates/custom/` 目录下的 `extra_links.tmpl` 和 `extra_tabs.tmpl` 文件中。 +如果您只是想为顶部导航栏或页脚添加额外链接,或者为仓库视图添加额外页签, +可以将它们分别放入 `$GITEA_CUSTOM/templates/custom/` 目录中的 +`extra_links.tmpl`(添加到导航栏的链接)、`extra_links_footer.tmpl` +(添加到页脚左侧的链接)和 `extra_tabs.tmpl`。 -举例说明:假设您需要在网站放置一个静态的“关于”页面,您只需将该页面放在您的 -"custom/public/"目录下(比如 `custom/public/impressum.html`)并且将它与 `custom/templates/custom/extra_links.tmpl` 链接起来即可。 +例如,假设您在德国,需要添加法律上通常要求提供的 “Impressum”/关于页面,用来说明谁对站点内容负责: +只需将该页面放到 `$GITEA_CUSTOM/public/assets/` 目录中 +(例如 `$GITEA_CUSTOM/public/assets/impressum.html`),再在 +`$GITEA_CUSTOM/templates/custom/extra_links.tmpl` 或 +`$GITEA_CUSTOM/templates/custom/extra_links_footer.tmpl` 中加入指向它的链接即可。 -这个链接应当使用一个名为“item”的 class 来匹配当前样式,您可以使用 `{{AppSubUrl}}` 来获取 base URL: +为了匹配当前样式,该链接应使用类名 `item`,并且您可以使用 `{{AppSubUrl}}` 获取基础 URL: `Impressum` -同理,您可以将页签添加到 `extra_tabs.tmpl` 中,使用同样的方式来添加页签。它的具体样式需要与 -`templates/repo/header.tmpl` 中已有的其他选项卡的样式匹配 -([source in GitHub](https://github.com/go-gitea/gitea/blob/main/templates/repo/header.tmpl)) +更多信息请参见[添加法律页面](../administration/adding-legal-pages.md)。 -### 页面的其他新增内容 +您也可以用同样的方式添加新页签,将其放入 `extra_tabs.tmpl` 中。 +与其他页签样式匹配所需的精确 HTML 位于文件 `templates/repo/header.tmpl` +([GitHub 源码](https://github.com/go-gitea/gitea/blob/main/templates/repo/header.tmpl))。 -除了 `extra_links.tmpl` 和 `extra_tabs.tmpl`,您可以在您的 `custom/templates/custom/` 目录中存放一些其他有用的模板,例如: +### 页面中的其他插入内容 -- `header.tmpl`,在 `` 标记结束之前的模板,例如添加自定义 CSS 文件 -- `body_outer_pre.tmpl`,在 `` 标记开始处的模板 -- `body_inner_pre.tmpl`,在顶部导航栏之前,但在主 container 内部的模板,例如添加一个 `
` -- `body_inner_post.tmpl`,在主 container 结束处的模板 -- `body_outer_post.tmpl`,在底部 `