docs: add zh-tw folder (#195)

Signed-off-by: appleboy <appleboy.tw@gmail.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/195
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: appleboy <appleboy.tw@gmail.com>
Co-committed-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
appleboy
2025-04-04 23:28:16 +00:00
committed by Lunny Xiao
parent 3275094871
commit dbfa0ba454
835 changed files with 72590 additions and 5155 deletions

View File

@@ -1,7 +1,7 @@
// @ts-check // @ts-check
// Note: type annotations allow type checking and IDEs autocompletion // Note: type annotations allow type checking and IDEs autocompletion
import {themes as prismThemes} from 'prism-react-renderer'; import { themes as prismThemes } from "prism-react-renderer";
const lightCodeTheme = prismThemes.github; const lightCodeTheme = prismThemes.github;
const darkCodeTheme = prismThemes.dracula; const darkCodeTheme = prismThemes.dracula;
@@ -11,192 +11,204 @@ function sortItemsByCategory(items) {
// type with "category" (directory) first // type with "category" (directory) first
const sortedItems = items.sort(function (a, b) { const sortedItems = items.sort(function (a, b) {
return a.type.localeCompare(b.type); return a.type.localeCompare(b.type);
}) });
return sortedItems; return sortedItems;
} }
const renderApiSSR = process.env.API_SSR !== 'false'; const renderApiSSR = process.env.API_SSR !== "false";
const apiConfig = [ const apiConfig = [
'redocusaurus', "redocusaurus",
{ {
// Plugin Options for loading OpenAPI files // Plugin Options for loading OpenAPI files
specs: renderApiSSR ? [ specs: renderApiSSR
? [
{ {
route: '/api/next/', route: "/api/next/",
spec: 'static/swagger-latest.json', spec: "static/swagger-latest.json",
}, },
{ {
route: '/api/', route: "/api/",
spec: 'static/swagger-23.json', spec: "static/swagger-23.json",
}, },
{ {
route: '/api/1.23/', route: "/api/1.23/",
spec: 'static/swagger-23.json', spec: "static/swagger-23.json",
}, },
{ {
route: '/api/1.22/', route: "/api/1.22/",
spec: 'static/swagger-22.json', spec: "static/swagger-22.json",
}, },
{ {
route: '/api/1.21/', route: "/api/1.21/",
spec: 'static/swagger-21.json', spec: "static/swagger-21.json",
}, },
{ {
route: '/api/1.20/', route: "/api/1.20/",
spec: 'static/swagger-20.json', spec: "static/swagger-20.json",
}, },
{ {
route: '/api/1.19/', route: "/api/1.19/",
spec: 'static/swagger-19.json', spec: "static/swagger-19.json",
} },
]: [], ]
: [],
// Theme Options for modifying how redoc renders them // Theme Options for modifying how redoc renders them
theme: { theme: {
// Change with your site colors // Change with your site colors
primaryColor: '#1890ff', primaryColor: "#1890ff",
}, },
}, },
] ];
const pageConfig = renderApiSSR ? { const pageConfig = renderApiSSR
exclude: [ ? {
'api/**', exclude: ["api/**"],
], }
}: {} : {};
const globalVariables = { const globalVariables = {
current: { current: {
'goVersion': '1.23', goVersion: "1.23",
'minGoVersion': '1.23', minGoVersion: "1.23",
'minNodeVersion': '18', minNodeVersion: "18",
'version': 'main-nightly', version: "main-nightly",
'sourceVersion': 'main', sourceVersion: "main",
'sourceBranch': 'main', sourceBranch: "main",
'dockerVersion': 'nightly', dockerVersion: "nightly",
'displayVersion': '1.24-dev' displayVersion: "1.24-dev",
}, },
'1.23': { 1.23: {
'goVersion': '1.23', goVersion: "1.23",
'minGoVersion': '1.22', minGoVersion: "1.22",
'minNodeVersion': '18', minNodeVersion: "18",
'version': '1.23.6', version: "1.23.6",
'sourceVersion': 'v1.23.0', sourceVersion: "v1.23.0",
'sourceBranch': 'release/v1.23', sourceBranch: "release/v1.23",
'dockerVersion': '1.23.6', dockerVersion: "1.23.6",
'displayVersion': '1.23.6' displayVersion: "1.23.6",
}, },
'1.22': { 1.22: {
'goVersion': '1.22', goVersion: "1.22",
'minGoVersion': '1.22', minGoVersion: "1.22",
'minNodeVersion': '18', minNodeVersion: "18",
'version': '1.22.6', version: "1.22.6",
'sourceVersion': 'v1.22.6', sourceVersion: "v1.22.6",
'sourceBranch': 'release/v1.22', sourceBranch: "release/v1.22",
'dockerVersion': '1.22.6', dockerVersion: "1.22.6",
'displayVersion': '1.22.6' displayVersion: "1.22.6",
}, },
'1.21': { 1.21: {
'goVersion': '1.21', goVersion: "1.21",
'minGoVersion': '1.21', minGoVersion: "1.21",
'minNodeVersion': '18', minNodeVersion: "18",
'version': '1.21.11', version: "1.21.11",
'sourceVersion': 'v1.21.11', sourceVersion: "v1.21.11",
'sourceBranch': 'release/v1.21', sourceBranch: "release/v1.21",
'dockerVersion': '1.21.11', dockerVersion: "1.21.11",
'displayVersion': '1.21.11' displayVersion: "1.21.11",
}, },
'1.20': { "1.20": {
'goVersion': '1.20', goVersion: "1.20",
'minGoVersion': '1.20', minGoVersion: "1.20",
'minNodeVersion': '16', minNodeVersion: "16",
'version': '1.20.6', version: "1.20.6",
'sourceVersion': 'v1.20.6', sourceVersion: "v1.20.6",
'sourceBranch': 'release/v1.20', sourceBranch: "release/v1.20",
'dockerVersion': '1.20.6', dockerVersion: "1.20.6",
'displayVersion': '1.20.6' displayVersion: "1.20.6",
}, },
'1.19': { 1.19: {
'goVersion': '1.20', goVersion: "1.20",
'minGoVersion': '1.19', minGoVersion: "1.19",
'minNodeVersion': '14', minNodeVersion: "14",
'version': '1.19.4', version: "1.19.4",
'sourceVersion': 'v1.19.4', sourceVersion: "v1.19.4",
'sourceBranch': 'release/v1.19', sourceBranch: "release/v1.19",
'dockerVersion': '1.19.4', dockerVersion: "1.19.4",
'displayVersion': '1.19.4' displayVersion: "1.19.4",
} },
} };
const versions = { const versions = {
current: { current: {
label: globalVariables['current'].displayVersion, // path is kept as next for dev (so users can always find "nightly" docs) label: globalVariables["current"].displayVersion, // path is kept as next for dev (so users can always find "nightly" docs)
banner: 'unreleased', banner: "unreleased",
}, },
'1.23': { 1.23: {
label: globalVariables['1.23'].displayVersion, label: globalVariables["1.23"].displayVersion,
}, },
'1.22': { 1.22: {
label: globalVariables['1.22'].displayVersion, label: globalVariables["1.22"].displayVersion,
}, },
'1.21': { 1.21: {
label: globalVariables['1.21'].displayVersion, label: globalVariables["1.21"].displayVersion,
}, },
'1.20': { "1.20": {
label: globalVariables['1.20'].displayVersion, label: globalVariables["1.20"].displayVersion,
}, },
'1.19': { 1.19: {
label: globalVariables['1.19'].displayVersion, label: globalVariables["1.19"].displayVersion,
} },
} };
/** @type {import('@docusaurus/types').Config} */ /** @type {import('@docusaurus/types').Config} */
const config = { const config = {
title: 'Gitea Documentation', title: "Gitea Documentation",
tagline: 'Git with a cup of tea', tagline: "Git with a cup of tea",
url: 'https://docs.gitea.com', url: "https://docs.gitea.com",
baseUrl: '/', baseUrl: "/",
onBrokenLinks: 'warn', onBrokenLinks: "warn",
onBrokenMarkdownLinks: 'warn', onBrokenMarkdownLinks: "warn",
favicon: 'img/favicon.png', favicon: "img/favicon.png",
future: { future: {
experimental_faster: true experimental_faster: true,
}, },
plugins: [ plugins: [
[ [
'docusaurus-plugin-plausible', "docusaurus-plugin-plausible",
{ {
domain: 'docs.gitea.com', domain: "docs.gitea.com",
}, },
], ],
// for runner documentations // for runner documentations
[ [
'@docusaurus/plugin-content-docs', "@docusaurus/plugin-content-docs",
{ {
id: 'runner', id: "runner",
path: 'runner', path: "runner",
routeBasePath: 'runner', routeBasePath: "runner",
//sidebarPath: './runner/sidebars.js', //sidebarPath: './runner/sidebars.js',
versions: { versions: {
current: { current: {
label: 'main', label: "main",
banner: 'unreleased', banner: "unreleased",
}, },
"0.2.11": { "0.2.11": {
path: '0.2.11', path: "0.2.11",
label: '0.2.11', label: "0.2.11",
}
}, },
lastVersion: '0.2.11', },
editUrl: ({versionDocsDirPath, docPath, locale, version, permalink}) => { lastVersion: "0.2.11",
return `https://gitea.com/gitea/docs/src/branch/main/${version === 'current' ? 'runner': `runner_versioned_docs/version-${version}`}/${docPath}`; editUrl: ({
versionDocsDirPath,
docPath,
locale,
version,
permalink,
}) => {
return `https://gitea.com/gitea/docs/src/branch/main/${
version === "current"
? "runner"
: `runner_versioned_docs/version-${version}`
}/${docPath}`;
}, },
async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) { async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) {
const { item } = args; const { item } = args;
// Use the provided data to generate a custom sidebar slice // Use the provided data to generate a custom sidebar slice
const sidebarItems = await defaultSidebarItemsGenerator(args); const sidebarItems = await defaultSidebarItemsGenerator(args);
if (item.dirName !== 'usage') { if (item.dirName !== "usage") {
return sidebarItems; return sidebarItems;
} else { } else {
return sortItemsByCategory(sidebarItems); return sortItemsByCategory(sidebarItems);
@@ -207,44 +219,62 @@ const config = {
], ],
i18n: { i18n: {
defaultLocale: 'en-us', defaultLocale: "en-us",
locales: ['en-us', 'zh-cn'/*,'fr-fr', 'zh-tw'*/], // temporarily disable other locales locales: ["en-us", "zh-cn", "zh-tw"],
localeConfigs: { localeConfigs: {
'en-us': { "en-us": {
label: 'English', label: "English",
}, },
'zh-cn': { "zh-cn": {
label: '中文', label: "簡體中文",
},
"zh-tw": {
label: "繁體中文",
}, },
}, },
}, },
presets: [ presets: [
[ [
'@docusaurus/preset-classic', "@docusaurus/preset-classic",
//'classic', //'classic',
/** @type {import('@docusaurus/preset-classic').Options} */ /** @type {import('@docusaurus/preset-classic').Options} */
({ ({
docs: { docs: {
sidebarPath: require.resolve('./sidebars.js'), sidebarPath: require.resolve("./sidebars.js"),
routeBasePath: '/', // Serve the docs at the site's root routeBasePath: "/", // Serve the docs at the site's root
editUrl: ({versionDocsDirPath, docPath, locale, version, permalink}) => { editUrl: ({
versionDocsDirPath,
docPath,
locale,
version,
permalink,
}) => {
// Special case for awesome page // Special case for awesome page
if (docPath.includes('awesome.md')) { if (docPath.includes("awesome.md")) {
return `https://gitea.com/gitea/awesome-gitea/src/branch/main/README.md` return `https://gitea.com/gitea/awesome-gitea/src/branch/main/README.md`;
} }
if (locale === 'en-us') { if (locale === "en-us") {
return `https://gitea.com/gitea/docs/src/branch/main/${version === 'current' ? 'docs': `versioned_docs/version-${version}`}/${docPath}`; return `https://gitea.com/gitea/docs/src/branch/main/${
version === "current"
? "docs"
: `versioned_docs/version-${version}`
}/${docPath}`;
} }
return `https://gitea.com/gitea/docs/src/branch/main/i18n/${locale}/docusaurus-plugin-content-docs/${version === 'current' ? 'current': `version-${version}`}/${docPath}`; return `https://gitea.com/gitea/docs/src/branch/main/i18n/${locale}/docusaurus-plugin-content-docs/${
version === "current" ? "current" : `version-${version}`
}/${docPath}`;
}, },
versions: versions, versions: versions,
lastVersion: '1.23', lastVersion: "1.23",
async sidebarItemsGenerator({defaultSidebarItemsGenerator, ...args}) { async sidebarItemsGenerator({
defaultSidebarItemsGenerator,
...args
}) {
const { item } = args; const { item } = args;
// Use the provided data to generate a custom sidebar slice // Use the provided data to generate a custom sidebar slice
const sidebarItems = await defaultSidebarItemsGenerator(args); const sidebarItems = await defaultSidebarItemsGenerator(args);
if (item.dirName !== 'usage') { if (item.dirName !== "usage") {
return sidebarItems; return sidebarItems;
} else { } else {
return sortItemsByCategory(sidebarItems); return sortItemsByCategory(sidebarItems);
@@ -253,11 +283,11 @@ const config = {
}, },
blog: false, blog: false,
theme: { theme: {
customCss: require.resolve('./src/css/custom.css'), customCss: require.resolve("./src/css/custom.css"),
}, },
pages: pageConfig, pages: pageConfig,
gtag: { gtag: {
trackingID: 'G-KHM0KYT506' trackingID: "G-KHM0KYT506",
}, },
}), }),
], ],
@@ -265,25 +295,28 @@ const config = {
], ],
markdown: { markdown: {
preprocessor: ({ filePath, fileContent }) => { preprocessor: ({ filePath, fileContent }) => {
var key = ''; var key = "";
var found = false; var found = false;
for (key in globalVariables) { for (key in globalVariables) {
let folderName = (key == 'current' ? 'current' : `version-${key}`); let folderName = key == "current" ? "current" : `version-${key}`;
if (filePath.includes(`/${folderName}/`)) { if (filePath.includes(`/${folderName}/`)) {
found = true; found = true;
break; break;
} }
} }
if (key == '' || !found) { if (key == "" || !found) {
key = 'current'; key = "current";
} }
let content = fileContent; let content = fileContent;
for (const variable in globalVariables[key]) { for (const variable in globalVariables[key]) {
content = content.replaceAll('@'+variable+'@', globalVariables[key][variable]); content = content.replaceAll(
"@" + variable + "@",
globalVariables[key][variable]
);
} }
return content return content;
}, },
}, },
themes: [ themes: [
@@ -295,164 +328,168 @@ const config = {
highlightSearchTermsOnTargetPage: true, highlightSearchTermsOnTargetPage: true,
explicitSearchResultPath: true, explicitSearchResultPath: true,
indexBlog: false, indexBlog: false,
docsRouteBasePath: "/" docsRouteBasePath: "/",
} },
] ],
], ],
themeConfig: themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({ ({
metadata: [ metadata: [
{name: 'keywords', content: 'gitea, git, devops, actions, packages, documentation, self-hosted, open-source, version control, gitlab, github'} {
name: "keywords",
content:
"gitea, git, devops, actions, packages, documentation, self-hosted, open-source, version control, gitlab, github",
},
], ],
colorMode: { colorMode: {
defaultMode: 'light', defaultMode: "light",
disableSwitch: false, disableSwitch: false,
respectPrefersColorScheme: true, respectPrefersColorScheme: true,
}, },
announcementBar: { announcementBar: {
id: 'announcementBar-4', // Increment on change id: "announcementBar-4", // Increment on change
content: `<a href="https://about.gitea.com/products/cloud">Try &nbsp; Gitea Cloud &nbsp; ☁️ &nbsp; for 30 days <span aria-hidden="true">&rarr;</span> Accelerate your Development & Deploys!</a>`, content: `<a href="https://about.gitea.com/products/cloud">Try &nbsp; Gitea Cloud &nbsp; ☁️ &nbsp; for 30 days <span aria-hidden="true">&rarr;</span> Accelerate your Development & Deploys!</a>`,
}, },
navbar: { navbar: {
title: 'Gitea', title: "Gitea",
logo: { logo: {
alt: 'Gitea Logo', alt: "Gitea Logo",
src: 'img/gitea.svg', src: "img/gitea.svg",
href: 'https://about.gitea.com/', href: "https://about.gitea.com/",
target: '_self', target: "_self",
}, },
items: [ items: [
{ {
type: 'doc', type: "doc",
docId: 'index', docId: "index",
position: 'left', position: "left",
label: 'Docs', label: "Docs",
}, },
{ {
to: '/api/1.23/', to: "/api/1.23/",
label: 'API', label: "API",
position: 'left', position: "left",
activeBaseRegex: 'api/(1.19|1.20|1.21|1.22|1.23|next)/', activeBaseRegex: "api/(1.19|1.20|1.21|1.22|1.23|next)/",
}, },
{ {
to: '/runner/0.2.11/', to: "/runner/0.2.11/",
label: 'Runner', label: "Runner",
position: 'left', position: "left",
activeBaseRegex: 'runner/(0.2.11|next)/', activeBaseRegex: "runner/(0.2.11|next)/",
}, },
{ {
position: 'left', position: "left",
label: 'Enterprise', label: "Enterprise",
href: 'https://docs.gitea.com/enterprise', href: "https://docs.gitea.com/enterprise",
className: 'internal-href', className: "internal-href",
target: '_self', target: "_self",
}, },
{ {
type: 'search', type: "search",
position: 'right', position: "right",
}, },
{ {
type: 'localeDropdown', type: "localeDropdown",
position: 'right', position: "right",
}, },
{ {
type: 'docsVersionDropdown', type: "docsVersionDropdown",
position: 'right', position: "right",
dropdownActiveClassDisabled: true, dropdownActiveClassDisabled: true,
}, },
{ {
type: 'custom-Dropdown', type: "custom-Dropdown",
label: 'API Version', label: "API Version",
position: 'right', position: "right",
items: [ items: [
{to: '/api/next/', label: '1.24-dev' }, { to: "/api/next/", label: "1.24-dev" },
{to: '/api/1.23/', label: '1.23.6' }, { to: "/api/1.23/", label: "1.23.6" },
{to: '/api/1.22/', label: '1.22.6' }, { to: "/api/1.22/", label: "1.22.6" },
{to: '/api/1.21/', label: '1.21.11' }, { to: "/api/1.21/", label: "1.21.11" },
{to: '/api/1.20/', label: '1.20.6' }, { to: "/api/1.20/", label: "1.20.6" },
{to: '/api/1.19/', label: '1.19.4' }, { to: "/api/1.19/", label: "1.19.4" },
], ],
routerRgx: '\/api\/', routerRgx: "/api/",
classNames: 'api-dropdown', classNames: "api-dropdown",
}, },
{ {
type: 'custom-Dropdown', type: "custom-Dropdown",
label: 'Runner Version', label: "Runner Version",
position: 'right', position: "right",
items: [ items: [
{to: '/runner/next/', label: 'development' }, { to: "/runner/next/", label: "development" },
{to: '/runner/0.2.11/', label: '0.2.11' }, { to: "/runner/0.2.11/", label: "0.2.11" },
], ],
routerRgx: '\/runner\/', routerRgx: "/runner/",
classNames: 'runner-dropdown', classNames: "runner-dropdown",
}, },
{ {
to: 'help/support', to: "help/support",
position: 'right', position: "right",
label: 'Support', label: "Support",
activeBaseRegex: 'help/support', activeBaseRegex: "help/support",
}, },
{ {
href: 'https://gitea.com/user/login', href: "https://gitea.com/user/login",
label: 'Sign In', label: "Sign In",
position: 'right', position: "right",
className: 'internal-href signin-button', className: "internal-href signin-button",
target: '_self', target: "_self",
}, },
], ],
}, },
footer: { footer: {
style: 'dark', style: "dark",
links: [ links: [
{ {
title: 'Community', title: "Community",
items: [ items: [
{ {
label: 'Awesome Gitea', label: "Awesome Gitea",
href: 'https://gitea.com/gitea/awesome-gitea', href: "https://gitea.com/gitea/awesome-gitea",
}, },
{ {
label: 'Stack Overflow', label: "Stack Overflow",
href: 'https://stackoverflow.com/questions/tagged/gitea', href: "https://stackoverflow.com/questions/tagged/gitea",
}, },
{ {
label: 'Discord', label: "Discord",
href: 'https://discord.gg/gitea', href: "https://discord.gg/gitea",
}, },
{ {
label: 'Matrix', label: "Matrix",
href: 'https://matrix.to/#/#gitea-space:matrix.org', href: "https://matrix.to/#/#gitea-space:matrix.org",
}, },
{ {
label: 'Forum', label: "Forum",
href: 'https://forum.gitea.com/', href: "https://forum.gitea.com/",
}, },
{ {
label: 'Twitter', label: "Twitter",
href: 'https://twitter.com/giteaio', href: "https://twitter.com/giteaio",
}, },
{ {
label: 'Mastodon', label: "Mastodon",
href: 'https://social.gitea.io/@gitea', href: "https://social.gitea.io/@gitea",
}, },
], ],
}, },
{ {
title: 'Code', title: "Code",
items: [ items: [
{ {
label: 'GitHub', label: "GitHub",
href: 'https://github.com/go-gitea/gitea', href: "https://github.com/go-gitea/gitea",
}, },
{ {
label: 'Gitea', label: "Gitea",
href: 'https://gitea.com/gitea', href: "https://gitea.com/gitea",
}, },
{ {
label: 'Tea CLI', label: "Tea CLI",
href: 'https://gitea.com/gitea/tea', href: "https://gitea.com/gitea/tea",
}, },
], ],
}, },
@@ -461,7 +498,7 @@ const config = {
prism: { prism: {
theme: lightCodeTheme, theme: lightCodeTheme,
darkTheme: darkCodeTheme, darkTheme: darkCodeTheme,
additionalLanguages: ['ini','diff','json','http','docker','php'], additionalLanguages: ["ini", "diff", "json", "http", "docker", "php"],
}, },
}), }),
}; };

View File

@@ -5,7 +5,6 @@ sidebar_position: 110
aliases: aliases:
- /zh-cn/adding-legal-pages - /zh-cn/adding-legal-pages
--- ---
# 添加法律页面 # 添加法律页面

View File

@@ -27,9 +27,11 @@ aliases:
- 例如: LDAP `389`/ LDAPs `636` - 例如: LDAP `389`/ LDAPs `636`
- 安全协议 (可选) - 安全协议 (可选)
- 连接 LDAP 服务器时是否使用 TLS 协议。 - 连接 LDAP 服务器时是否使用 TLS 协议。
- 管理员过滤规则 (可选) - 管理员过滤规则 (可选)
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。 - 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
- 示例:`(objectClass=adminAccount)` - 示例:`(objectClass=adminAccount)`
- 适用于 Microsoft Active DirectoryAD的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org` - 适用于 Microsoft Active DirectoryAD的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
@@ -45,7 +47,9 @@ aliases:
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。 - 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
- 示例:givenName - 示例:givenName
- 姓氏属性(可选) - 姓氏属性(可选)
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。 - 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
- 示例:`sn` - 示例:`sn`
@@ -83,7 +87,7 @@ aliases:
但您可以在 app.ini 文件中进行更改。 但您可以在 app.ini 文件中进行更改。
有关此部分的详细说明,请参阅[sample 有关此部分的详细说明,请参阅[sample
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini) app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
_cron.sync_external_users_ 部分的注释。前面提到的_User Search Base_和_User Filter_ *cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。 设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。 在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
@@ -113,6 +117,7 @@ aliases:
使用以下字段: 使用以下字段:
- 群组搜索基础 DN(可选) - 群组搜索基础 DN(可选)
- 组使用的 LDAP DN。 - 组使用的 LDAP DN。
- 示例: `ou=group,dc=mydomain,dc=com` - 示例: `ou=group,dc=mydomain,dc=com`
@@ -156,7 +161,8 @@ PAM提供了一种机制通过对用户进行PAM认证来自动将其添加
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加, **Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。 而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
[^1]: 例如在Debian "Bullseye"上使用标准Linux登录可以使用`common-session-noninteractive`。这个值对于其他版本的Debian [^1]:
例如,在 Debian "Bullseye"上使用标准 Linux 登录,可以使用`common-session-noninteractive`。这个值对于其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用发行版的文档以确认。 包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用发行版的文档以确认。
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。 [^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
@@ -166,9 +172,11 @@ PAM提供了一种机制通过对用户进行PAM认证来自动将其添加
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段: 此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
- 身份验证名称 **(必选)** - 身份验证名称 **(必选)**
- 分配给新授权方法的名称 - 分配给新授权方法的名称
- SMTP 验证类型 **(必选)** - SMTP 验证类型 **(必选)**
- 用于连接 SMTP 主机的验证类型plain 或 login - 用于连接 SMTP 主机的验证类型plain 或 login
- 主机名 **(必选)** - 主机名 **(必选)**

View File

@@ -5,7 +5,6 @@ sidebar_position: 11
aliases: aliases:
- /zh-cn/backup-and-restore - /zh-cn/backup-and-restore
--- ---
# 备份与恢复 # 备份与恢复
@@ -33,12 +32,12 @@ Gitea 包括数据库、文件和 Git 仓库,当它被使用时所有这些都
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容: 最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
* `app.ini` - 如果原先存储在默认的 custom/ 目录之外,则是配置文件的可选副本 - `app.ini` - 如果原先存储在默认的 custom/ 目录之外,则是配置文件的可选副本
* `custom/` - 所有保存在 `custom/` 目录下的配置和自定义的文件。 - `custom/` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
* `data/` - 数据目录APP_DATA_PATH如果使用文件会话则不包括会话。该目录包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 则包括 SQLite 文件。 - `data/` - 数据目录APP_DATA_PATH如果使用文件会话则不包括会话。该目录包括 `attachments``avatars``lfs``indexers`、如果使用 SQLite 则包括 SQLite 文件。
* `repos/` - 仓库目录的完整副本。 - `repos/` - 仓库目录的完整副本。
* `gitea-db.sql` - 数据库dump出来的 SQL。 - `gitea-db.sql` - 数据库 dump 出来的 SQL。
* `log/` - Logs文件如果用作迁移不是必须的。 - `log/` - Logs 文件,如果用作迁移不是必须的。
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。 中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。

View File

@@ -5,7 +5,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/cmd-embedded - /zh-cn/cmd-embedded
--- ---
# 嵌入资源提取工具 # 嵌入资源提取工具

View File

@@ -5,7 +5,6 @@ sidebar_position: 1
aliases: aliases:
- /zh-cn/command-line - /zh-cn/command-line
--- ---
# 命令行 # 命令行

View File

@@ -5,7 +5,6 @@ sidebar_position: 30
aliases: aliases:
- /zh-cn/config-cheat-sheet - /zh-cn/config-cheat-sheet
--- ---
# 配置说明 # 配置说明
@@ -22,14 +21,12 @@ aliases:
包含`#`或者`;`的变量必须使用引号( `` ` `` 或者 `"` )包裹,否则会被解析为注释。 包含`#`或者`;`的变量必须使用引号( `` ` `` 或者 `"` )包裹,否则会被解析为注释。
本文档使用以下约定: 本文档使用以下约定:
* `[section].FOO_BAR` 或 `[section]FOO_BAR`: 一个位于 INI 文件 `[section]` 段中的配置项。 - `[section].FOO_BAR` 或 `[section]FOO_BAR`: 一个位于 INI 文件 `[section]` 段中的配置项。
* `FooBar`: 这是一个 Gitea 内部变量,不是一个配置项,仅用于描述相关逻辑。 - `FooBar`: 这是一个 Gitea 内部变量,不是一个配置项,仅用于描述相关逻辑。
* `$FOO_BAR`: 这是一个环境变量Gitea 可能会使用它的值,但是它不能直接用于配置文件中。 - `$FOO_BAR`: 这是一个环境变量Gitea 可能会使用它的值,但是它不能直接用于配置文件中。
* `{FOO_BAR}/something` 或 `{FooBar}/something`: 这个值会默认使用配置项 `FOO_BAR` 或者内部变量 `FooBar`。 - `{FOO_BAR}/something` 或 `{FooBar}/something`: 这个值会默认使用配置项 `FOO_BAR` 或者内部变量 `FooBar`。
**注意:** 修改完配置文件后,需要重启 Gitea 服务才能生效。 **注意:** 修改完配置文件后,需要重启 Gitea 服务才能生效。
@@ -63,9 +60,9 @@ aliases:
- 这是指向`app.ini`文件的路径。 - 这是指向`app.ini`文件的路径。
- 在构建时设置的内置值(参见从源代码构建) - 在构建时设置的内置值(参见从源代码构建)
- 否则,默认为 _`CustomPath`_`/conf/app.ini` - 否则,默认为 _`CustomPath`_`/conf/app.ini`
- 如果上述任何路径是相对路径,则会相对于_`CustomPath`_目录进行处理。 - 如果上述任何路径是相对路径,则会相对于*`CustomPath`*目录进行处理。
此外,还有_`StaticRootPath`_,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。 此外,还有*`StaticRootPath`*,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
## Overall (`DEFAULT`) ## Overall (`DEFAULT`)
@@ -455,15 +452,15 @@ aliases:
## 索引 (`indexer`) ## 索引 (`indexer`)
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve``db``elasticsearch``meilisearch` - `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve``db``elasticsearch``meilisearch`
- `ISSUE_INDEXER_CONN_STR`**** : 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch例如`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。 - `ISSUE_INDEXER_CONN_STR`\*\*\*\* : 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch例如`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
- `ISSUE_INDEXER_NAME`**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。 - `ISSUE_INDEXER_NAME`**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
- `ISSUE_INDEXER_PATH`**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE_INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 _`AppWorkPath`_ 进行绝对路径化。 - `ISSUE_INDEXER_PATH`**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE*INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 *`AppWorkPath`\_ 进行绝对路径化。
- `REPO_INDEXER_ENABLED`**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。 - `REPO_INDEXER_ENABLED`**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
- `REPO_INDEXER_REPO_TYPES`**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources``forks``mirrors``templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED` - `REPO_INDEXER_REPO_TYPES`**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources``forks``mirrors``templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`
- `REPO_INDEXER_TYPE`**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch` - `REPO_INDEXER_TYPE`**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`
- `REPO_INDEXER_PATH`**indexers/repos.bleve**: 用于代码搜索的索引文件。 - `REPO_INDEXER_PATH`**indexers/repos.bleve**: 用于代码搜索的索引文件。
- `REPO_INDEXER_CONN_STR`****: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200` - `REPO_INDEXER_CONN_STR`\*\*\*\*: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
- `REPO_INDEXER_NAME`**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。 - `REPO_INDEXER_NAME`**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
- `REPO_INDEXER_INCLUDE`**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。 - `REPO_INDEXER_INCLUDE`**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
@@ -481,8 +478,8 @@ aliases:
- `LENGTH`**100000**: 通道队列阻塞之前的最大队列大小 - `LENGTH`**100000**: 通道队列阻塞之前的最大队列大小
- `BATCH_LENGTH`**20**: 在传递给处理程序之前批处理数据 - `BATCH_LENGTH`**20**: 在传递给处理程序之前批处理数据
- `CONN_STR`**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR` - `CONN_STR`**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`
- `QUEUE_NAME`**_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。 - `QUEUE_NAME`**\_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
- `SET_NAME`**_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_但可以在特定的 `queue.name` 部分中进行覆盖。 - `SET_NAME`**\_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_但可以在特定的 `queue.name` 部分中进行覆盖。
- `MAX_WORKERS`**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。 - `MAX_WORKERS`**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
Gitea 创建以下非唯一队列: Gitea 创建以下非唯一队列:
@@ -516,7 +513,7 @@ Gitea 创建以下非唯一队列:
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA - `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。 - `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
- `LOGIN_REMEMBER_DAYS`: **31**: 在要求重新登录之前,记住用户的登录状态多长时间(以天为单位)。 - `LOGIN_REMEMBER_DAYS`: **31**: 在要求重新登录之前,记住用户的登录状态多长时间(以天为单位)。
- `COOKIE_REMEMBER_NAME`: **gitea\_incredible**: 保存自动登录信息的 Cookie 名称。 - `COOKIE_REMEMBER_NAME`: **gitea_incredible**: 保存自动登录信息的 Cookie 名称。
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。 - `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。 - `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。 - `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
@@ -571,13 +568,13 @@ Gitea 创建以下非唯一队列:
## OpenID (`openid`) ## OpenID (`openid`)
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。 - `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: 允许通过OpenID进行注册。 - `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允许通过 OpenID 进行注册。
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。 - `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。 - `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
## OAuth2 Client (`oauth2_client`) ## OAuth2 Client (`oauth2_client`)
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER\_EMAIL\_CONFIRM**: 设置此项以启用或禁用OAuth2自动注册的电子邮件确认。覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置) - `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 设置此项以启用或禁用 OAuth2 自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加) - `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。 - `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源: - `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
@@ -631,7 +628,7 @@ Gitea 创建以下非唯一队列:
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。 - `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。 - `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。 - `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: 显示注册按钮 - `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 显示注册按钮
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑 - `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库 - `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库 - `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
@@ -677,7 +674,7 @@ Gitea 创建以下非唯一队列:
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。 - `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。 - `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
- `PROXY_URL`: **_empty_**: 代理服务器 URL支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。 - `PROXY_URL`: **_empty_**: 代理服务器 URL支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (*);使用 ** 来匹配所有主机。如果未提供,将使用全局代理设置。 - `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (\*);使用 \*\* 来匹配所有主机。如果未提供,将使用全局代理设置。
## 邮件 (`mailer`) ## 邮件 (`mailer`)
@@ -752,7 +749,7 @@ Gitea 创建以下非唯一队列:
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。 - `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db为空将使用数据库配置对于其他引擎为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。 - `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db为空将使用数据库配置对于其他引擎为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
- `COOKIE_SECURE`: **_empty_**: `true``false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置当 ROOT_URL 是 https 链接的时候默认设置为 true。 - `COOKIE_SECURE`: **_empty_**: `true``false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置当 ROOT_URL 是 https 链接的时候默认设置为 true。
- `COOKIE_NAME`: **i\_like\_gitea**: 用于会话 ID 的 cookie 名称。 - `COOKIE_NAME`: **i_like_gitea**: 用于会话 ID 的 cookie 名称。
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。 - `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 864001 天)。 - `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 864001 天)。
- `DOMAIN`: **_empty_**: 设置 cookie 的域。 - `DOMAIN`: **_empty_**: 设置 cookie 的域。
@@ -1094,7 +1091,7 @@ IS_INPUT_FILE = false
- ENABLED**false** 设置是否启动渲染器 - ENABLED**false** 设置是否启动渲染器
- NEED_POSTPROCESS**true** 设置为**true**以替换链接/SHA1 等。 - NEED_POSTPROCESS**true** 设置为**true**以替换链接/SHA1 等。
- FILE_EXTENSIONS**_empty_** 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。 - FILE*EXTENSIONS\*\*\_empty*\*\* 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
- RENDER_COMMAND用于渲染所有匹配的扩展名的外部命令。 - RENDER_COMMAND用于渲染所有匹配的扩展名的外部命令。
- IS_INPUT_FILE**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。 - IS_INPUT_FILE**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
- RENDER_CONTENT_MODE**sanitized** 内容将如何呈现。 - RENDER_CONTENT_MODE**sanitized** 内容将如何呈现。
@@ -1333,7 +1330,7 @@ MINIO_BUCKET_LOOKUP_TYPE = auto
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true所有通过 HTTP 向外部的请求都将受到影响,如果为 false即使环境设置了 http_proxy/https_proxy 也不会使用 - `PROXY_ENABLED`: **false**: 启用代理,如果为 true所有通过 HTTP 向外部的请求都将受到影响,如果为 false即使环境设置了 http_proxy/https_proxy 也不会使用
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy - `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站 - `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
i.e. i.e.

View File

@@ -5,7 +5,6 @@ sidebar_position: 100
aliases: aliases:
- /zh-cn/customizing-gitea - /zh-cn/customizing-gitea
--- ---
# 自定义 Gitea 配置 # 自定义 Gitea 配置

View File

@@ -5,7 +5,6 @@ sidebar_position: 12
aliases: aliases:
- /zh-cn/email-setup - /zh-cn/email-setup
--- ---
# Email 设置 # Email 设置

View File

@@ -5,7 +5,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/environment-variables - /zh-cn/environment-variables
--- ---
# 环境变量清单 # 环境变量清单
@@ -20,31 +19,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数: 因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
* `GOOS` - `GOOS`
* `GOARCH` - `GOARCH`
* [`GOPATH`](https://go.dev/cmd/go/#hdr-GOPATH_environment_variable) - [`GOPATH`](https://go.dev/cmd/go/#hdr-GOPATH_environment_variable)
您可以在[官方文档](https://go.dev/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。 您可以在[官方文档](https://go.dev/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
## Gitea 的文件目录 ## Gitea 的文件目录
* `GITEA_WORK_DIR`:工作目录的绝对路径 - `GITEA_WORK_DIR`:工作目录的绝对路径
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 *custom* 目录 - `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 _custom_ 目录
* `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代 - `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代
* `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代 - `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代
## 操作系统配置 ## 操作系统配置
* `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分 - `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
* `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME` - `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME`
* `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量 - `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
### 仅限于 Windows 的配置 ### 仅限于 Windows 的配置
* `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH` - `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C盘 - `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C 盘)
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径 - `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
## Miscellaneous ## Miscellaneous
* `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。 - `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。

View File

@@ -5,7 +5,6 @@ sidebar_position: 60
aliases: aliases:
- /zh-cn/external-renderers - /zh-cn/external-renderers
--- ---
# 外部渲染器 # 外部渲染器
@@ -171,7 +170,8 @@ ALLOW_DATA_URI_IMAGES = true
.markup.XXXXX body { .markup.XXXXX body {
color: #444; color: #444;
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
serif;
font-size: 12px; font-size: 12px;
line-height: 1.7; line-height: 1.7;
padding: 1em; padding: 1em;

View File

@@ -5,7 +5,6 @@ sidebar_position: 16
aliases: aliases:
- /zh-cn/fail2ban-setup - /zh-cn/fail2ban-setup
--- ---
# 设置 Fail2ban # 设置 Fail2ban

View File

@@ -5,7 +5,6 @@ sidebar_position: 12
aliases: aliases:
- /zh-cn/git-lfs-setup - /zh-cn/git-lfs-setup
--- ---
# Git LFS 设置 # Git LFS 设置

View File

@@ -18,7 +18,7 @@ aliases:
目前,以下通知事件使用模板: 目前,以下通知事件使用模板:
| 操作名称 | 用途 | | 操作名称 | 用途 |
| ----------- | ------------------------------------------------------------------------------------------------------------ | | ---------- | ---------------------------------------------------------------------- |
| `new` | 创建了新的工单或合并请求。 | | `new` | 创建了新的工单或合并请求。 |
| `comment` | 在现有工单或合并请求中创建了新的评论。 | | `comment` | 在现有工单或合并请求中创建了新的评论。 |
| `close` | 关闭了工单或合并请求。 | | `close` | 关闭了工单或合并请求。 |
@@ -75,7 +75,7 @@ custom/templates/mail/pull/comment.tmpl
_主题__邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素: _主题__邮件正文_ 由 [Golang 的模板引擎](https://go.dev/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
| 名称 | 类型 | 可用性 | 用途 | | 名称 | 类型 | 可用性 | 用途 |
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 | | `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 | | `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 | | `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
@@ -221,11 +221,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
> >
> #### 消息内容 > #### 消息内容
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> Mike, I think we should tone down the blues a little. > Mike, I think we should tone down the blues a little.
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> [在 Gitea 上查看](#)。 > [在 Gitea 上查看](#)。
@@ -234,7 +234,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表: 模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
| 函数名 | 参数 | 可用于 | 用法 | | 函数名 | 参数 | 可用于 | 用法 |
|------------------| ----------- | ------------ | ------------------------------ | | ---------------- | ----------- | ---------- | ------------------------------------------------ |
| `AppUrl` | - | 任何地方 | Gitea 的 URL | | `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" | | `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主机名 | | `AppDomain` | - | 任何地方 | Gitea 的主机名 |
@@ -245,8 +245,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://go.dev/pkg/text/
这些都是 _函数_,而不是元数据,因此必须按以下方式使用: 这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
```html ```html
像这样使用: {{SanitizeHTML "Escape<my>text"}} 像这样使用: {{SanitizeHTML "Escape<my
或者这样使用: {{"Escape<my>text" | SanitizeHTML}} >text"}} 或者这样使用: {{"Escape<my
或者这样使用: {{AppUrl}} >text" | SanitizeHTML}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
但不要像这样使用: {{.AppUrl}} {{.AppUrl}}</my
></my
>
``` ```

View File

@@ -16,10 +16,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
源文件可以在以下目录中找到: 源文件可以在以下目录中找到:
* **CSS 样式** `web_src/css/` - **CSS 样式** `web_src/css/`
* **JavaScript 文件** `web_src/js/` - **JavaScript 文件** `web_src/js/`
* **Vue 组件** `web_src/js/components/` - **Vue 组件** `web_src/js/components/`
* **Go HTML 模板** `templates/` - **Go HTML 模板** `templates/`
## 通用准则 ## 通用准则
@@ -54,16 +54,16 @@ Gitea 使用一些补丁使 Fomantic UI 更具可访问性(参见 `aria.md`
推荐的实现方式: 推荐的实现方式:
* Vue + Vanilla JS - Vue + Vanilla JS
* Fomantic-UIjQuery - Fomantic-UIjQuery
* htmx (部分页面重新加载其他静态组件) - htmx (部分页面重新加载其他静态组件)
* Vanilla JS - Vanilla JS
不推荐的实现方式: 不推荐的实现方式:
* Vue + Fomantic-UIjQuery - Vue + Fomantic-UIjQuery
* jQuery + Vanilla JS - jQuery + Vanilla JS
* htmx + 任何其他需要大量 JavaScript 代码或不必要的功能,如 htmx 脚本 (`hx-on`) - htmx + 任何其他需要大量 JavaScript 代码或不必要的功能,如 htmx 脚本 (`hx-on`)
为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。 为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。
尽管不建议混合使用不同的框架, 尽管不建议混合使用不同的框架,
@@ -97,31 +97,41 @@ Gitea 使用一些补丁使 Fomantic UI 更具可访问性(参见 `aria.md`
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。 禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
然而,仍然存在一些特殊情况,因此当前的准则是: 然而,仍然存在一些特殊情况,因此当前的准则是:
* 对于旧代码: - 对于旧代码:
* 应将`$.data()`重构为`$.attr()`
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
* 对于新代码: - 应将`$.data()`重构为`$.attr()`
* 不应使用`node.dataset`,而应使用`node.getAttribute` - 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
- 对于新代码:
- 不应使用`node.dataset`,而应使用`node.getAttribute`
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
### 显示/隐藏元素 ### 显示/隐藏元素
* 推荐在Vue组件中使用`v-if``v-show`来显示/隐藏元素。 - 推荐在 Vue 组件中使用`v-if``v-show`来显示/隐藏元素。
* Go 模板代码应使用 `.tw-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.tw-hidden`的注释以获取更多详细信息。 - Go 模板代码应使用 `.tw-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.tw-hidden`的注释以获取更多详细信息。
### Go HTML 模板中的样式和属性 ### Go HTML 模板中的样式和属性
建议使用以下方式: 建议使用以下方式:
```html ```html
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div> <div
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
{{if
.IsFoo}}data-foo{{end}}
></div>
``` ```
而不是: 而不是:
```html ```html
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div> <div
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
{{if
.IsFoo}}
data-foo{{end}}
></div>
``` ```
以使代码更易读。 以使代码更易读。

View File

@@ -19,22 +19,22 @@ aliases:
## 重构建议 ## 重构建议
* 设计更多关于未来的内容,而不仅仅解决当前问题。 - 设计更多关于未来的内容,而不仅仅解决当前问题。
* 减少模糊性,减少冲突,提高可维护性。 - 减少模糊性,减少冲突,提高可维护性。
* 描述重构,例如: - 描述重构,例如:
* 为什么需要重构。 - 为什么需要重构。
* 如何解决旧问题。 - 如何解决旧问题。
* 重构的优点/缺点是什么。 - 重构的优点/缺点是什么。
* 只做必要的更改,尽量保留旧逻辑。 - 只做必要的更改,尽量保留旧逻辑。
* 引入一些中间步骤使重构更容易审查完整的重构计划可以在几个PR中完成。 - 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
* 如果存在分歧应该请TOC技术监督委员会参与决策。 - 如果存在分歧,应该请 TOC技术监督委员会参与决策。
* 添加必要的测试以确保重构的正确性。 - 添加必要的测试以确保重构的正确性。
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。 - 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
## 审查和合并建议 ## 审查和合并建议
* 重构的PR不应该长时间保持打开状态通常为7天),应尽快进行审查。 - 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
* 重构的PR应尽快合并不应被其他PR阻塞。 - 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
* 如果TOC没有异议重构的PR可以在7天后由一名核心成员(非作者)批准后合并。 - 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
* 如果最终结果良好,容忍一些不完美/临时的步骤。 - 如果最终结果良好,容忍一些不完美/临时的步骤。
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。 - 如果重构是必要的,容忍一些回归错误,并尽快修复错误。

View File

@@ -62,7 +62,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。 - MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH` - 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。 - 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
- 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。 - 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make` - [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata` **注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`

View File

@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
Gitea 支持以下令牌范围: Gitea 支持以下令牌范围:
| 名称 | 介绍 | | 名称 | 介绍 |
| ---- | ----------- | | ---------------------------------------- | --------------------------------------------------------------- |
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 | | **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
| **repo** | 完全控制所有存储库 | | **repo** | 完全控制所有存储库 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 | | &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |

View File

@@ -53,18 +53,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
- 或者包含 Gitea 二进制文件的目录 - 或者包含 Gitea 二进制文件的目录
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径) - `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
- `app.ini`中的`APP_DATA_PATH` - `app.ini`中的`APP_DATA_PATH`
- 或者_`AppWorkPath`_`/data` - 或者*`AppWorkPath`*`/data`
- _`CustomPath`_自定义模板 - _`CustomPath`_自定义模板
- `--custom-path`标志 - `--custom-path`标志
- 或者环境变量`GITEA_CUSTOM` - 或者环境变量`GITEA_CUSTOM`
- 或者在构建时设置的内置值 - 或者在构建时设置的内置值
- 或者_`AppWorkPath`_`/custom` - 或者*`AppWorkPath`*`/custom`
- HomeDir - HomeDir
- Unix环境变量`HOME` - Unix环境变量`HOME`
- Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH` - Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
- RepoRootPath - RepoRootPath
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径) - `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径) - 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
- 默认值为`%(APP_DATA_PATH)/gitea-repositories` - 默认值为`%(APP_DATA_PATH)/gitea-repositories`
- INI配置文件 - INI配置文件
- `--config`标志 - `--config`标志
@@ -251,12 +251,14 @@ fatal: Could not read from remote repository.
Git 用户(@ 之前的部分)的名称拼写正确。 Git 用户(@ 之前的部分)的名称拼写正确。
- 确保客户端机器上的公钥和私钥正确无误。 - 确保客户端机器上的公钥和私钥正确无误。
- 在服务器上: - 在服务器上:
- 确保存储库存在并且命名正确。 - 确保存储库存在并且命名正确。
- 检查系统用户主目录中的 `.ssh` 目录的权限。 - 检查系统用户主目录中的 `.ssh` 目录的权限。
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。 - 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
尝试在 Gitea 管理面板上运行 尝试在 Gitea 管理面板上运行
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)` `Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`
- 查看 Gitea 日志。 - 查看 Gitea 日志。
- 查看 /var/log/auth或类似的文件 - 查看 /var/log/auth或类似的文件
- 检查存储库的权限。 - 检查存储库的权限。
@@ -328,7 +330,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。 - 使用[管理 CLI 命令](../administration/command-line.md#admin)。
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。 请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
- 作为**用户**,您可以更改密码... - 作为**用户**,您可以更改密码...
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 - 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
- 使用`忘记密码`链接。 - 使用`忘记密码`链接。

View File

@@ -14,18 +14,18 @@ aliases:
_表格中的符号含义:_ _表格中的符号含义:_
* _✓ - 支持_ - _✓ - 支持_
* _ - 部分支持_ - _ - 部分支持_
* _✘ - 不支持_ - _✘ - 不支持_
* _⚙ - 由第三方服务或插件支持_ - _⚙ - 由第三方服务或插件支持_
#### 主要特性 #### 主要特性
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | | 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| ------------------------------- | -------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ | | -------------------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | | 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | | 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 支持多种数据库 | ✓ | ✓ | ✘ | | | ✓ | ✓ | | 支持多种数据库 | ✓ | ✓ | ✘ | | | ✓ | ✓ |
@@ -56,7 +56,7 @@ _表格中的符号含义:_
#### 代码管理 #### 代码管理
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | | 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| ------------------------------------ | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ | | -------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ | | 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ | | 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ | | 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |

View File

@@ -258,7 +258,7 @@ docker-compose up -d
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini). 除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量: 这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
```bash ```bash
... ...

View File

@@ -296,7 +296,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
``` ```
```yaml ```yaml
... ---
services: services:
server: server:
environment: environment:

View File

@@ -5,7 +5,6 @@ slug: "clone-filters"
sidebar_position: 25 sidebar_position: 25
aliases: aliases:
- /zh-cn/clone-filters - /zh-cn/clone-filters
--- ---
# 克隆过滤器 (部分克隆) # 克隆过滤器 (部分克隆)

View File

@@ -5,7 +5,6 @@ slug: "incoming-email"
sidebar_position: 13 sidebar_position: 13
aliases: aliases:
- /zh-cn/incoming-email - /zh-cn/incoming-email
--- ---
# 邮件接收 # 邮件接收

View File

@@ -100,16 +100,13 @@ Gitea 支持两种格式的模板Markdown 和 YAML。
```md ```md
--- ---
name: "Template Name" name: "Template Name"
about: "This template is for testing!" about: "This template is for testing!"
title: "[TEST] " title: "[TEST] "
ref: "main" ref: "main"
labels: labels:
- bug - bug
- "help needed" - "help needed"
--- ---
This is the template! This is the template!

View File

@@ -116,7 +116,7 @@ Gitea 支持使用外部工单跟踪器,并可以在合并请求中创建对
下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。 下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。
| 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 | | 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 |
| ----------------------- | :-------------------: | :-------------------: | ------------------------------------------------ | | ----------------------- | :------------------: | :------------------: | --------------------------------------------- |
| `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 | | `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 |

View File

@@ -5,7 +5,6 @@ sidebar_position: 15
aliases: aliases:
- /zh-cn/merge-message-templates - /zh-cn/merge-message-templates
--- ---
# 合并消息模板 # 合并消息模板

View File

@@ -15,7 +15,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。 在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。
| 名称 | 描述 | 权限 | | 名称 | 描述 | 权限 |
| ----------------- | --------------------------------------------------- | ------------ | | -------------- | ---------------------------------- | --------- |
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 | | 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 | | 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 | | 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
@@ -31,7 +31,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
通过不同的权限,用户可以在这些单元上执行不同的操作。 通过不同的权限,用户可以在这些单元上执行不同的操作。
| 名称 | 读取 | 写入 | 管理员 | | 名称 | 读取 | 写入 | 管理员 |
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- | | -------------- | -------------------------------- | ------------------------------ | -------- |
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - | | 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - | | 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - | | 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |

View File

@@ -53,7 +53,7 @@ aliases:
要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。 1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。 2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git` 3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git`
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。 4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
@@ -66,7 +66,7 @@ aliases:
要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。 1. 创建具有 _write_repository_ 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git` 2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。 3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。
@@ -77,7 +77,7 @@ aliases:
要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。 1. 创建一个具有选中 _Repository Write_ 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git` 2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。 3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。

View File

@@ -43,7 +43,7 @@ a/b/c/d.json
所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}` 所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}`
| 变量 | 扩展为 | 可转换 | | 变量 | 扩展为 | 可转换 |
| -------------------- | --------------------------------------------------- | ------------- | | -------------------- | ----------------------------- | ------ |
| REPO_NAME | 生成的仓库名称 | ✓ | | REPO_NAME | 生成的仓库名称 | ✓ |
| TEMPLATE_NAME | 模板仓库名称 | ✓ | | TEMPLATE_NAME | 模板仓库名称 | ✓ |
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ | | REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
@@ -66,7 +66,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
`go-sdk` 传递给可用的转换器的效果如下... `go-sdk` 传递给可用的转换器的效果如下...
| 转换器 | 效果 | | 转换器 | 效果 |
| ----------- | ------------ | | ------ | ------ |
| SNAKE | go_sdk | | SNAKE | go_sdk |
| KEBAB | go-sdk | | KEBAB | go-sdk |
| CAMEL | goSdk | | CAMEL | goSdk |

View File

@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
.markup.XXXXX body { .markup.XXXXX body {
color: #444; color: #444;
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
serif;
font-size: 12px; font-size: 12px;
line-height: 1.7; line-height: 1.7;
padding: 1em; padding: 1em;

View File

@@ -18,7 +18,7 @@ aliases:
目前,以下通知事件使用模板: 目前,以下通知事件使用模板:
| 操作名称 | 用途 | | 操作名称 | 用途 |
| ----------- | ------------------------------------------------------------------------------------------------------------ | | ---------- | ---------------------------------------------------------------------- |
| `new` | 创建了新的工单或合并请求。 | | `new` | 创建了新的工单或合并请求。 |
| `comment` | 在现有工单或合并请求中创建了新的评论。 | | `comment` | 在现有工单或合并请求中创建了新的评论。 |
| `close` | 关闭了工单或合并请求。 | | `close` | 关闭了工单或合并请求。 |
@@ -75,7 +75,7 @@ custom/templates/mail/pull/comment.tmpl
_主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素: _主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
| 名称 | 类型 | 可用性 | 用途 | | 名称 | 类型 | 可用性 | 用途 |
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 | | `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 | | `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 | | `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
@@ -221,11 +221,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
> >
> #### 消息内容: > #### 消息内容:
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> Mike, I think we should tone down the blues a little. > Mike, I think we should tone down the blues a little.
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> [在 Gitea 上查看](#)。 > [在 Gitea 上查看](#)。
@@ -234,7 +234,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表: 模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
| 函数名 | 参数 | 可用于 | 用法 | | 函数名 | 参数 | 可用于 | 用法 |
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- | | ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
| `AppUrl` | - | 任何地方 | Gitea 的 URL | | `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" | | `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主机名 | | `AppDomain` | - | 任何地方 | Gitea 的主机名 |
@@ -245,8 +245,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
这些都是 _函数_,而不是元数据,因此必须按以下方式使用: 这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
```html ```html
像这样使用: {{Str2html "Escape<my>text"}} 像这样使用: {{Str2html "Escape<my
或者这样使用: {{"Escape<my>text" | Str2html}} >text"}} 或者这样使用: {{"Escape<my
或者这样使用: {{AppUrl}} >text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
但不要像这样使用: {{.AppUrl}} {{.AppUrl}}</my
></my
>
``` ```

View File

@@ -16,10 +16,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
源文件可以在以下目录中找到: 源文件可以在以下目录中找到:
* **CSS 样式** `web_src/css/` - **CSS 样式** `web_src/css/`
* **JavaScript 文件** `web_src/js/` - **JavaScript 文件** `web_src/js/`
* **Vue 组件** `web_src/js/components/` - **Vue 组件** `web_src/js/components/`
* **Go HTML 模板** `templates/` - **Go HTML 模板** `templates/`
## 通用准则 ## 通用准则
@@ -53,14 +53,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
推荐的实现方式: 推荐的实现方式:
* Vue + Vanilla JS - Vue + Vanilla JS
* Fomantic-UIjQuery - Fomantic-UIjQuery
* Vanilla JS - Vanilla JS
不推荐的实现方式: 不推荐的实现方式:
* Vue + Fomantic-UIjQuery - Vue + Fomantic-UIjQuery
* jQuery + Vanilla JS - jQuery + Vanilla JS
为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。 为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。
尽管不建议混合使用不同的框架, 尽管不建议混合使用不同的框架,
@@ -87,31 +87,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。 禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
然而,仍然存在一些特殊情况,因此当前的准则是: 然而,仍然存在一些特殊情况,因此当前的准则是:
* 对于旧代码: - 对于旧代码:
* 应将`$.data()`重构为`$.attr()`
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
* 对于新代码: - 应将`$.data()`重构为`$.attr()`
* 不应使用`node.dataset`,而应使用`node.getAttribute` - 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
- 对于新代码:
- 不应使用`node.dataset`,而应使用`node.getAttribute`
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
### 显示/隐藏元素 ### 显示/隐藏元素
* 推荐在Vue组件中使用`v-if``v-show`来显示/隐藏元素。 - 推荐在 Vue 组件中使用`v-if``v-show`来显示/隐藏元素。
* Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。 - Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
### Go HTML 模板中的样式和属性 ### Go HTML 模板中的样式和属性
建议使用以下方式: 建议使用以下方式:
```html ```html
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div> <div
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
{{if
.IsFoo}}data-foo{{end}}
></div>
``` ```
而不是: 而不是:
```html ```html
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div> <div
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
{{if
.IsFoo}}
data-foo{{end}}
></div>
``` ```
以使代码更易读。 以使代码更易读。

View File

@@ -19,22 +19,22 @@ aliases:
## 重构建议 ## 重构建议
* 设计更多关于未来的内容,而不仅仅解决当前问题。 - 设计更多关于未来的内容,而不仅仅解决当前问题。
* 减少模糊性,减少冲突,提高可维护性。 - 减少模糊性,减少冲突,提高可维护性。
* 描述重构,例如: - 描述重构,例如:
* 为什么需要重构。 - 为什么需要重构。
* 如何解决旧问题。 - 如何解决旧问题。
* 重构的优点/缺点是什么。 - 重构的优点/缺点是什么。
* 只做必要的更改,尽量保留旧逻辑。 - 只做必要的更改,尽量保留旧逻辑。
* 引入一些中间步骤使重构更容易审查完整的重构计划可以在几个PR中完成。 - 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
* 如果存在分歧应该请TOC技术监督委员会参与决策。 - 如果存在分歧,应该请 TOC技术监督委员会参与决策。
* 添加必要的测试以确保重构的正确性。 - 添加必要的测试以确保重构的正确性。
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。 - 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
## 审查和合并建议 ## 审查和合并建议
* 重构的PR不应该长时间保持打开状态通常为7天),应尽快进行审查。 - 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
* 重构的PR应尽快合并不应被其他PR阻塞。 - 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
* 如果TOC没有异议重构的PR可以在7天后由一名核心成员(非作者)批准后合并。 - 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
* 如果最终结果良好,容忍一些不完美/临时的步骤。 - 如果最终结果良好,容忍一些不完美/临时的步骤。
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。 - 如果重构是必要的,容忍一些回归错误,并尽快修复错误。

View File

@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
Gitea 支持以下令牌范围: Gitea 支持以下令牌范围:
| 名称 | 介绍 | | 名称 | 介绍 |
| ---- | ----------- | | ---------------------------------------- | --------------------------------------------------------------- |
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 | | **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
| **repo** | 完全控制所有存储库 | | **repo** | 完全控制所有存储库 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 | | &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |

View File

@@ -4,7 +4,6 @@ slug: "faq"
sidebar_position: 5 sidebar_position: 5
aliases: aliases:
- /zh-cn/faq - /zh-cn/faq
--- ---
# 常见问题 # 常见问题
@@ -55,18 +54,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
- 或者包含 Gitea 二进制文件的目录 - 或者包含 Gitea 二进制文件的目录
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径) - `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
- `app.ini`中的`APP_DATA_PATH` - `app.ini`中的`APP_DATA_PATH`
- 或者_`AppWorkPath`_`/data` - 或者*`AppWorkPath`*`/data`
- _`CustomPath`_自定义模板 - _`CustomPath`_自定义模板
- `--custom-path`标志 - `--custom-path`标志
- 或者环境变量`GITEA_CUSTOM` - 或者环境变量`GITEA_CUSTOM`
- 或者在构建时设置的内置值 - 或者在构建时设置的内置值
- 或者_`AppWorkPath`_`/custom` - 或者*`AppWorkPath`*`/custom`
- HomeDir - HomeDir
- Unix环境变量`HOME` - Unix环境变量`HOME`
- Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH` - Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
- RepoRootPath - RepoRootPath
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径) - `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径) - 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
- 默认值为`%(APP_DATA_PATH)/gitea-repositories` - 默认值为`%(APP_DATA_PATH)/gitea-repositories`
- INI配置文件 - INI配置文件
- `--config`标志 - `--config`标志
@@ -262,12 +261,14 @@ fatal: Could not read from remote repository.
Git 用户(@ 之前的部分)的名称拼写正确。 Git 用户(@ 之前的部分)的名称拼写正确。
- 确保客户端机器上的公钥和私钥正确无误。 - 确保客户端机器上的公钥和私钥正确无误。
- 在服务器上: - 在服务器上:
- 确保存储库存在并且命名正确。 - 确保存储库存在并且命名正确。
- 检查系统用户主目录中的 `.ssh` 目录的权限。 - 检查系统用户主目录中的 `.ssh` 目录的权限。
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。 - 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
尝试在 Gitea 管理面板上运行 尝试在 Gitea 管理面板上运行
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)` `Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`
- 查看 Gitea 日志。 - 查看 Gitea 日志。
- 查看 /var/log/auth或类似的文件 - 查看 /var/log/auth或类似的文件
- 检查存储库的权限。 - 检查存储库的权限。
@@ -339,7 +340,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。 - 使用[管理 CLI 命令](../administration/command-line.md#admin)。
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。 请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
- 作为**用户**,您可以更改密码... - 作为**用户**,您可以更改密码...
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 - 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
- 使用`忘记密码`链接。 - 使用`忘记密码`链接。

View File

@@ -258,7 +258,7 @@ docker-compose up -d
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini). 除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量: 这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
```bash ```bash
... ...

View File

@@ -295,7 +295,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
``` ```
```yaml ```yaml
... ---
services: services:
server: server:
environment: environment:

View File

@@ -116,7 +116,7 @@ Gitea 支持使用外部工单跟踪器,并可以在合并请求中创建对
下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。 下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。
| 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 | | 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 |
| ----------------------- | :-------------------: | :-------------------: | ------------------------------------------------ | | ----------------------- | :------------------: | :------------------: | --------------------------------------------- |
| `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 | | `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 |

View File

@@ -15,7 +15,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。 在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。
| 名称 | 描述 | 权限 | | 名称 | 描述 | 权限 |
| ----------------- | --------------------------------------------------- | ------------ | | -------------- | ------------------------------ | --------- |
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 | | 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 | | 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 | | 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
@@ -29,7 +29,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
通过不同的权限,用户可以在这些单元上执行不同的操作。 通过不同的权限,用户可以在这些单元上执行不同的操作。
| 名称 | 读取 | 写入 | 管理员 | | 名称 | 读取 | 写入 | 管理员 |
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- | | -------------- | -------------------------------- | ------------------------------ | -------- |
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - | | 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - | | 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - | | 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |

View File

@@ -53,7 +53,7 @@ aliases:
要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。 1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。 2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git` 3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git`
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。 4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
@@ -66,7 +66,7 @@ aliases:
要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。 1. 创建具有 _write_repository_ 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git` 2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。 3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。
@@ -77,7 +77,7 @@ aliases:
要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。 1. 创建一个具有选中 _Repository Write_ 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git` 2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。 3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。

View File

@@ -41,7 +41,7 @@ a/b/c/d.json
所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}` 所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}`
| 变量 | 扩展为 | 可转换 | | 变量 | 扩展为 | 可转换 |
| -------------------- | --------------------------------------------------- | ------------- | | -------------------- | ----------------------------- | ------ |
| REPO_NAME | 生成的仓库名称 | ✓ | | REPO_NAME | 生成的仓库名称 | ✓ |
| TEMPLATE_NAME | 模板仓库名称 | ✓ | | TEMPLATE_NAME | 模板仓库名称 | ✓ |
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ | | REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
@@ -64,7 +64,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
`go-sdk` 传递给可用的转换器的效果如下... `go-sdk` 传递给可用的转换器的效果如下...
| 转换器 | 效果 | | 转换器 | 效果 |
| ----------- | ------------ | | ------ | ------ |
| SNAKE | go_sdk | | SNAKE | go_sdk |
| KEBAB | go-sdk | | KEBAB | go-sdk |
| CAMEL | goSdk | | CAMEL | goSdk |

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/authentication - /zh-cn/authentication
--- ---
# 认证 # 认证

View File

@@ -25,11 +25,11 @@ Gitea 已经实现了 `dump` 命令可以用来备份所有需要的文件到一
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容: 最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
* `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。 - `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
* `data` - 数据目录下的所有内容不包含使用文件session的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用sqlite 还会包含 sqlite 数据库文件。 - `data` - 数据目录下的所有内容不包含使用文件 session 的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用 sqlite 还会包含 sqlite 数据库文件。
* `gitea-db.sql` - 数据库dump出来的 SQL。 - `gitea-db.sql` - 数据库 dump 出来的 SQL。
* `gitea-repo.zip` - Git仓库压缩文件。 - `gitea-repo.zip` - Git 仓库压缩文件。
* `log/` - Logs文件如果用作迁移不是必须的。 - `log/` - Logs 文件,如果用作迁移不是必须的。
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。 中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。

View File

@@ -30,7 +30,7 @@ aliases:
- `ANSI_CHARSET`: 默认字符编码。 - `ANSI_CHARSET`: 默认字符编码。
- `FORCE_PRIVATE`: 强制所有 git 工程必须私有。 - `FORCE_PRIVATE`: 强制所有 git 工程必须私有。
- `DEFAULT_PRIVATE`: 默认创建的 git 工程为私有。 可以是`last`, `private``public`。默认值是 `last`表示用户最后创建的 Repo 的选择。 - `DEFAULT_PRIVATE`: 默认创建的 git 工程为私有。 可以是`last`, `private``public`。默认值是 `last`表示用户最后创建的 Repo 的选择。
- `DEFAULT_PUSH_CREATE_PRIVATE`: **true**: 通过 ``push-to-create`` 方式创建的仓库是否默认为私有仓库. - `DEFAULT_PUSH_CREATE_PRIVATE`: **true**: 通过 `push-to-create` 方式创建的仓库是否默认为私有仓库.
- `MAX_CREATION_LIMIT`: 全局最大每个用户创建的 git 工程数目, `-1` 表示没限制。 - `MAX_CREATION_LIMIT`: 全局最大每个用户创建的 git 工程数目, `-1` 表示没限制。
### Repository - Release (`repository.release`) ### Repository - Release (`repository.release`)
@@ -96,14 +96,14 @@ aliases:
## Indexer (`indexer`) ## Indexer (`indexer`)
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持 `bleve`, `db``elasticsearch`,当为 `db` 时其它工单索引项可不用设置。 - `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持 `bleve`, `db``elasticsearch`,当为 `db` 时其它工单索引项可不用设置。
- `ISSUE_INDEXER_CONN_STR`: ****: 工单索引连接字符串,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200 - `ISSUE_INDEXER_CONN_STR`: \*\*\*\*: 工单索引连接字符串,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
- `ISSUE_INDEXER_NAME`: **gitea_issues**: 工单索引名称,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。 - `ISSUE_INDEXER_NAME`: **gitea_issues**: 工单索引名称,仅当 ISSUE_INDEXER_TYPE 为 `elasticsearch` 时有效。
- `ISSUE_INDEXER_PATH`: **indexers/issues.bleve**: 工单索引文件存放路径,当索引类型为 `bleve` 时有效。 - `ISSUE_INDEXER_PATH`: **indexers/issues.bleve**: 工单索引文件存放路径,当索引类型为 `bleve` 时有效。
- `REPO_INDEXER_ENABLED`: **false**: 是否启用代码搜索(启用后会占用比较大的磁盘空间,如果是 bleve 可能需要占用约 6 倍存储空间)。 - `REPO_INDEXER_ENABLED`: **false**: 是否启用代码搜索(启用后会占用比较大的磁盘空间,如果是 bleve 可能需要占用约 6 倍存储空间)。
- `REPO_INDEXER_TYPE`: **bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch` - `REPO_INDEXER_TYPE`: **bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`
- `REPO_INDEXER_PATH`: **indexers/repos.bleve**: 用于代码搜索的索引文件路径。 - `REPO_INDEXER_PATH`: **indexers/repos.bleve**: 用于代码搜索的索引文件路径。
- `REPO_INDEXER_CONN_STR`: ****: 代码搜索引擎连接字符串,当 `REPO_INDEXER_TYPE``elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200 - `REPO_INDEXER_CONN_STR`: \*\*\*\*: 代码搜索引擎连接字符串,当 `REPO_INDEXER_TYPE``elasticsearch` 时有效。例如: http://elastic:changeme@localhost:9200
- `REPO_INDEXER_NAME`: **gitea_codes**: 代码搜索引擎的名字,当 `REPO_INDEXER_TYPE``elasticsearch` 时有效。 - `REPO_INDEXER_NAME`: **gitea_codes**: 代码搜索引擎的名字,当 `REPO_INDEXER_TYPE``elasticsearch` 时有效。
- `MAX_FILE_SIZE`: **1048576**: 进行解析的源代码文件的最大长度,小于该值时才会索引。 - `MAX_FILE_SIZE`: **1048576**: 进行解析的源代码文件的最大长度,小于该值时才会索引。
@@ -155,8 +155,8 @@ aliases:
- `DELIVER_TIMEOUT`: 请求 webhooks 的超时时间,单位秒。 - `DELIVER_TIMEOUT`: 请求 webhooks 的超时时间,单位秒。
- `SKIP_TLS_VERIFY`: 是否允许不安全的证书。 - `SKIP_TLS_VERIFY`: 是否允许不安全的证书。
- `PAGING_NUM`: 每页显示的 Webhook 历史数量。 - `PAGING_NUM`: 每页显示的 Webhook 历史数量。
- `PROXY_URL`: ****: 代理服务器网址,支持 http://, https//, socks://, 为空将使用环境变量中的 http_proxy/https_proxy 设置。 - `PROXY_URL`: \*\*\*\*: 代理服务器网址,支持 http://, https//, socks://, 为空将使用环境变量中的 http_proxy/https_proxy 设置。
- `PROXY_HOSTS`: ****: 逗号分隔的需要代理的域名或IP地址。支持 * 号匹配符,使用 ** 匹配所有域名和IP地址。 - `PROXY_HOSTS`: \***_: 逗号分隔的需要代理的域名或 IP 地址。支持 _ 号匹配符,使用 ** 匹配所有域名和 IP 地址。
## Mailer (`mailer`) ## Mailer (`mailer`)
@@ -230,7 +230,7 @@ aliases:
- `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket仅当 `STORAGE_TYPE``minio` 时有效。 - `MINIO_BASE_PATH`: **attachments/**: Minio base path on the bucket仅当 `STORAGE_TYPE``minio` 时有效。
- `MINIO_USE_SSL`: **false**: Minio enabled ssl仅当 `STORAGE_TYPE``minio` 时有效。 - `MINIO_USE_SSL`: **false**: Minio enabled ssl仅当 `STORAGE_TYPE``minio` 时有效。
关于 `ALLOWED_TYPES` 在 (*)unix 系统中可以使用`file -I <filename>` 来快速获得对应的 `MIME type` 关于 `ALLOWED_TYPES` 在 (\*)unix 系统中可以使用`file -I <filename>` 来快速获得对应的 `MIME type`
```shell ```shell
$ file -I test00.tar.xz $ file -I test00.tar.xz
@@ -331,7 +331,7 @@ IS_INPUT_FILE = false
``` ```
- ENABLED: 是否启用,默认为 false。 - ENABLED: 是否启用,默认为 false。
- NEED\_POSTPROCESS: **true** 设置为 true 则会替换渲染文件中的内部链接和Commit ID 等。 - NEED_POSTPROCESS: **true** 设置为 true 则会替换渲染文件中的内部链接和 Commit ID 等。
- FILE_EXTENSIONS: 关联的文档的扩展名,多个扩展名用都好分隔。 - FILE_EXTENSIONS: 关联的文档的扩展名,多个扩展名用都好分隔。
- RENDER_COMMAND: 工具的命令行命令及参数。 - RENDER_COMMAND: 工具的命令行命令及参数。
- IS_INPUT_FILE: 输入方式是最后一个参数为文件路径还是从标准输入读取。 - IS_INPUT_FILE: 输入方式是最后一个参数为文件路径还是从标准输入读取。
@@ -505,7 +505,7 @@ Repository archive 的存储配置。 如果 `STORAGE_TYPE` 为空,则此配
- `PROXY_ENABLED`: **false**: 是否启用全局代理。如果为否,则不使用代理,环境变量中的代理也不使用 - `PROXY_ENABLED`: **false**: 是否启用全局代理。如果为否,则不使用代理,环境变量中的代理也不使用
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy - `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站 - `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
i.e. i.e.

View File

@@ -18,31 +18,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数: 因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
* `GOOS` - `GOOS`
* `GOARCH` - `GOARCH`
* [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable) - [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。 您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
## Gitea 的文件目录 ## Gitea 的文件目录
* `GITEA_WORK_DIR`:工作目录的绝对路径 - `GITEA_WORK_DIR`:工作目录的绝对路径
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 *custom* 目录 - `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 _custom_ 目录
* `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代 - `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代
* `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代 - `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代
## 操作系统配置 ## 操作系统配置
* `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分 - `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
* `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME` - `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME`
* `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量 - `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
### 仅限于 Windows 的配置 ### 仅限于 Windows 的配置
* `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH` - `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C盘 - `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C 盘)
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径 - `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
## Miscellaneous ## Miscellaneous
* `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。 - `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。

View File

@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
.markup.XXXXX body { .markup.XXXXX body {
color: #444; color: #444;
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
serif;
font-size: 12px; font-size: 12px;
line-height: 1.7; line-height: 1.7;
padding: 1em; padding: 1em;

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/mail-templates - /zh-cn/mail-templates
--- ---
# 邮件模板 # 邮件模板
@@ -21,7 +20,7 @@ aliases:
目前,以下通知事件使用模板: 目前,以下通知事件使用模板:
| 操作名称 | 用途 | | 操作名称 | 用途 |
| ----------- | ------------------------------------------------------------------------------------------------------------ | | ---------- | ---------------------------------------------------------------------- |
| `new` | 创建了新的工单或合并请求。 | | `new` | 创建了新的工单或合并请求。 |
| `comment` | 在现有工单或合并请求中创建了新的评论。 | | `comment` | 在现有工单或合并请求中创建了新的评论。 |
| `close` | 关闭了工单或合并请求。 | | `close` | 关闭了工单或合并请求。 |
@@ -78,7 +77,7 @@ custom/templates/mail/pull/comment.tmpl
_主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素: _主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
| 名称 | 类型 | 可用性 | 用途 | | 名称 | 类型 | 可用性 | 用途 |
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 | | `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 | | `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 | | `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
@@ -224,11 +223,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
> >
> #### 消息内容: > #### 消息内容:
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> Mike, I think we should tone down the blues a little. > Mike, I think we should tone down the blues a little.
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> [在 Gitea 上查看](#)。 > [在 Gitea 上查看](#)。
@@ -237,7 +236,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表: 模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
| 函数名 | 参数 | 可用于 | 用法 | | 函数名 | 参数 | 可用于 | 用法 |
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- | | ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
| `AppUrl` | - | 任何地方 | Gitea 的 URL | | `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" | | `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主机名 | | `AppDomain` | - | 任何地方 | Gitea 的主机名 |
@@ -248,8 +247,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
这些都是 _函数_,而不是元数据,因此必须按以下方式使用: 这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
```html ```html
像这样使用: {{Str2html "Escape<my>text"}} 像这样使用: {{Str2html "Escape<my
或者这样使用: {{"Escape<my>text" | Str2html}} >text"}} 或者这样使用: {{"Escape<my
或者这样使用: {{AppUrl}} >text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
但不要像这样使用: {{.AppUrl}} {{.AppUrl}}</my
></my
>
``` ```

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/repo-indexer - /zh-cn/repo-indexer
--- ---
# 仓库索引器 # 仓库索引器

View File

@@ -6,7 +6,6 @@ sidebar_position: 16
aliases: aliases:
- /zh-cn/reverse-proxies - /zh-cn/reverse-proxies
--- ---
# 反向代理 # 反向代理

View File

@@ -6,7 +6,6 @@ sidebar_position: 60
aliases: aliases:
- /zh-cn/search-engines-indexation - /zh-cn/search-engines-indexation
--- ---
# 搜索引擎索引 # 搜索引擎索引

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-backend - /zh-cn/guidelines-backend
--- ---
# 后端开发指南 # 后端开发指南

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-frontend - /zh-cn/guidelines-frontend
--- ---
# 前端开发指南 # 前端开发指南
@@ -19,10 +18,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
源文件可以在以下目录中找到: 源文件可以在以下目录中找到:
* **CSS 样式** `web_src/css/` - **CSS 样式** `web_src/css/`
* **JavaScript 文件** `web_src/js/` - **JavaScript 文件** `web_src/js/`
* **Vue 组件** `web_src/js/components/` - **Vue 组件** `web_src/js/components/`
* **Go HTML 模板** `templates/` - **Go HTML 模板** `templates/`
## 通用准则 ## 通用准则
@@ -56,14 +55,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
推荐的实现方式: 推荐的实现方式:
* Vue + Vanilla JS - Vue + Vanilla JS
* Fomantic-UIjQuery - Fomantic-UIjQuery
* Vanilla JS - Vanilla JS
不推荐的实现方式: 不推荐的实现方式:
* Vue + Fomantic-UIjQuery - Vue + Fomantic-UIjQuery
* jQuery + Vanilla JS - jQuery + Vanilla JS
为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。 为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。
尽管不建议混合使用不同的框架, 尽管不建议混合使用不同的框架,
@@ -90,31 +89,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。 禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
然而,仍然存在一些特殊情况,因此当前的准则是: 然而,仍然存在一些特殊情况,因此当前的准则是:
* 对于旧代码: - 对于旧代码:
* 应将`$.data()`重构为`$.attr()`
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
* 对于新代码: - 应将`$.data()`重构为`$.attr()`
* 不应使用`node.dataset`,而应使用`node.getAttribute` - 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
- 对于新代码:
- 不应使用`node.dataset`,而应使用`node.getAttribute`
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
### 显示/隐藏元素 ### 显示/隐藏元素
* 推荐在Vue组件中使用`v-if``v-show`来显示/隐藏元素。 - 推荐在 Vue 组件中使用`v-if``v-show`来显示/隐藏元素。
* Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。 - Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
### Go HTML 模板中的样式和属性 ### Go HTML 模板中的样式和属性
建议使用以下方式: 建议使用以下方式:
```html ```html
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div> <div
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
{{if
.IsFoo}}data-foo{{end}}
></div>
``` ```
而不是: 而不是:
```html ```html
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div> <div
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
{{if
.IsFoo}}
data-foo{{end}}
></div>
``` ```
以使代码更易读。 以使代码更易读。

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-refactoring - /zh-cn/guidelines-refactoring
--- ---
# 重构指南 # 重构指南
@@ -22,22 +21,22 @@ aliases:
## 重构建议 ## 重构建议
* 设计更多关于未来的内容,而不仅仅解决当前问题。 - 设计更多关于未来的内容,而不仅仅解决当前问题。
* 减少模糊性,减少冲突,提高可维护性。 - 减少模糊性,减少冲突,提高可维护性。
* 描述重构,例如: - 描述重构,例如:
* 为什么需要重构。 - 为什么需要重构。
* 如何解决旧问题。 - 如何解决旧问题。
* 重构的优点/缺点是什么。 - 重构的优点/缺点是什么。
* 只做必要的更改,尽量保留旧逻辑。 - 只做必要的更改,尽量保留旧逻辑。
* 引入一些中间步骤使重构更容易审查完整的重构计划可以在几个PR中完成。 - 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
* 如果存在分歧应该请TOC技术监督委员会参与决策。 - 如果存在分歧,应该请 TOC技术监督委员会参与决策。
* 添加必要的测试以确保重构的正确性。 - 添加必要的测试以确保重构的正确性。
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。 - 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
## 审查和合并建议 ## 审查和合并建议
* 重构的PR不应该长时间保持打开状态通常为7天),应尽快进行审查。 - 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
* 重构的PR应尽快合并不应被其他PR阻塞。 - 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
* 如果TOC没有异议重构的PR可以在7天后由一名核心成员(非作者)批准后合并。 - 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
* 如果最终结果良好,容忍一些不完美/临时的步骤。 - 如果最终结果良好,容忍一些不完美/临时的步骤。
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。 - 如果重构是必要的,容忍一些回归错误,并尽快修复错误。

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/hacking-on-gitea - /zh-cn/hacking-on-gitea
--- ---
# Hacking on Gitea # Hacking on Gitea
@@ -65,7 +64,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。 - MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH` - 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。 - 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
- 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。 - 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make` - [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata` **注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`

View File

@@ -6,7 +6,6 @@ sidebar_position: 55
aliases: aliases:
- /zh-cn/migrations-interfaces - /zh-cn/migrations-interfaces
--- ---
# 迁移接口 # 迁移接口

View File

@@ -6,7 +6,6 @@ sidebar_position: 41
aliases: aliases:
- /zh-cn/oauth2-provider - /zh-cn/oauth2-provider
--- ---
# OAuth2 提供者 # OAuth2 提供者
@@ -37,7 +36,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
Gitea 支持以下令牌范围: Gitea 支持以下令牌范围:
| 名称 | 介绍 | | 名称 | 介绍 |
| ---- | ----------- | | ---------------------------------------- | --------------------------------------------------------------- |
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 | | **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
| **repo** | 完全控制所有存储库 | | **repo** | 完全控制所有存储库 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 | | &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |

View File

@@ -6,7 +6,6 @@ sidebar_position: 5
aliases: aliases:
- /zh-cn/faq - /zh-cn/faq
--- ---
# 常见问题 # 常见问题
@@ -57,18 +56,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
- 或者包含 Gitea 二进制文件的目录 - 或者包含 Gitea 二进制文件的目录
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径) - `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
- `app.ini`中的`APP_DATA_PATH` - `app.ini`中的`APP_DATA_PATH`
- 或者_`AppWorkPath`_`/data` - 或者*`AppWorkPath`*`/data`
- _`CustomPath`_自定义模板 - _`CustomPath`_自定义模板
- `--custom-path`标志 - `--custom-path`标志
- 或者环境变量`GITEA_CUSTOM` - 或者环境变量`GITEA_CUSTOM`
- 或者在构建时设置的内置值 - 或者在构建时设置的内置值
- 或者_`AppWorkPath`_`/custom` - 或者*`AppWorkPath`*`/custom`
- HomeDir - HomeDir
- Unix环境变量`HOME` - Unix环境变量`HOME`
- Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH` - Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
- RepoRootPath - RepoRootPath
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径) - `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径) - 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
- 默认值为`%(APP_DATA_PATH)/gitea-repositories` - 默认值为`%(APP_DATA_PATH)/gitea-repositories`
- INI配置文件 - INI配置文件
- `--config`标志 - `--config`标志
@@ -264,12 +263,14 @@ fatal: Could not read from remote repository.
Git 用户(@ 之前的部分)的名称拼写正确。 Git 用户(@ 之前的部分)的名称拼写正确。
- 确保客户端机器上的公钥和私钥正确无误。 - 确保客户端机器上的公钥和私钥正确无误。
- 在服务器上: - 在服务器上:
- 确保存储库存在并且命名正确。 - 确保存储库存在并且命名正确。
- 检查系统用户主目录中的 `.ssh` 目录的权限。 - 检查系统用户主目录中的 `.ssh` 目录的权限。
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。 - 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
尝试在 Gitea 管理面板上运行 尝试在 Gitea 管理面板上运行
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)` `Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`
- 查看 Gitea 日志。 - 查看 Gitea 日志。
- 查看 /var/log/auth或类似的文件 - 查看 /var/log/auth或类似的文件
- 检查存储库的权限。 - 检查存储库的权限。
@@ -341,7 +342,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。 - 使用[管理 CLI 命令](../administration/command-line.md#admin)。
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。 请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
- 作为**用户**,您可以更改密码... - 作为**用户**,您可以更改密码...
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 - 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
- 使用`忘记密码`链接。 - 使用`忘记密码`链接。

View File

@@ -6,7 +6,6 @@ sidebar_position: 5
aliases: aliases:
- /zh-cn/comparison - /zh-cn/comparison
--- ---
# 对比 Gitea 与其它 Git 托管工具 # 对比 Gitea 与其它 Git 托管工具
@@ -17,15 +16,15 @@ aliases:
_表格中的符号含义:_ _表格中的符号含义:_
* _✓ - 支持_ - _✓ - 支持_
* _ - 部分支持_ - _ - 部分支持_
* _✘ - 不支持_ - _✘ - 不支持_
* _? - 不确定_ - _? - 不确定_
* _⚙ - 由第三方服务或插件支持_ - _⚙ - 由第三方服务或插件支持_
#### 主要特性 #### 主要特性

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/database-prep - /zh-cn/database-prep
--- ---
# 数据库准备 # 数据库准备

View File

@@ -6,7 +6,6 @@ sidebar_position: 15
aliases: aliases:
- /zh-cn/install-from-binary - /zh-cn/install-from-binary
--- ---
# 使用二进制文件安装 # 使用二进制文件安装

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/install-from-package - /zh-cn/install-from-package
--- ---
# 使用包管理器安装 # 使用包管理器安装

View File

@@ -6,7 +6,6 @@ sidebar_position: 30
aliases: aliases:
- /zh-cn/install-from-source - /zh-cn/install-from-source
--- ---
# 使用源代码安装 # 使用源代码安装

View File

@@ -6,17 +6,16 @@ sidebar_position: 101
aliases: aliases:
- /zh-cn/upgrade-from-gogs - /zh-cn/upgrade-from-gogs
--- ---
# 从 Gogs 升级 # 从 Gogs 升级
如果你正在运行 Gogs 0.9.146 以下版本,你可以平滑的升级到 Gitea。该升级需要如下的步骤 如果你正在运行 Gogs 0.9.146 以下版本,你可以平滑的升级到 Gitea。该升级需要如下的步骤
* 停止 Gogs 的运行 - 停止 Gogs 的运行
* 拷贝 Gogs 的配置文件 `custom/conf/app.ini` 到 Gitea 的相应位置。 - 拷贝 Gogs 的配置文件 `custom/conf/app.ini` 到 Gitea 的相应位置。
* 拷贝 Gitea 的 `options/` 到 Home 目录下。 - 拷贝 Gitea 的 `options/` 到 Home 目录下。
* 如果你还有更多的自定义内容比如templateslocalization文件你需要手工合并你的修改到 Gitea 的 Options 下对应目录。 - 如果你还有更多的自定义内容,比如 templateslocalization 文件,你需要手工合并你的修改到 Gitea 的 Options 下对应目录。
* 拷贝 Gogs 的数据目录 `data/` 到 Gitea 相应位置。这个目录包含附件和头像文件。 - 拷贝 Gogs 的数据目录 `data/` 到 Gitea 相应位置。这个目录包含附件和头像文件。
* 运行 Gitea - 运行 Gitea
* 登录 Gitea 并进入 管理面板, 运行 `重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gitea 的密钥也会被删除)``重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)` - 登录 Gitea 并进入 管理面板, 运行 `重新生成 '.ssh/authorized_keys' 文件(警告:不是 Gitea 的密钥也会被删除)``重新生成所有仓库的 Update 钩子(用于自定义配置文件被修改)`

View File

@@ -6,7 +6,6 @@ sidebar_position: 50
aliases: aliases:
- /zh-cn/windows-service - /zh-cn/windows-service
--- ---
# 注册为 Windows 服务 # 注册为 Windows 服务

View File

@@ -258,7 +258,7 @@ docker-compose up -d
除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini). 除了上述的环境变量外,`app.ini` 中的任何设置都可以通过形式为 `GITEA__SECTION_NAME__KEY_NAME` 的环境变量进行设置或覆盖。这些设置在每次 Docker 容器启动时都会生效。完整信息请参考[这里](https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini).
这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA__mailer__FROM、GITEA__mailer__HOST、GITEA__mailer__PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量: 这些环境变量可以在 `docker-compose.yml` 中传递给 Docker 容器。以下示例将启用 SMTP 邮件服务器,如果主机上设置了所需的环境变量 GITEA**mailer**FROM、GITEA**mailer**HOST、GITEA**mailer**PASSWD或者在与 `docker-compose.yml` 相同目录中的 `.env` 文件中设置了这些环境变量:
```bash ```bash
... ...

View File

@@ -6,7 +6,6 @@ sidebar_position: 70
aliases: aliases:
- /zh-cn/install-with-docker - /zh-cn/install-with-docker
--- ---
# 使用 Docker 安装 # 使用 Docker 安装
@@ -297,7 +296,7 @@ docker run -it --rm docker.gitea.com/gitea:1 gitea generate secret INTERNAL_TOKE
``` ```
```yaml ```yaml
... ---
services: services:
server: server:
environment: environment:

View File

@@ -6,7 +6,6 @@ sidebar_position: 12
aliases: aliases:
- /zh-cn/agit-setup - /zh-cn/agit-setup
--- ---
# AGit 设置 # AGit 设置

View File

@@ -5,7 +5,6 @@ slug: "clone-filters"
sidebar_position: 25 sidebar_position: 25
aliases: aliases:
- /zh-cn/clone-filters - /zh-cn/clone-filters
--- ---
# 克隆过滤器 (部分克隆) # 克隆过滤器 (部分克隆)

View File

@@ -5,7 +5,6 @@ slug: "incoming-email"
sidebar_position: 13 sidebar_position: 13
aliases: aliases:
- /zh-cn/incoming-email - /zh-cn/incoming-email
--- ---
# 邮件接收 # 邮件接收

View File

@@ -100,16 +100,13 @@ Gitea 支持两种格式的模板Markdown 和 YAML。
```md ```md
--- ---
name: "Template Name" name: "Template Name"
about: "This template is for testing!" about: "This template is for testing!"
title: "[TEST] " title: "[TEST] "
ref: "main" ref: "main"
labels: labels:
- bug - bug
- "help needed" - "help needed"
--- ---
This is the template! This is the template!

View File

@@ -6,7 +6,6 @@ sidebar_position: 13
aliases: aliases:
- /zh-cn/labels - /zh-cn/labels
--- ---
# 标签 # 标签

View File

@@ -6,7 +6,6 @@ sidebar_position: 15
aliases: aliases:
- /zh-cn/automatically-linked-references - /zh-cn/automatically-linked-references
--- ---
# 自动链接引用 # 自动链接引用
@@ -119,7 +118,7 @@ Gitea 支持使用外部工单跟踪器,并可以在合并请求中创建对
下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。 下表说明了工单和合并请求的不同类型的交叉引用。在示例中,`User1/Repo1` 指的是使用引用的仓库,而 `UserZ/RepoZ` 表示另一个仓库。
| 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 | | 在 User1/Repo1 中的引用 | Repo1 的工单是外部的 | RepoZ 的工单是外部的 | 渲染效果 |
| ----------------------- | :-------------------: | :-------------------: | ------------------------------------------------ | | ----------------------- | :------------------: | :------------------: | --------------------------------------------- |
| `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `#1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 | | `!1234` | 否 | - | 链接到 `User1/Repo1` 中的工单/合并请求 1234 |
| `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 | | `#1234` | 是 | - | 链接到 `User1/Repo1`_外部工单_ 1234 |

View File

@@ -6,7 +6,6 @@ sidebar_position: 15
aliases: aliases:
- /zh-cn/merge-message-templates - /zh-cn/merge-message-templates
--- ---
# 合并消息模板 # 合并消息模板

View File

@@ -6,7 +6,6 @@ sidebar_position: 14
aliases: aliases:
- /zh-cn/permissions - /zh-cn/permissions
--- ---
# 权限 # 权限
@@ -18,7 +17,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。 在 Gitea 中,我们将仓库的子模块称为 `单元Unit`。现在我们有以下几个单元。
| 名称 | 描述 | 权限 | | 名称 | 描述 | 权限 |
| ----------------- | --------------------------------------------------- | ------------ | | -------------- | ------------------------------ | --------- |
| 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 | | 代码 | 访问源代码、文件、提交和分支。 | 读取 写入 |
| 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 | | 工单 | 组织缺陷报告、任务和里程碑。 | 读取 写入 |
| 合并请求 | 启用合并请求和代码审核。 | 读取 写入 | | 合并请求 | 启用合并请求和代码审核。 | 读取 写入 |
@@ -32,7 +31,7 @@ Gitea 支持对仓库进行权限管理,这样您就可以为不同的人员
通过不同的权限,用户可以在这些单元上执行不同的操作。 通过不同的权限,用户可以在这些单元上执行不同的操作。
| 名称 | 读取 | 写入 | 管理员 | | 名称 | 读取 | 写入 | 管理员 |
| ----------------- | -------------------------------------------------- | ------------------------------ | ------------------------- | | -------------- | -------------------------------- | ------------------------------ | -------- |
| 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - | | 代码 | 查看代码树、文件、提交、分支等。 | 推送代码。 | - |
| 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - | | 工单 | 查看工单并创建新工单。 | 添加标签、分配、关闭工单。 | - |
| 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - | | 合并请求 | 查看合并请求并创建新合并请求。 | 添加标签、分配、关闭合并请求。 | - |

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/protected-tags - /zh-cn/protected-tags
--- ---
# 受保护的标签 # 受保护的标签

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/repo-mirror - /zh-cn/repo-mirror
--- ---
# 仓库镜像 # 仓库镜像
@@ -56,7 +55,7 @@ aliases:
要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitHub您需要按照以下步骤进行操作
1. 创建一个具有选中 *public_repo* 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。 1. 创建一个具有选中 _public_repo_ 选项的 [GitHub 个人访问令牌](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token)。
2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。 2. 在 GitHub 上创建一个同名的仓库。与 Gitea 不同GitHub 不支持通过推送到远程来创建仓库。如果您的现有远程仓库与您的 Gitea 仓库具有相同的提交历史,您也可以使用现有的远程仓库。
3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git` 3. 在您的 Gitea 仓库设置中,填写**Git 远程仓库 URL**`https://github.com/<your_github_group>/<your_github_project>.git`
4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。 4. 使用您的 GitHub 用户名填写**授权**字段,并将个人访问令牌作为**密码**。
@@ -69,7 +68,7 @@ aliases:
要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 GitLab您需要按照以下步骤进行操作
1. 创建具有 *write_repository* 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。 1. 创建具有 _write_repository_ 作用域的 [GitLab 个人访问令牌](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)。
2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git` 2. 填写**Git 远程仓库 URL**`https://<destination host>/<your_gitlab_group_or_name>/<your_gitlab_project>.git`
3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。 3. 在**授权**字段中填写 `oauth2` 作为**用户名**,并将您的 GitLab 个人访问令牌作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。
@@ -80,7 +79,7 @@ aliases:
要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作 要从 Gitea 设置镜像到 Bitbucket您需要按照以下步骤进行操作
1. 创建一个具有选中 *Repository Write* 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。 1. 创建一个具有选中 _Repository Write_ 选项的 [Bitbucket 应用密码](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/)。
2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git` 2. 填写**Git 远程仓库 URL**`https://bitbucket.org/<your_bitbucket_group_or_name>/<your_bitbucket_project>.git`
3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。 3. 使用您的 Bitbucket 用户名填写**授权**字段,并将应用密码作为**密码**。
4. 选择**添加推送镜像**以保存配置。 4. 选择**添加推送镜像**以保存配置。

View File

@@ -6,7 +6,6 @@ sidebar_position: 14
aliases: aliases:
- /zh-cn/template-repositories - /zh-cn/template-repositories
--- ---
# 模板仓库 # 模板仓库
@@ -44,7 +43,7 @@ a/b/c/d.json
所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}` 所有变量都必须采用`$VAR``${VAR}`的形式。要转义扩展,使用双重`$$`,例如`$$VAR``$${VAR}`
| 变量 | 扩展为 | 可转换 | | 变量 | 扩展为 | 可转换 |
| -------------------- | --------------------------------------------------- | ------------- | | -------------------- | ----------------------------- | ------ |
| REPO_NAME | 生成的仓库名称 | ✓ | | REPO_NAME | 生成的仓库名称 | ✓ |
| TEMPLATE_NAME | 模板仓库名称 | ✓ | | TEMPLATE_NAME | 模板仓库名称 | ✓ |
| REPO_DESCRIPTION | 生成的仓库描述 | ✘ | | REPO_DESCRIPTION | 生成的仓库描述 | ✘ |
@@ -67,7 +66,7 @@ Gitea `1.12.0` 添加了一些转换器以应用于上述适用的变量。
`go-sdk` 传递给可用的转换器的效果如下... `go-sdk` 传递给可用的转换器的效果如下...
| 转换器 | 效果 | | 转换器 | 效果 |
| ----------- | ------------ | | ------ | ------ |
| SNAKE | go_sdk | | SNAKE | go_sdk |
| KEBAB | go-sdk | | KEBAB | go-sdk |
| CAMEL | goSdk | | CAMEL | goSdk |

View File

@@ -6,7 +6,6 @@ sidebar_position: 110
aliases: aliases:
- /zh-cn/adding-legal-pages - /zh-cn/adding-legal-pages
--- ---
# 添加法律页面 # 添加法律页面

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/authentication - /zh-cn/authentication
--- ---
# 认证 # 认证
@@ -30,9 +29,11 @@ aliases:
- 例如: LDAP `389`/ LDAPs `636` - 例如: LDAP `389`/ LDAPs `636`
- 安全协议 (可选) - 安全协议 (可选)
- 连接 LDAP 服务器时是否使用 TLS 协议。 - 连接 LDAP 服务器时是否使用 TLS 协议。
- 管理员过滤规则 (可选) - 管理员过滤规则 (可选)
- 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。 - 一个 LDAP 过滤器,用于指定哪些用户应该被赋予管理员特权。如果用户帐户符合过滤器条件,则该用户将被授予管理员权限。
- 示例:`(objectClass=adminAccount)` - 示例:`(objectClass=adminAccount)`
- 适用于 Microsoft Active DirectoryAD的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org` - 适用于 Microsoft Active DirectoryAD的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
@@ -48,7 +49,9 @@ aliases:
- 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。 - 用户 LDAP 记录中包含用户名字的属性。将用于填充他们的账户信息。
- 示例:givenName - 示例:givenName
- 姓氏属性(可选) - 姓氏属性(可选)
- 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。 - 用户 LDAP 记录中包含用户姓氏的属性。将用于填充他们的账户信息。
- 示例:`sn` - 示例:`sn`
@@ -86,7 +89,7 @@ aliases:
但您可以在 app.ini 文件中进行更改。 但您可以在 app.ini 文件中进行更改。
有关此部分的详细说明,请参阅[sample 有关此部分的详细说明,请参阅[sample
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini) app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
_cron.sync_external_users_ 部分的注释。前面提到的_User Search Base_和_User Filter_ *cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。 设置将限制哪些用户可以使用 Gitea 以及哪些用户将被同步。
在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。 在初始运行任务时,将根据给定的设置创建所有与 LDAP 匹配的用户,因此在使用大型企业 LDAP 目录时需要小心。
@@ -116,6 +119,7 @@ aliases:
使用以下字段: 使用以下字段:
- 群组搜索基础 DN(可选) - 群组搜索基础 DN(可选)
- 组使用的 LDAP DN。 - 组使用的 LDAP DN。
- 示例: `ou=group,dc=mydomain,dc=com` - 示例: `ou=group,dc=mydomain,dc=com`
@@ -159,7 +163,8 @@ PAM提供了一种机制通过对用户进行PAM认证来自动将其添加
**Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加, **Note**: PAM 支持通过[build-time flags](installation/from-source.md#build)添加,
而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。 而官方提供的二进制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,并且编译器可以访问必要的 PAM 开发头文件。
[^1]: 例如在Debian "Bullseye"上使用标准Linux登录可以使用`common-session-noninteractive`。这个值对于其他版本的Debian [^1]:
例如,在 Debian "Bullseye"上使用标准 Linux 登录,可以使用`common-session-noninteractive`。这个值对于其他版本的 Debian
包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用发行版的文档以确认。 包括 Ubuntu 和 Mint可能也是有效的请查阅您所使用发行版的文档以确认。
[^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。 [^2]: **PAM 的必选项** 请注意:在上面的示例中,用户将作为`gituser`而不是`gituser@mail.com`登录到 Gitea 的 Web 界面。
@@ -169,9 +174,11 @@ PAM提供了一种机制通过对用户进行PAM认证来自动将其添加
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段: 此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
- 身份验证名称 **(必选)** - 身份验证名称 **(必选)**
- 分配给新授权方法的名称 - 分配给新授权方法的名称
- SMTP 验证类型 **(必选)** - SMTP 验证类型 **(必选)**
- 用于连接 SMTP 主机的验证类型plain 或 login - 用于连接 SMTP 主机的验证类型plain 或 login
- 主机名 **(必选)** - 主机名 **(必选)**

View File

@@ -6,7 +6,6 @@ sidebar_position: 11
aliases: aliases:
- /zh-cn/backup-and-restore - /zh-cn/backup-and-restore
--- ---
# 备份与恢复 # 备份与恢复
@@ -28,11 +27,11 @@ Gitea 已经实现了 `dump` 命令可以用来备份所有需要的文件到一
最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容: 最后生成的 `gitea-dump-1482906742.zip` 文件将会包含如下内容:
* `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。 - `custom` - 所有保存在 `custom/` 目录下的配置和自定义的文件。
* `data` - 数据目录下的所有内容不包含使用文件session的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用sqlite 还会包含 sqlite 数据库文件。 - `data` - 数据目录下的所有内容不包含使用文件 session 的文件。该目录包含 `attachments`, `avatars`, `lfs`, `indexers`, 如果使用 sqlite 还会包含 sqlite 数据库文件。
* `gitea-db.sql` - 数据库dump出来的 SQL。 - `gitea-db.sql` - 数据库 dump 出来的 SQL。
* `gitea-repo.zip` - Git仓库压缩文件。 - `gitea-repo.zip` - Git 仓库压缩文件。
* `log/` - Logs文件如果用作迁移不是必须的。 - `log/` - Logs 文件,如果用作迁移不是必须的。
中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。 中间备份文件将会在临时目录进行创建,如果您要重新指定临时目录,可以用 `--tempdir` 参数,或者用 `TMPDIR` 环境变量。

View File

@@ -6,7 +6,6 @@ sidebar_position: 1
aliases: aliases:
- /zh-cn/command-line - /zh-cn/command-line
--- ---
# 命令行 # 命令行

View File

@@ -6,7 +6,6 @@ sidebar_position: 30
aliases: aliases:
- /zh-cn/config-cheat-sheet - /zh-cn/config-cheat-sheet
--- ---
# 配置说明 # 配置说明
@@ -23,7 +22,7 @@ aliases:
[ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。 [ini](https://github.com/go-ini/ini/#recursive-values) 这里的说明。
标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。 标注了 :exclamation: 的配置项表明除非你真的理解这个配置项的意义,否则最好使用默认值。
在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 _`XxYyZz`_是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。 在下面的默认值中,`$XYZ`代表环境变量`XYZ`的值(详见:`environment-to-ini`)。 *`XxYyZz`*是指默认配置的一部分列出的值。这些在 app.ini 文件中不起作用,仅在此处列出作为文档说明。
包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。 包含`#`或者`;`的变量必须使用引号(`` ` ``或者`""""`)包裹,否则会被解析为注释。
@@ -54,9 +53,9 @@ aliases:
- 这是指向`app.ini`文件的路径。 - 这是指向`app.ini`文件的路径。
- 在构建时设置的内置值(参见从源代码构建) - 在构建时设置的内置值(参见从源代码构建)
- 否则,默认为 _`CustomPath`_`/conf/app.ini` - 否则,默认为 _`CustomPath`_`/conf/app.ini`
- 如果上述任何路径是相对路径,则会相对于_`CustomPath`_目录进行处理。 - 如果上述任何路径是相对路径,则会相对于*`CustomPath`*目录进行处理。
此外,还有_`StaticRootPath`_,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。 此外,还有*`StaticRootPath`*,可以在构建时设置为内置值,否则将默认为 _`AppWorkPath`_。
## Overall (`DEFAULT`) ## Overall (`DEFAULT`)
@@ -276,7 +275,7 @@ aliases:
- `PROXY_PROTOCOL_HEADER_TIMEOUT`: **5s**: 等待`PROXY`协议头的超时时间(设置为`0`表示没有超时)。 - `PROXY_PROTOCOL_HEADER_TIMEOUT`: **5s**: 等待`PROXY`协议头的超时时间(设置为`0`表示没有超时)。
- `PROXY_PROTOCOL_ACCEPT_UNKNOWN`: **false**:接受带有未知类型的`PROXY`协议头。 - `PROXY_PROTOCOL_ACCEPT_UNKNOWN`: **false**:接受带有未知类型的`PROXY`协议头。
- `DOMAIN`: **localhost**: 此服务器的域名。 - `DOMAIN`: **localhost**: 此服务器的域名。
- `ROOT_URL`: **%(PROTOCOL)s://%(DOMAIN)s:%(HTTP\_PORT)s/**: - `ROOT_URL`: **%(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/**:
覆盖自动生成的公共 URL。 覆盖自动生成的公共 URL。
如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。 如果内部 URL 和外部 URL 不匹配(例如在 Docker 中),这很有用。
- `STATIC_URL_PREFIX`: **_empty_**: - `STATIC_URL_PREFIX`: **_empty_**:
@@ -440,15 +439,15 @@ aliases:
## 索引 (`indexer`) ## 索引 (`indexer`)
- `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve``db``elasticsearch``meilisearch` - `ISSUE_INDEXER_TYPE`: **bleve**: 工单索引类型,当前支持:`bleve``db``elasticsearch``meilisearch`
- `ISSUE_INDEXER_CONN_STR`****: 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch例如`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。 - `ISSUE_INDEXER_CONN_STR`\*\*\*\*: 工单索引连接字符串,仅适用于 elasticsearch 和 meilisearch例如`http://elastic:password@localhost:9200`)或者(例如:`http://:apikey@localhost:7700`)。
- `ISSUE_INDEXER_NAME`**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。 - `ISSUE_INDEXER_NAME`**gitea_issues**: 工单索引器名称,在 ISSUE_INDEXER_TYPE 为 elasticsearch 或 meilisearch 时可用。
- `ISSUE_INDEXER_PATH`**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE_INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 _`AppWorkPath`_ 进行绝对路径化。 - `ISSUE_INDEXER_PATH`**indexers/issues.bleve**: 用于工单搜索的索引文件;在 ISSUE*INDEXER_TYPE 为 bleve 和 elasticsearch 时可用。相对路径将相对于 *`AppWorkPath`\_ 进行绝对路径化。
- `REPO_INDEXER_ENABLED`**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。 - `REPO_INDEXER_ENABLED`**false**: 启用代码搜索(占用大量磁盘空间,约为存储库大小的 6 倍)。
- `REPO_INDEXER_REPO_TYPES`**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources``forks``mirrors``templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED` - `REPO_INDEXER_REPO_TYPES`**sources,forks,mirrors,templates**: 存储库索引器单元。要索引的项目可以是 `sources``forks``mirrors``templates` 或它们的任何组合,用逗号分隔。如果为空,则默认为仅 `sources`,如果要完全禁用,请参见 `REPO_INDEXER_ENABLED`
- `REPO_INDEXER_TYPE`**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch` - `REPO_INDEXER_TYPE`**bleve**: 代码搜索引擎类型,可以为 `bleve` 或者 `elasticsearch`
- `REPO_INDEXER_PATH`**indexers/repos.bleve**: 用于代码搜索的索引文件。 - `REPO_INDEXER_PATH`**indexers/repos.bleve**: 用于代码搜索的索引文件。
- `REPO_INDEXER_CONN_STR`****: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200` - `REPO_INDEXER_CONN_STR`\*\*\*\*: 代码索引器连接字符串,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。例如:`http://elastic:password@localhost:9200`
- `REPO_INDEXER_NAME`**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。 - `REPO_INDEXER_NAME`**gitea_codes**: 代码索引器名称,在 `REPO_INDEXER_TYPE` 为 elasticsearch 时可用。
- `REPO_INDEXER_INCLUDE`**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。 - `REPO_INDEXER_INCLUDE`**empty**: 逗号分隔的 glob 模式列表(参见 [https://github.com/gobwas/glob](https://github.com/gobwas/glob))以用于**包括**在索引中。使用 `**.txt` 匹配任何具有 .txt 扩展名的文件。空列表表示包括所有文件。
@@ -466,8 +465,8 @@ aliases:
- `LENGTH`**100000**: 通道队列阻塞之前的最大队列大小 - `LENGTH`**100000**: 通道队列阻塞之前的最大队列大小
- `BATCH_LENGTH`**20**: 在传递给处理程序之前批处理数据 - `BATCH_LENGTH`**20**: 在传递给处理程序之前批处理数据
- `CONN_STR`**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR` - `CONN_STR`**redis://127.0.0.1:6379/0**: redis 队列类型的连接字符串。对于 `redis-cluster`,使用 `redis+cluster://127.0.0.1:6379/0`。可以使用查询参数来设置选项。类似地LevelDB 选项也可以使用:**leveldb://relative/path?option=value** 或 **leveldb:///absolute/path?option=value** 进行设置,并将覆盖 `DATADIR`
- `QUEUE_NAME`**_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。 - `QUEUE_NAME`**\_queue**: 默认的 redis 和磁盘队列名称的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`,但可以在特定的 `queue.name` 部分中进行覆盖。
- `SET_NAME`**_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_但可以在特定的 `queue.name` 部分中进行覆盖。 - `SET_NAME`**\_unique**: 将添加到默认的 redis 和磁盘队列 `set` 名称中以用于唯一队列的后缀。单独的队列将默认为 **`name`**`QUEUE_NAME`_`SET_NAME`_但可以在特定的 `queue.name` 部分中进行覆盖。
- `MAX_WORKERS`**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。 - `MAX_WORKERS`**(dynamic)**: 队列的最大工作协程数。默认值为 "CpuNum/2",限制在 1 到 10 之间。
Gitea 创建以下非唯一队列: Gitea 创建以下非唯一队列:
@@ -497,8 +496,8 @@ Gitea 创建以下非唯一队列:
- `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA - `SECRET_KEY`: **\<每次安装时随机生成\>**: 全局服务器安全密钥。这个密钥非常重要,如果丢失将无法解密加密的数据(例如 2FA
- `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。 - `SECRET_KEY_URI`: **_empty_**: 与定义 `SECRET_KEY` 不同,此选项可用于使用存储在文件中的密钥(示例值:`file:/etc/gitea/secret_key`)。它不应该像 `SECRET_KEY` 一样容易丢失。
- `LOGIN_REMEMBER_DAYS`: **7**: Cookie 保存时间,单位为天。 - `LOGIN_REMEMBER_DAYS`: **7**: Cookie 保存时间,单位为天。
- `COOKIE_USERNAME`: **gitea\_awesome**: 保存用户名的 Cookie 名称。 - `COOKIE_USERNAME`: **gitea_awesome**: 保存用户名的 Cookie 名称。
- `COOKIE_REMEMBER_NAME`: **gitea\_incredible**: 保存自动登录信息的 Cookie 名称。 - `COOKIE_REMEMBER_NAME`: **gitea_incredible**: 保存自动登录信息的 Cookie 名称。
- `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。 - `REVERSE_PROXY_AUTHENTICATION_USER`: **X-WEBAUTH-USER**: 反向代理认证的 HTTP 头部名称,用于提供用户信息。
- `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。 - `REVERSE_PROXY_AUTHENTICATION_EMAIL`: **X-WEBAUTH-EMAIL**: 反向代理认证的 HTTP 头部名称,用于提供邮箱信息。
- `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。 - `REVERSE_PROXY_AUTHENTICATION_FULL_NAME`: **X-WEBAUTH-FULLNAME**: 反向代理认证的 HTTP 头部名称,用于提供全名信息。
@@ -553,13 +552,13 @@ Gitea 创建以下非唯一队列:
## OpenID (`openid`) ## OpenID (`openid`)
- `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。 - `ENABLE_OPENID_SIGNIN`: **true**: 允许通过 OpenID 进行身份验证。
- `ENABLE_OPENID_SIGNUP`: **! DISABLE\_REGISTRATION**: 允许通过OpenID进行注册。 - `ENABLE_OPENID_SIGNUP`: **! DISABLE_REGISTRATION**: 允许通过 OpenID 进行注册。
- `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。 - `WHITELISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于允许访问。
- `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。 - `BLACKLISTED_URIS`: **_empty_**: 如果非空,是一组匹配 OpenID URI 的 POSIX 正则表达式模式,用于阻止访问。
## OAuth2 Client (`oauth2_client`) ## OAuth2 Client (`oauth2_client`)
- `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER\_EMAIL\_CONFIRM**: 设置此项以启用或禁用OAuth2自动注册的电子邮件确认。覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置) - `REGISTER_EMAIL_CONFIRM`: _[service]_ **REGISTER_EMAIL_CONFIRM**: 设置此项以启用或禁用 OAuth2 自动注册的电子邮件确认。(覆盖`[service]`部分的`REGISTER\_EMAIL\_CONFIRM`设置)
- `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加) - `OPENID_CONNECT_SCOPES`: **_empty_**: 附加的 OpenID 连接范围的列表。(`openid`已隐式添加)
- `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。 - `ENABLE_AUTO_REGISTRATION`: **false**: 为新的 OAuth2 用户自动创建用户帐户。
- `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源: - `USERNAME`: **nickname**: 新 OAuth2 帐户的用户名来源:
@@ -613,7 +612,7 @@ Gitea 创建以下非唯一队列:
- `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。 - `DEFAULT_ALLOW_ONLY_CONTRIBUTORS_TO_TRACK_TIME`: **true**: 仅允许具有写权限的用户跟踪时间。
- `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。 - `EMAIL_DOMAIN_ALLOWLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,只能用于在此实例上注册,支持通配符。
- `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。 - `EMAIL_DOMAIN_BLOCKLIST`: **_empty_**: 如果非空,逗号分隔的域名列表,不能用于在此实例上注册,支持通配符。
- `SHOW_REGISTRATION_BUTTON`: **! DISABLE\_REGISTRATION**: 显示注册按钮 - `SHOW_REGISTRATION_BUTTON`: **! DISABLE_REGISTRATION**: 显示注册按钮
- `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑 - `SHOW_MILESTONES_DASHBOARD_PAGE`: **true** 启用此项以显示里程碑仪表板页面 - 查看所有用户的里程碑
- `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库 - `AUTO_WATCH_NEW_REPOS`: **true** 启用此项以在创建新存储库时让所有组织用户观看新存储库
- `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库 - `AUTO_WATCH_ON_CHANGES`: **false** 启用此项以在首次提交后使用户观看存储库
@@ -657,7 +656,7 @@ Gitea 创建以下非唯一队列:
- `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。 - `SKIP_TLS_VERIFY`: **false**: 允许不安全的证书。
- `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。 - `PAGING_NUM`: **10**: 一页中显示的 Webhook 历史事件数量。
- `PROXY_URL`: **_empty_**: 代理服务器 URL支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。 - `PROXY_URL`: **_empty_**: 代理服务器 URL支持 http://、https://、socks://,留空将遵循环境的 http_proxy/https_proxy 设置。如果未提供,将使用全局代理设置。
- `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (*);使用 ** 来匹配所有主机。如果未提供,将使用全局代理设置。 - `PROXY_HOSTS`: **_empty_**: 需要代理的主机名的逗号分隔列表。支持通配符模式 (\*);使用 \*\* 来匹配所有主机。如果未提供,将使用全局代理设置。
## 邮件 (`mailer`) ## 邮件 (`mailer`)
@@ -734,7 +733,7 @@ Gitea 创建以下非唯一队列:
- `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。 - `PROVIDER`: **memory**: 会话存储引擎 \[memory, file, redis, redis-cluster, db, mysql, couchbase, memcache, postgres\]。设置为 `db` 将会重用 `[database]` 的配置信息。
- `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db为空将使用数据库配置对于其他引擎为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。 - `PROVIDER_CONFIG`: **data/sessions**: 对于文件,为根路径;对于 db为空将使用数据库配置对于其他引擎为连接字符串。相对路径将根据 _`AppWorkPath`_ 绝对化。
- `COOKIE_SECURE`: **_empty_**: `true``false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置当 ROOT_URL 是 https 链接的时候默认设置为 true。 - `COOKIE_SECURE`: **_empty_**: `true``false`。启用此选项以强制在所有会话访问中使用 HTTPS。如果没有设置当 ROOT_URL 是 https 链接的时候默认设置为 true。
- `COOKIE_NAME`: **i\_like\_gitea**: 用于会话 ID 的 cookie 名称。 - `COOKIE_NAME`: **i_like_gitea**: 用于会话 ID 的 cookie 名称。
- `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。 - `GC_INTERVAL_TIME`: **86400**: GC 间隔时间,以秒为单位。
- `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 864001 天)。 - `SESSION_LIFE_TIME`: **86400**: 会话生命周期,以秒为单位,默认为 864001 天)。
- `DOMAIN`: **_empty_**: 设置 cookie 的域。 - `DOMAIN`: **_empty_**: 设置 cookie 的域。
@@ -1075,7 +1074,7 @@ IS_INPUT_FILE = false
- ENABLED**false** 设置是否启动渲染器 - ENABLED**false** 设置是否启动渲染器
- NEED_POSTPROCESS**true** 设置为**true**以替换链接/SHA1 等。 - NEED_POSTPROCESS**true** 设置为**true**以替换链接/SHA1 等。
- FILE_EXTENSIONS**_empty_** 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。 - FILE*EXTENSIONS\*\*\_empty*\*\* 要由外部命令渲染的文件扩展名列表。多个扩展名需要用逗号分隔。
- RENDER_COMMAND用于渲染所有匹配的扩展名的外部命令。 - RENDER_COMMAND用于渲染所有匹配的扩展名的外部命令。
- IS_INPUT_FILE**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。 - IS_INPUT_FILE**false** 输入不是标准输入,而是一个在`RENDER_COMMAND`之后带有文件参数的文件。
- RENDER_CONTENT_MODE**sanitized** 内容将如何呈现。 - RENDER_CONTENT_MODE**sanitized** 内容将如何呈现。
@@ -1302,7 +1301,7 @@ MINIO_INSECURE_SKIP_VERIFY = false
- `PROXY_ENABLED`: **false**: 启用代理,如果为 true所有通过 HTTP 向外部的请求都将受到影响,如果为 false即使环境设置了 http_proxy/https_proxy 也不会使用 - `PROXY_ENABLED`: **false**: 启用代理,如果为 true所有通过 HTTP 向外部的请求都将受到影响,如果为 false即使环境设置了 http_proxy/https_proxy 也不会使用
- `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy - `PROXY_URL`: **_empty_**: 代理服务器地址,支持 http://, https//, socks://,为空则不启用代理而使用环境变量中的 http_proxy/https_proxy
- `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 * 号匹配符号, ** 表示匹配所有网站 - `PROXY_HOSTS`: **_empty_**: 逗号分隔的多个需要代理的网址,支持 \* 号匹配符号, \*\* 表示匹配所有网站
i.e. i.e.

View File

@@ -6,7 +6,6 @@ sidebar_position: 12
aliases: aliases:
- /zh-cn/email-setup - /zh-cn/email-setup
--- ---
# Email 设置 # Email 设置

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/environment-variables - /zh-cn/environment-variables
--- ---
# 环境变量清单 # 环境变量清单
@@ -21,31 +20,31 @@ GITEA_CUSTOM=/home/gitea/custom ./gitea web
因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数: 因为 Gitea 使用 Go 语言编写,因此它使用了一些相关的 Go 的配置参数:
* `GOOS` - `GOOS`
* `GOARCH` - `GOARCH`
* [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable) - [`GOPATH`](https://golang.org/cmd/go/#hdr-GOPATH_environment_variable)
您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。 您可以在[官方文档](https://golang.org/cmd/go/#hdr-Environment_variables)中查阅这些配置参数的详细信息。
## Gitea 的文件目录 ## Gitea 的文件目录
* `GITEA_WORK_DIR`:工作目录的绝对路径 - `GITEA_WORK_DIR`:工作目录的绝对路径
* `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 *custom* 目录 - `GITEA_CUSTOM`:默认情况下 Gitea 使用默认目录 `GITEA_WORK_DIR`/custom您可以使用这个参数来配置 _custom_ 目录
* `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代 - `GOGS_WORK_DIR` 已废弃,请使用 `GITEA_WORK_DIR` 替代
* `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代 - `GOGS_CUSTOM` 已废弃,请使用 `GITEA_CUSTOM` 替代
## 操作系统配置 ## 操作系统配置
* `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分 - `USER`Gitea 运行时使用的系统用户,它将作为一些 repository 的访问地址的一部分
* `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME` - `USERNAME` 如果没有配置 `USER` Gitea 将使用 `USERNAME`
* `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量 - `HOME` 用户的 home 目录,在 Windows 中会使用 `USERPROFILE` 环境变量
### 仅限于 Windows 的配置 ### 仅限于 Windows 的配置
* `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH` - `USERPROFILE` 用户的主目录,如果未配置则会使用 `HOMEDRIVE` + `HOMEPATH`
* `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C盘 - `HOMEDRIVE`: 用于访问 home 目录的主驱动器路径C 盘)
* `HOMEPATH`:在指定主驱动器下的 home 目录相对路径 - `HOMEPATH`:在指定主驱动器下的 home 目录相对路径
## Miscellaneous ## Miscellaneous
* `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。 - `SKIP_MINWINSVC`:如果设置为 1在 Windows 上不会以 service 的形式运行。

View File

@@ -171,7 +171,8 @@ ALLOW_DATA_URI_IMAGES = true
.markup.XXXXX body { .markup.XXXXX body {
color: #444; color: #444;
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; font-family: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman",
serif;
font-size: 12px; font-size: 12px;
line-height: 1.7; line-height: 1.7;
padding: 1em; padding: 1em;

View File

@@ -6,7 +6,6 @@ sidebar_position: 12
aliases: aliases:
- /zh-cn/git-lfs-setup - /zh-cn/git-lfs-setup
--- ---
# Git LFS 设置 # Git LFS 设置

View File

@@ -6,7 +6,6 @@ sidebar_position: 40
aliases: aliases:
- /zh-cn/logging-configuration - /zh-cn/logging-configuration
--- ---
# 日志配置 # 日志配置

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/mail-templates - /zh-cn/mail-templates
--- ---
# 邮件模板 # 邮件模板
@@ -21,7 +20,7 @@ aliases:
目前,以下通知事件使用模板: 目前,以下通知事件使用模板:
| 操作名称 | 用途 | | 操作名称 | 用途 |
| ----------- | ------------------------------------------------------------------------------------------------------------ | | ---------- | ---------------------------------------------------------------------- |
| `new` | 创建了新的工单或合并请求。 | | `new` | 创建了新的工单或合并请求。 |
| `comment` | 在现有工单或合并请求中创建了新的评论。 | | `comment` | 在现有工单或合并请求中创建了新的评论。 |
| `close` | 关闭了工单或合并请求。 | | `close` | 关闭了工单或合并请求。 |
@@ -78,7 +77,7 @@ custom/templates/mail/pull/comment.tmpl
_主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素: _主题__邮件正文_ 由 [Golang 的模板引擎](https://golang.org/pkg/text/template/) 解析,并提供了为每个通知组装的 _元数据上下文_。上下文包含以下元素:
| 名称 | 类型 | 可用性 | 用途 | | 名称 | 类型 | 可用性 | 用途 |
| -------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------ | ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 | | `.FallbackSubject` | string | 始终可用 | 默认主题行。参见下文。 |
| `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 | | `.Subject` | string | 仅在正文中可用 | 解析后的 _主题_。 |
| `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 | | `.Body` | string | 始终可用 | 工单、合并请求或评论的消息,从 Markdown 解析为 HTML 并进行了清理。请勿与 _邮件正文_ 混淆。 |
@@ -224,11 +223,11 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
> >
> #### 消息内容: > #### 消息内容:
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> Mike, I think we should tone down the blues a little. > Mike, I think we should tone down the blues a little.
> >
> \_********************************\_******************************** > \_******\*\*******\*\*\*\*******\*\*******\_******\*\*******\*\*\*\*******\*\*******
> >
> [在 Gitea 上查看](#)。 > [在 Gitea 上查看](#)。
@@ -237,7 +236,7 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表: 模板系统包含一些函数,可用于进一步处理和格式化消息。以下是其中一些函数的列表:
| 函数名 | 参数 | 可用于 | 用法 | | 函数名 | 参数 | 可用于 | 用法 |
| ----------------- | ----------- | ------------ | --------------------------------------------------------------------------------- | | ---------------- | ----------- | ---------- | --------------------------------------------------------------------- |
| `AppUrl` | - | 任何地方 | Gitea 的 URL | | `AppUrl` | - | 任何地方 | Gitea 的 URL |
| `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" | | `AppName` | - | 任何地方 | 从 `app.ini` 中设置,通常为 "Gitea" |
| `AppDomain` | - | 任何地方 | Gitea 的主机名 | | `AppDomain` | - | 任何地方 | Gitea 的主机名 |
@@ -248,8 +247,10 @@ _主题_ 和 _邮件正文_ 由 [Golang的模板引擎](https://golang.org/pkg/t
这些都是 _函数_,而不是元数据,因此必须按以下方式使用: 这些都是 _函数_,而不是元数据,因此必须按以下方式使用:
```html ```html
像这样使用: {{Str2html "Escape<my>text"}} 像这样使用: {{Str2html "Escape<my
或者这样使用: {{"Escape<my>text" | Str2html}} >text"}} 或者这样使用: {{"Escape<my
或者这样使用: {{AppUrl}} >text" | Str2html}} 或者这样使用: {{AppUrl}} 但不要像这样使用:
但不要像这样使用: {{.AppUrl}} {{.AppUrl}}</my
></my
>
``` ```

View File

@@ -6,7 +6,6 @@ sidebar_position: 45
aliases: aliases:
- /zh-cn/repo-indexer - /zh-cn/repo-indexer
--- ---
# 仓库索引器 # 仓库索引器

View File

@@ -6,7 +6,6 @@ sidebar_position: 16
aliases: aliases:
- /zh-cn/reverse-proxies - /zh-cn/reverse-proxies
--- ---
# 反向代理 # 反向代理

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-backend - /zh-cn/guidelines-backend
--- ---
# 后端开发指南 # 后端开发指南

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-frontend - /zh-cn/guidelines-frontend
--- ---
# 前端开发指南 # 前端开发指南
@@ -19,10 +18,10 @@ HTML 页面由[Go HTML Template](https://pkg.go.dev/html/template)渲染。
源文件可以在以下目录中找到: 源文件可以在以下目录中找到:
* **CSS 样式** `web_src/css/` - **CSS 样式** `web_src/css/`
* **JavaScript 文件** `web_src/js/` - **JavaScript 文件** `web_src/js/`
* **Vue 组件** `web_src/js/components/` - **Vue 组件** `web_src/js/components/`
* **Go HTML 模板** `templates/` - **Go HTML 模板** `templates/`
## 通用准则 ## 通用准则
@@ -56,14 +55,14 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
推荐的实现方式: 推荐的实现方式:
* Vue + Vanilla JS - Vue + Vanilla JS
* Fomantic-UIjQuery - Fomantic-UIjQuery
* Vanilla JS - Vanilla JS
不推荐的实现方式: 不推荐的实现方式:
* Vue + Fomantic-UIjQuery - Vue + Fomantic-UIjQuery
* jQuery + Vanilla JS - jQuery + Vanilla JS
为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。 为了保持界面一致Vue 组件可以使用 Fomantic-UI 的 CSS 类。
尽管不建议混合使用不同的框架, 尽管不建议混合使用不同的框架,
@@ -90,31 +89,41 @@ Gitea使用一些补丁使Fomantic UI更具可访问性参见`aria.js`和`ari
禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。 禁止使用`dataset`,它的驼峰命名行为使得搜索属性变得困难。
然而,仍然存在一些特殊情况,因此当前的准则是: 然而,仍然存在一些特殊情况,因此当前的准则是:
* 对于旧代码: - 对于旧代码:
* 应将`$.data()`重构为`$.attr()`
* 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用。
* 对于新代码: - 应将`$.data()`重构为`$.attr()`
* 不应使用`node.dataset`,而应使用`node.getAttribute` - 在极少数情况下,可以使用`$.data()`将一些非字符串数据绑定到元素上,但强烈不推荐使用
* 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
- 对于新代码:
- 不应使用`node.dataset`,而应使用`node.getAttribute`
- 不要将任何用户数据绑定到 DOM 节点上,使用合适的设计模式描述节点和数据之间的关系。
### 显示/隐藏元素 ### 显示/隐藏元素
* 推荐在Vue组件中使用`v-if``v-show`来显示/隐藏元素。 - 推荐在 Vue 组件中使用`v-if``v-show`来显示/隐藏元素。
* Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。 - Go 模板代码应使用 Gitea 的 `.gt-hidden``showElem()/hideElem()/toggleElem()` 来显示/隐藏元素,请参阅`.gt-hidden`的注释以获取更多详细信息。
### Go HTML 模板中的样式和属性 ### Go HTML 模板中的样式和属性
建议使用以下方式: 建议使用以下方式:
```html ```html
<div class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}" {{if .IsFoo}}data-foo{{end}}></div> <div
class="gt-name1 gt-name2 {{if .IsFoo}}gt-foo{{end}}"
{{if
.IsFoo}}data-foo{{end}}
></div>
``` ```
而不是: 而不是:
```html ```html
<div class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"{{if .IsFoo}} data-foo{{end}}></div> <div
class="gt-name1 gt-name2{{if .IsFoo}} gt-foo{{end}}"
{{if
.IsFoo}}
data-foo{{end}}
></div>
``` ```
以使代码更易读。 以使代码更易读。

View File

@@ -6,7 +6,6 @@ sidebar_position: 20
aliases: aliases:
- /zh-cn/guidelines-refactoring - /zh-cn/guidelines-refactoring
--- ---
# 重构指南 # 重构指南
@@ -22,22 +21,22 @@ aliases:
## 重构建议 ## 重构建议
* 设计更多关于未来的内容,而不仅仅解决当前问题。 - 设计更多关于未来的内容,而不仅仅解决当前问题。
* 减少模糊性,减少冲突,提高可维护性。 - 减少模糊性,减少冲突,提高可维护性。
* 描述重构,例如: - 描述重构,例如:
* 为什么需要重构。 - 为什么需要重构。
* 如何解决旧问题。 - 如何解决旧问题。
* 重构的优点/缺点是什么。 - 重构的优点/缺点是什么。
* 只做必要的更改,尽量保留旧逻辑。 - 只做必要的更改,尽量保留旧逻辑。
* 引入一些中间步骤使重构更容易审查完整的重构计划可以在几个PR中完成。 - 引入一些中间步骤,使重构更容易审查,完整的重构计划可以在几个 PR 中完成。
* 如果存在分歧应该请TOC技术监督委员会参与决策。 - 如果存在分歧,应该请 TOC技术监督委员会参与决策。
* 添加必要的测试以确保重构的正确性。 - 添加必要的测试以确保重构的正确性。
* 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。 - 非错误重构优先在里程碑的开始时进行,这样可以更容易地在发布之前发现问题。
## 审查和合并建议 ## 审查和合并建议
* 重构的PR不应该长时间保持打开状态通常为7天),应尽快进行审查。 - 重构的 PR 不应该长时间保持打开状态(通常为 7 天),应尽快进行审查。
* 重构的PR应尽快合并不应被其他PR阻塞。 - 重构的 PR 应尽快合并,不应被其他 PR 阻塞。
* 如果TOC没有异议重构的PR可以在7天后由一名核心成员(非作者)批准后合并。 - 如果 TOC 没有异议,重构的 PR 可以在 7 天后由一名核心成员(非作者)批准后合并。
* 如果最终结果良好,容忍一些不完美/临时的步骤。 - 如果最终结果良好,容忍一些不完美/临时的步骤。
* 如果重构是必要的,容忍一些回归错误,并尽快修复错误。 - 如果重构是必要的,容忍一些回归错误,并尽快修复错误。

View File

@@ -6,7 +6,6 @@ sidebar_position: 70
aliases: aliases:
- /zh-cn/localization - /zh-cn/localization
--- ---
# 本地化 # 本地化

View File

@@ -62,7 +62,7 @@ Make 的这三个发行版都可以在 Windows 上运行:
- MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。 - MSYS2 是一个工具和库的集合,为您提供一个易于使用的环境来构建、安装和运行本机 Windows 软件,它包括 MinGW-w64。
- 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH` - 在 MingGW-w64 中,二进制文件称为 `mingw32-make.exe` 而不是 `make.exe`。将 `bin` 文件夹添加到 `PATH`
- 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。 - 在 MSYS2 中,您可以直接使用 `make`。请参阅 [MSYS2 移植](https://www.msys2.org/wiki/Porting/)。
- 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 _beginthread 一样。 - 要使用 CGO_ENABLED例如SQLite3编译 Gitea您可能需要使用 [tdm-gcc](https://jmeubank.github.io/tdm-gcc/) 而不是 MSYS2 gcc因为 MSYS2 gcc 标头缺少一些 Windows -只有 CRT 函数像 \_beginthread 一样。
- [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make` - [Chocolatey 包管理器](https://chocolatey.org/packages/make)。运行`choco install make`
**注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata` **注意** :如果您尝试在 Windows 命令提示符下使用 make 进行构建您可能会遇到问题。建议使用上述提示Git bash 或 MinGW但是如果您只有命令提示符或可能是 PowerShell则可以使用 [set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1) 命令,例如 `set TAGS=bindata`

View File

@@ -34,7 +34,7 @@ Gitea 支持作为 OAuth2 提供者,允许第三方应用程序在用户同意
Gitea 支持以下令牌范围: Gitea 支持以下令牌范围:
| 名称 | 介绍 | | 名称 | 介绍 |
| ---- | ----------- | | ---------------------------------------- | --------------------------------------------------------------- |
| **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 | | **(no scope)** | 授予对公共用户配置文件和公共存储库的只读访问权限 |
| **repo** | 完全控制所有存储库 | | **repo** | 完全控制所有存储库 |
| &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 | | &nbsp;&nbsp;&nbsp; **repo:status** | 授予对所有存储库中提交状态的读/写访问权限 |

View File

@@ -54,18 +54,18 @@ https://github.com/loganinak/MigrateGitlabToGogs
- 或者包含 Gitea 二进制文件的目录 - 或者包含 Gitea 二进制文件的目录
- `%(APP_DATA_PATH)`(数据库、索引器等的默认路径) - `%(APP_DATA_PATH)`(数据库、索引器等的默认路径)
- `app.ini`中的`APP_DATA_PATH` - `app.ini`中的`APP_DATA_PATH`
- 或者_`AppWorkPath`_`/data` - 或者*`AppWorkPath`*`/data`
- _`CustomPath`_自定义模板 - _`CustomPath`_自定义模板
- `--custom-path`标志 - `--custom-path`标志
- 或者环境变量`GITEA_CUSTOM` - 或者环境变量`GITEA_CUSTOM`
- 或者在构建时设置的内置值 - 或者在构建时设置的内置值
- 或者_`AppWorkPath`_`/custom` - 或者*`AppWorkPath`*`/custom`
- HomeDir - HomeDir
- Unix环境变量`HOME` - Unix环境变量`HOME`
- Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH` - Windows环境变量`USERPROFILE`,或者环境变量`HOMEDRIVE`+`HOMEPATH`
- RepoRootPath - RepoRootPath
- `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径) - `app.ini`中\[repository]部分的`ROOT`(如果是绝对路径)
- 否则_`AppWorkPath`_`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径) - 否则*`AppWorkPath`*`/ROOT`(如果`app.ini`中\[repository]部分的`ROOT`是相对路径)
- 默认值为`%(APP_DATA_PATH)/gitea-repositories` - 默认值为`%(APP_DATA_PATH)/gitea-repositories`
- INI配置文件 - INI配置文件
- `--config`标志 - `--config`标志
@@ -263,12 +263,14 @@ fatal: Could not read from remote repository.
Git 用户(@ 之前的部分)的名称拼写正确。 Git 用户(@ 之前的部分)的名称拼写正确。
- 确保客户端机器上的公钥和私钥正确无误。 - 确保客户端机器上的公钥和私钥正确无误。
- 在服务器上: - 在服务器上:
- 确保存储库存在并且命名正确。 - 确保存储库存在并且命名正确。
- 检查系统用户主目录中的 `.ssh` 目录的权限。 - 检查系统用户主目录中的 `.ssh` 目录的权限。
- 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。 - 验证正确的公钥是否已添加到 `.ssh/authorized_keys` 中。
尝试在 Gitea 管理面板上运行 尝试在 Gitea 管理面板上运行
`Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)` `Rewrite '.ssh/authorized_keys' file (for Gitea SSH keys)`
- 查看 Gitea 日志。 - 查看 Gitea 日志。
- 查看 /var/log/auth或类似的文件 - 查看 /var/log/auth或类似的文件
- 检查存储库的权限。 - 检查存储库的权限。
@@ -340,7 +342,9 @@ Gitea 提供了一个子命令`gitea migrate`来初始化数据库,然后您
- 使用[管理 CLI 命令](../administration/command-line.md#admin)。 - 使用[管理 CLI 命令](../administration/command-line.md#admin)。
请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。 请注意,大多数命令还需要一个[全局标志](../administration/command-line.md#全局选项)来指向正确的配置。
- 作为**用户**,您可以更改密码... - 作为**用户**,您可以更改密码...
- 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。 - 在您的账户的`设置 -> 账户`页面(此方法**需要**您知道当前密码)。
- 使用`忘记密码`链接。 - 使用`忘记密码`链接。

View File

@@ -14,18 +14,18 @@ aliases:
_表格中的符号含义:_ _表格中的符号含义:_
* _✓ - 支持_ - _✓ - 支持_
* _ - 部分支持_ - _ - 部分支持_
* _✘ - 不支持_ - _✘ - 不支持_
* _⚙ - 由第三方服务或插件支持_ - _⚙ - 由第三方服务或插件支持_
#### 主要特性 #### 主要特性
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | | 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| ------------------------------- | -------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ | | -------------------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | -------------- | ------------ |
| 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ | | 开源免费 | ✓ | ✓ | ✘ | ✓ | ✘ | ✘ | ✓ |
| 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ | | 低资源开销 (RAM/CPU) | ✓ | ✓ | ✘ | ✘ | ✘ | ✘ | ✘ |
| 支持多种数据库 | ✓ | ✓ | ✘ | | | ✓ | ✓ | | 支持多种数据库 | ✓ | ✓ | ✘ | | | ✓ | ✓ |
@@ -56,7 +56,7 @@ _表格中的符号含义:_
#### 代码管理 #### 代码管理
| 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE | | 特性 | Gitea | Gogs | GitHub EE | GitLab CE | GitLab EE | BitBucket | RhodeCode CE |
| ------------------------------------ | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ | | -------------------- | --------------------------------------------------- | ---- | --------- | --------- | --------- | --------- | ------------ |
| 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ | | 仓库主题描述 | ✓ | ✘ | ✓ | ✓ | ✓ | ✘ | ✘ |
| 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ | | 仓库内代码搜索 | ✓ | ✘ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ | | 全局代码搜索 | ✓ | ✘ | ✓ | ✘ | ✓ | ✓ | ✓ |

View File

@@ -6,7 +6,6 @@ sidebar_position: 10
aliases: aliases:
- /zh-cn/database-prep - /zh-cn/database-prep
--- ---
# 数据库准备 # 数据库准备

Some files were not shown because too many files have changed in this diff Show More