diff --git a/assets/favicon.svg b/assets/favicon.svg
new file mode 100644
index 0000000000000..9df6b83b564bd
--- /dev/null
+++ b/assets/favicon.svg
@@ -0,0 +1,31 @@
+
+
diff --git a/build/generate-images.js b/build/generate-images.js
index b8284b1be2fc2..0a91d896a8065 100755
--- a/build/generate-images.js
+++ b/build/generate-images.js
@@ -8,6 +8,7 @@ import {fileURLToPath} from 'url';
const {readFile, writeFile} = fs.promises;
const __dirname = dirname(fileURLToPath(import.meta.url));
const logoFile = resolve(__dirname, '../assets/logo.svg');
+const faviconFile = resolve(__dirname, '../assets/favicon.svg');
function exit(err) {
if (err) console.error(err);
@@ -68,15 +69,17 @@ async function generate(svg, outputFile, {size, bg}) {
async function main() {
const gitea = process.argv.slice(2).includes('gitea');
- const svg = await readFile(logoFile, 'utf8');
+ const logoSvg = await readFile(logoFile, 'utf8');
+ const faviconSvg = await readFile(faviconFile, 'utf8');
await Promise.all([
- generate(svg, resolve(__dirname, '../public/img/logo.svg'), {size: 32}),
- generate(svg, resolve(__dirname, '../public/img/logo.png'), {size: 512}),
- generate(svg, resolve(__dirname, '../public/img/favicon.png'), {size: 180}),
- generate(svg, resolve(__dirname, '../public/img/avatar_default.png'), {size: 200}),
- generate(svg, resolve(__dirname, '../public/img/apple-touch-icon.png'), {size: 180, bg: true}),
- gitea && generate(svg, resolve(__dirname, '../public/img/gitea.svg'), {size: 32}),
+ generate(logoSvg, resolve(__dirname, '../public/img/logo.svg'), {size: 32}),
+ generate(logoSvg, resolve(__dirname, '../public/img/logo.png'), {size: 512}),
+ generate(faviconSvg, resolve(__dirname, '../public/img/favicon.svg'), {size: 32}),
+ generate(faviconSvg, resolve(__dirname, '../public/img/favicon.png'), {size: 180}),
+ generate(logoSvg, resolve(__dirname, '../public/img/avatar_default.png'), {size: 200}),
+ generate(logoSvg, resolve(__dirname, '../public/img/apple-touch-icon.png'), {size: 180, bg: true}),
+ gitea && generate(logoSvg, resolve(__dirname, '../public/img/gitea.svg'), {size: 32}),
]);
}
diff --git a/docs/content/doc/advanced/customizing-gitea.en-us.md b/docs/content/doc/advanced/customizing-gitea.en-us.md
index ef798ddbf966c..b97ba03482b3f 100644
--- a/docs/content/doc/advanced/customizing-gitea.en-us.md
+++ b/docs/content/doc/advanced/customizing-gitea.en-us.md
@@ -60,14 +60,15 @@ the url `http://gitea.domain.tld/assets/image.png`.
## Changing the logo
-To build a custom logo clone the Gitea source repository, replace `assets/logo.svg` and run
-`make generate-images`. This will update below output files which you can then place in `$GITEA_CUSTOM/public/img` on your server:
+To build a custom logo and/or favicon clone the Gitea source repository, replace `assets/logo.svg` and/or `assets/favicon.svg` and run
+`make generate-images`. `assets/favicon.svg` is used for the favicon only. This will update below output files which you can then place in `$GITEA_CUSTOM/public/img` on your server:
-- `public/img/logo.svg` - Used for favicon, site icon, app icon
+- `public/img/logo.svg` - Used for site icon, app icon
- `public/img/logo.png` - Used for Open Graph
-- `public/img/favicon.png` - Used as fallback for browsers that don't support SVG favicons
- `public/img/avatar_default.png` - Used as the default avatar image
- `public/img/apple-touch-icon.png` - Used on iOS devices for bookmarks
+- `public/img/favicon.svg` - Used for favicon
+- `public/img/favicon.png` - Used as fallback for browsers that don't support SVG favicons
In case the source image is not in vector format, you can attempt to convert a raster image using tools like [this](https://www.aconvert.com/image/png-to-svg/).
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index 910a2c95dbfa0..2fd034f278071 100644
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -2423,8 +2423,7 @@ dashboard.new_version_hint=Gitea %s 现已可用,您正在运行 %s。查看 <
dashboard.statistic=摘要
dashboard.operations=维护操作
dashboard.system_status=系统状态
-dashboard.statistic_info=此 Gitea 数据库有 %d 位用户、%d 家组织、 %d 枚公钥、%d 个仓库、%d 个仓库关注、%d 个星标、~%d 个操作、 %d 次访问、%d 张工单、 %d 条评论、 %d 个社交账户、%d 个用户关注、%d 个镜像
-、%d 个发布、%d 个验证源、%d 个 webhooks、%d 个里程碑、 %d 个标签、%d 个 hook 任务、 %d 支团队、%d 个更新任务、%d 个附件。
+dashboard.statistic_info=此 Gitea 数据库有 %d 位用户、%d 家组织、 %d 枚公钥、%d 个仓库、%d 个仓库关注、%d 个星标、~%d 个操作、 %d 次访问、%d 张工单、 %d 条评论、 %d 个社交账户、%d 个用户关注、%d 个镜像、%d 个发布、%d 个验证源、%d 个 webhooks、%d 个里程碑、 %d 个标签、%d 个 hook 任务、 %d 支团队、%d 个更新任务、%d 个附件。
dashboard.operation_name=操作名称
dashboard.operation_switch=开关
dashboard.operation_run=执行
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index 7d64c88251d77..e75531746a42c 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -19,7 +19,7 @@
{{end}}
-
+
{{template "base/head_script" .}}