From f9f9876f2c0392300a0d02a0b12a74c3c4f331a8 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sat, 4 Apr 2026 01:56:31 +0800 Subject: [PATCH] Clean up AppURL, remove legacy origin-url webcomponent (#37090) 1. `origin-url` was introduced in the past when there was no good framework support to detect current host url * It is not needed anymore * Removing it makes the code clearer 2. Separate template helper functions for different templates (web page/mail) 3. The "AppURL" info is removed from admin config page: it doesn't really help. * We already have various app url checks at many places --- modules/templates/helper.go | 21 ++------ modules/templates/mail.go | 54 ++++++++++++++++++- modules/templates/page.go | 4 +- options/locale/locale_en-US.json | 2 - routers/web/admin/config.go | 2 - services/context/context_template.go | 14 +++++ templates/admin/config.tmpl | 4 -- templates/base/head_opengraph.tmpl | 4 +- templates/base/head_script.tmpl | 2 +- templates/devtest/gitea-ui.tmpl | 6 --- templates/package/content/alpine.tmpl | 4 +- templates/package/content/arch.tmpl | 2 +- templates/package/content/cargo.tmpl | 4 +- templates/package/content/chef.tmpl | 2 +- templates/package/content/composer.tmpl | 2 +- templates/package/content/conan.tmpl | 2 +- templates/package/content/conda.tmpl | 6 +-- templates/package/content/cran.tmpl | 2 +- templates/package/content/debian.tmpl | 4 +- templates/package/content/generic.tmpl | 2 +- templates/package/content/go.tmpl | 2 +- templates/package/content/helm.tmpl | 2 +- templates/package/content/maven.tmpl | 8 +-- templates/package/content/npm.tmpl | 2 +- templates/package/content/nuget.tmpl | 2 +- templates/package/content/pub.tmpl | 2 +- templates/package/content/pypi.tmpl | 2 +- templates/package/content/rpm.tmpl | 6 +-- templates/package/content/rubygems.tmpl | 4 +- templates/package/content/swift.tmpl | 2 +- templates/package/content/vagrant.tmpl | 2 +- .../view_content/pull_merge_instruction.tmpl | 2 +- vite.config.ts | 1 - web_src/js/webcomponents/index.ts | 1 - web_src/js/webcomponents/origin-url.ts | 7 --- 35 files changed, 108 insertions(+), 80 deletions(-) delete mode 100644 web_src/js/webcomponents/origin-url.ts diff --git a/modules/templates/helper.go b/modules/templates/helper.go index 3a5eb5904f..f81be1255a 100644 --- a/modules/templates/helper.go +++ b/modules/templates/helper.go @@ -25,8 +25,7 @@ import ( "code.gitea.io/gitea/services/gitdiff" ) -// NewFuncMap returns functions for injecting to templates -func NewFuncMap() template.FuncMap { +func newFuncMapWebPage() template.FuncMap { return map[string]any{ "DumpVar": dumpVar, "NIL": func() any { return nil }, @@ -40,7 +39,6 @@ func NewFuncMap() template.FuncMap { "QueryEscape": queryEscape, "QueryBuild": QueryBuild, "SanitizeHTML": SanitizeHTML, - "DotEscape": dotEscape, "PathEscape": url.PathEscape, "PathEscapeSegments": util.PathEscapeSegments, @@ -61,6 +59,7 @@ func NewFuncMap() template.FuncMap { // ----------------------------------------------------------------- // time / number / format + "ShortSha": base.ShortSha, "FileSize": base.FileSize, "CountFmt": countFmt, "Sec2Hour": util.SecToHours, @@ -73,6 +72,7 @@ func NewFuncMap() template.FuncMap { "AssetURI": public.AssetURI, "ScriptImport": scriptImport, + // ----------------------------------------------------------------- // setting "AppName": func() string { @@ -84,17 +84,10 @@ func NewFuncMap() template.FuncMap { "AssetUrlPrefix": func() string { return setting.StaticURLPrefix + "/assets" }, - "AppUrl": func() string { - // The usage of AppUrl should be avoided as much as possible, - // because the AppURL(ROOT_URL) may not match user's visiting site and the ROOT_URL in app.ini may be incorrect. - // And it's difficult for Gitea to guess absolute URL correctly with zero configuration, - // because Gitea doesn't know whether the scheme is HTTP or HTTPS unless the reverse proxy could tell Gitea. - return setting.AppURL - }, "AppVer": func() string { return setting.AppVer }, - "AppDomain": func() string { // documented in mail-templates.md + "AppDomain": func() string { // TODO: helm registry still uses it, need to use current request host in the future return setting.Domain }, "ShowFooterTemplateLoadTime": func() bool { @@ -143,7 +136,6 @@ func NewFuncMap() template.FuncMap { // ----------------------------------------------------------------- // misc (TODO: move them to MiscUtils to avoid bloating the main func map) - "ShortSha": base.ShortSha, "ActionContent2Commits": ActionContent2Commits, "IsMultilineCommitMessage": isMultilineCommitMessage, "CommentMustAsDiff": gitdiff.CommentMustAsDiff, @@ -177,11 +169,6 @@ func queryEscape(s string) template.URL { return template.URL(url.QueryEscape(s)) } -// dotEscape wraps a dots in names with ZWJ [U+200D] in order to prevent auto-linkers from detecting these as urls -func dotEscape(raw string) string { - return strings.ReplaceAll(raw, ".", "\u200d.\u200d") -} - // iif is an "inline-if", similar util.Iif[T] but templates need the non-generic version, // and it could be simply used as "{{iif expr trueVal}}" (omit the falseVal). func iif(condition any, vals ...any) any { diff --git a/modules/templates/mail.go b/modules/templates/mail.go index ca13626468..181c6312b0 100644 --- a/modules/templates/mail.go +++ b/modules/templates/mail.go @@ -6,12 +6,14 @@ package templates import ( "html/template" "io" + "net/url" "regexp" "slices" "strings" "sync" texttmpl "text/template" + "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/graceful" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" @@ -34,6 +36,11 @@ type MailRender struct { mockedBodyTemplates map[string]*template.Template } +// dotEscape wraps a dots in names with ZWJ [U+200D] in order to prevent auto-linkers from detecting these as urls +func dotEscape(raw string) string { + return strings.ReplaceAll(raw, ".", "\u200d.\u200d") +} + // mailSubjectTextFuncMap returns functions for injecting to text templates, it's only used for mail subject func mailSubjectTextFuncMap() texttmpl.FuncMap { return texttmpl.FuncMap{ @@ -41,6 +48,7 @@ func mailSubjectTextFuncMap() texttmpl.FuncMap { "Eval": evalTokens, "EllipsisString": util.EllipsisDisplayString, + "AppName": func() string { return setting.AppName }, @@ -50,6 +58,48 @@ func mailSubjectTextFuncMap() texttmpl.FuncMap { } } +func mailBodyFuncMap() template.FuncMap { + // Some of them are documented in mail-templates.md + return template.FuncMap{ + "DumpVar": dumpVar, + "NIL": func() any { return nil }, + + // html/template related functions + "dict": dict, + "Iif": iif, + "Eval": evalTokens, + "HTMLFormat": htmlFormat, + "QueryEscape": queryEscape, + "QueryBuild": QueryBuild, + "SanitizeHTML": SanitizeHTML, + + "PathEscape": url.PathEscape, + "PathEscapeSegments": util.PathEscapeSegments, + + "DotEscape": dotEscape, + + // utils + "StringUtils": NewStringUtils, + "SliceUtils": NewSliceUtils, + "JsonUtils": NewJsonUtils, + + // time / number / format + "ShortSha": base.ShortSha, + "FileSize": base.FileSize, + + // setting + "AppName": func() string { + return setting.AppName + }, + "AppUrl": func() string { + return setting.AppURL + }, + "AppDomain": func() string { + return setting.Domain + }, + } +} + var mailSubjectSplit = regexp.MustCompile(`(?m)^-{3,}\s*$`) func newMailRenderer() (*MailRender, error) { @@ -103,7 +153,7 @@ func newMailRenderer() (*MailRender, error) { return renderer.tmplRenderer.Templates().HasTemplate(name) } - staticFuncMap := NewFuncMap() + staticFuncMap := mailBodyFuncMap() renderer.BodyTemplates.ExecuteTemplate = func(w io.Writer, name string, data any) error { if t, ok := renderer.mockedBodyTemplates[name]; ok { return t.Execute(w, data) @@ -131,7 +181,7 @@ func (r *MailRender) MockTemplate(name, subject, body string) func() { texttmpl.Must(r.SubjectTemplates.New(name).Parse(subject)) oldBody, hasOldBody := r.mockedBodyTemplates[name] - mockFuncMap := NewFuncMap() + mockFuncMap := mailBodyFuncMap() r.mockedBodyTemplates[name] = template.Must(template.New(name).Funcs(mockFuncMap).Parse(body)) return func() { r.SubjectTemplates = oldSubject diff --git a/modules/templates/page.go b/modules/templates/page.go index 8f6c82fc4b..32e52bb68e 100644 --- a/modules/templates/page.go +++ b/modules/templates/page.go @@ -24,13 +24,13 @@ type pageRenderer struct { } func (r *pageRenderer) funcMap(ctx context.Context) template.FuncMap { - pageFuncMap := NewFuncMap() + pageFuncMap := newFuncMapWebPage() pageFuncMap["ctx"] = func() any { return ctx } return pageFuncMap } func (r *pageRenderer) funcMapDummy() template.FuncMap { - dummyFuncMap := NewFuncMap() + dummyFuncMap := newFuncMapWebPage() dummyFuncMap["ctx"] = func() any { return nil } // for template compilation only, no context available return dummyFuncMap } diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index f4cdc37717..1600b27900 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -3224,10 +3224,8 @@ "admin.config.server_config": "Server Configuration", "admin.config.app_name": "Site Title", "admin.config.app_ver": "Gitea Version", - "admin.config.app_url": "Gitea Base URL", "admin.config.custom_conf": "Configuration File Path", "admin.config.custom_file_root_path": "Custom File Root Path", - "admin.config.domain": "Server Domain", "admin.config.disable_router_log": "Disable Router Log", "admin.config.run_user": "Run As Username", "admin.config.run_mode": "Run Mode", diff --git a/routers/web/admin/config.go b/routers/web/admin/config.go index a449796ec1..bf48e554df 100644 --- a/routers/web/admin/config.go +++ b/routers/web/admin/config.go @@ -123,9 +123,7 @@ func Config(ctx *context.Context) { ctx.Data["PageIsAdminConfigSummary"] = true ctx.Data["CustomConf"] = setting.CustomConf - ctx.Data["AppUrl"] = setting.AppURL ctx.Data["AppBuiltWith"] = setting.AppBuiltWith - ctx.Data["Domain"] = setting.Domain ctx.Data["RunUser"] = setting.RunUser ctx.Data["RunMode"] = util.ToTitleCase(setting.RunMode) ctx.Data["GitVersion"] = git.DefaultFeatures().VersionInfo() diff --git a/services/context/context_template.go b/services/context/context_template.go index 52c7461187..4e28c0f7df 100644 --- a/services/context/context_template.go +++ b/services/context/context_template.go @@ -5,10 +5,13 @@ package context import ( "context" + "html/template" "net/http" "strconv" + "strings" "time" + "code.gitea.io/gitea/modules/httplib" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/web/middleware" "code.gitea.io/gitea/services/webtheme" @@ -69,3 +72,14 @@ func (c TemplateContext) CurrentWebBanner() *setting.WebBannerType { } return nil } + +// AppFullLink returns a full URL link with AppSubURL for the given app link (no AppSubURL) +// If no link is given, it returns the current app full URL with sub-path but without trailing slash (that's why it is not named as AppURL) +func (c TemplateContext) AppFullLink(link ...string) template.URL { + s := httplib.GuessCurrentAppURL(c.parentContext()) + s = strings.TrimSuffix(s, "/") + if len(link) == 0 { + return template.URL(s) + } + return template.URL(s + strings.TrimPrefix(link[0], "/")) +} diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index 6dc6e0d5ea..b68f2c1a7a 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -11,10 +11,6 @@
{{AppVer}}{{.AppBuiltWith}}
{{ctx.Locale.Tr "admin.config.custom_conf"}}
{{.CustomConf}}
-
{{ctx.Locale.Tr "admin.config.app_url"}}
-
{{.AppUrl}}
-
{{ctx.Locale.Tr "admin.config.domain"}}
-
{{.Domain}}
{{ctx.Locale.Tr "admin.config.disable_router_log"}}
{{svg (Iif .DisableRouterLog "octicon-check" "octicon-x")}}
diff --git a/templates/base/head_opengraph.tmpl b/templates/base/head_opengraph.tmpl index cb96fb6d6d..93624ea4b0 100644 --- a/templates/base/head_opengraph.tmpl +++ b/templates/base/head_opengraph.tmpl @@ -16,7 +16,7 @@ {{end}} {{else if or .PageIsDiff .IsViewFile}} - + {{if and .PageIsDiff .Commit}} {{- $commitMessageParts := StringUtils.Cut .Commit.Message "\n" -}} {{- $commitMessageBody := index $commitMessageParts 1 -}} @@ -41,7 +41,7 @@ - + {{end}} diff --git a/templates/base/head_script.tmpl b/templates/base/head_script.tmpl index 403417892f..824b059643 100644 --- a/templates/base/head_script.tmpl +++ b/templates/base/head_script.tmpl @@ -7,7 +7,7 @@ If you introduce mistakes in it, Gitea JavaScript code wouldn't run correctly. window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);}); window.addEventListener('unhandledrejection', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);}); window.config = { - appUrl: '{{AppUrl}}', + appUrl: '{{ctx.AppFullLink "/"}}', appSubUrl: '{{AppSubUrl}}', assetUrlPrefix: '{{AssetUrlPrefix}}', runModeIsProd: {{.RunModeIsProd}}, diff --git a/templates/devtest/gitea-ui.tmpl b/templates/devtest/gitea-ui.tmpl index d548ed81dc..1584792b6b 100644 --- a/templates/devtest/gitea-ui.tmpl +++ b/templates/devtest/gitea-ui.tmpl @@ -84,12 +84,6 @@ -
-

<origin-url>

-
-
-
-

<overflow-menu>

diff --git a/templates/package/content/alpine.tmpl b/templates/package/content/alpine.tmpl index 5c144b9779..9fb7ce9fac 100644 --- a/templates/package/content/alpine.tmpl +++ b/templates/package/content/alpine.tmpl @@ -4,12 +4,12 @@
-
/$branch/$repository
+
{{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/alpine/$branch/$repository

{{ctx.Locale.Tr "packages.alpine.registry.info"}}

-
curl -JO 
+
curl -JO {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/alpine/key
diff --git a/templates/package/content/arch.tmpl b/templates/package/content/arch.tmpl index 6ce18affac..951bd53246 100644 --- a/templates/package/content/arch.tmpl +++ b/templates/package/content/arch.tmpl @@ -7,7 +7,7 @@
{{range $i, $repo := .Repositories}}{{if $i}}
 {{end}}[{{$repo}}]
 SigLevel = Optional TrustAll
-Server = 
+Server = {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/arch/$repo/$arch
 {{end}}
diff --git a/templates/package/content/cargo.tmpl b/templates/package/content/cargo.tmpl index 8b51074af4..ebb23e8659 100644 --- a/templates/package/content/cargo.tmpl +++ b/templates/package/content/cargo.tmpl @@ -8,8 +8,8 @@ default = "gitea" [registries.gitea] -index = "sparse+" # Sparse index -# index = "" # Git +index = "sparse+{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/cargo/" # Sparse index +# index = "{{ctx.AppFullLink}}/{{.PackageDescriptor.Owner.Name}}/_cargo-index.git" # Git [net] git-fetch-with-cli = true
diff --git a/templates/package/content/chef.tmpl b/templates/package/content/chef.tmpl index b3713808f6..d1c17d36a4 100644 --- a/templates/package/content/chef.tmpl +++ b/templates/package/content/chef.tmpl @@ -4,7 +4,7 @@
-
knife[:supermarket_site] = ''
+
knife[:supermarket_site] = '{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/chef'
diff --git a/templates/package/content/composer.tmpl b/templates/package/content/composer.tmpl index 4569820869..2e8cfb77eb 100644 --- a/templates/package/content/composer.tmpl +++ b/templates/package/content/composer.tmpl @@ -7,7 +7,7 @@
{
 	"repositories": [{
 			"type": "composer",
-			"url": ""
+			"url": "{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/composer"
 		}
 	]
 }
diff --git a/templates/package/content/conan.tmpl b/templates/package/content/conan.tmpl index b68a45fde3..13fd5fa76a 100644 --- a/templates/package/content/conan.tmpl +++ b/templates/package/content/conan.tmpl @@ -4,7 +4,7 @@
-
conan remote add gitea 
+
conan remote add gitea {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/conan
diff --git a/templates/package/content/conda.tmpl b/templates/package/content/conda.tmpl index 031b51aa10..622ec7ee76 100644 --- a/templates/package/content/conda.tmpl +++ b/templates/package/content/conda.tmpl @@ -4,11 +4,11 @@
-
channel_alias: 
+				
channel_alias: {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/conda
 channels:
-  - 
+  - {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/conda
 default_channels:
-  - 
+ - {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/conda
diff --git a/templates/package/content/cran.tmpl b/templates/package/content/cran.tmpl index ae58e6f334..0f0f167c3d 100644 --- a/templates/package/content/cran.tmpl +++ b/templates/package/content/cran.tmpl @@ -4,7 +4,7 @@
-
options("repos" = c(getOption("repos"), c(gitea="")))
+
options("repos" = c(getOption("repos"), c(gitea="{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/cran")))
diff --git a/templates/package/content/debian.tmpl b/templates/package/content/debian.tmpl index 73b8257835..7f843effb4 100644 --- a/templates/package/content/debian.tmpl +++ b/templates/package/content/debian.tmpl @@ -4,8 +4,8 @@
-
sudo curl  -o /etc/apt/keyrings/gitea-{{$.PackageDescriptor.Owner.Name}}.asc
-echo "deb [signed-by=/etc/apt/keyrings/gitea-{{$.PackageDescriptor.Owner.Name}}.asc]  $distribution $component" | sudo tee -a /etc/apt/sources.list.d/gitea.list
+				
sudo curl {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/debian/repository.key -o /etc/apt/keyrings/gitea-{{$.PackageDescriptor.Owner.Name}}.asc
+echo "deb [signed-by=/etc/apt/keyrings/gitea-{{$.PackageDescriptor.Owner.Name}}.asc] {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/debian $distribution $component" | sudo tee -a /etc/apt/sources.list.d/gitea.list
 sudo apt update

{{ctx.Locale.Tr "packages.debian.registry.info"}}

diff --git a/templates/package/content/generic.tmpl b/templates/package/content/generic.tmpl index 2fd952105f..6e57e21ca1 100644 --- a/templates/package/content/generic.tmpl +++ b/templates/package/content/generic.tmpl @@ -6,7 +6,7 @@

 {{- range .PackageDescriptor.Files -}}
-curl -OJ 
+curl -OJ {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/generic/{{$.PackageDescriptor.Package.Name}}/{{$.PackageDescriptor.Version.Version}}/{{.File.Name}}
 {{end -}}
 				
diff --git a/templates/package/content/go.tmpl b/templates/package/content/go.tmpl index 80d1ab231a..54ab18475d 100644 --- a/templates/package/content/go.tmpl +++ b/templates/package/content/go.tmpl @@ -4,7 +4,7 @@
-
GOPROXY= go install {{$.PackageDescriptor.Package.Name}}@{{$.PackageDescriptor.Version.Version}}
+
GOPROXY={{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/go go install {{$.PackageDescriptor.Package.Name}}@{{$.PackageDescriptor.Version.Version}}
diff --git a/templates/package/content/helm.tmpl b/templates/package/content/helm.tmpl index da846e934d..7a077a582d 100644 --- a/templates/package/content/helm.tmpl +++ b/templates/package/content/helm.tmpl @@ -4,7 +4,7 @@
-
helm repo add {{AppDomain}} 
+				
helm repo add {{AppDomain}} {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/helm
 helm repo update
diff --git a/templates/package/content/maven.tmpl b/templates/package/content/maven.tmpl index ea09023d59..612593a72e 100644 --- a/templates/package/content/maven.tmpl +++ b/templates/package/content/maven.tmpl @@ -11,19 +11,19 @@
<repositories>
 	<repository>
 		<id>gitea</id>
-		<url></url>
+		<url>{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven</url>
 	</repository>
 </repositories>
 
 <distributionManagement>
 	<repository>
 		<id>gitea</id>
-		<url></url>
+		<url>{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven</url>
 	</repository>
 
 	<snapshotRepository>
 		<id>gitea</id>
-		<url></url>
+		<url>{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven</url>
 	</snapshotRepository>
 </distributionManagement>
@@ -41,7 +41,7 @@
-
mvn dependency:get -DremoteRepositories= -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}
+
mvn dependency:get -DremoteRepositories={{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/maven -Dartifact={{.PackageDescriptor.Metadata.GroupID}}:{{.PackageDescriptor.Metadata.ArtifactID}}:{{.PackageDescriptor.Version.Version}}
diff --git a/templates/package/content/npm.tmpl b/templates/package/content/npm.tmpl index bb024348d0..28bcf45ee8 100644 --- a/templates/package/content/npm.tmpl +++ b/templates/package/content/npm.tmpl @@ -4,7 +4,7 @@
-
{{if .PackageDescriptor.Metadata.Scope}}{{.PackageDescriptor.Metadata.Scope}}:{{end}}registry=
+
{{if .PackageDescriptor.Metadata.Scope}}{{.PackageDescriptor.Metadata.Scope}}:{{end}}registry={{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/npm/
diff --git a/templates/package/content/nuget.tmpl b/templates/package/content/nuget.tmpl index 6e7e80a36e..7f874044cc 100644 --- a/templates/package/content/nuget.tmpl +++ b/templates/package/content/nuget.tmpl @@ -4,7 +4,7 @@
-
dotnet nuget add source --name {{.PackageDescriptor.Owner.Name}} --username your_username --password your_token 
+
dotnet nuget add source --name {{.PackageDescriptor.Owner.Name}} --username your_username --password your_token {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/nuget/index.json
diff --git a/templates/package/content/pub.tmpl b/templates/package/content/pub.tmpl index 2f63cde3a6..9eefcf7162 100644 --- a/templates/package/content/pub.tmpl +++ b/templates/package/content/pub.tmpl @@ -4,7 +4,7 @@
-
dart pub add {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}} --hosted-url=
+
dart pub add {{.PackageDescriptor.Package.Name}}:{{.PackageDescriptor.Version.Version}} --hosted-url={{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/pub/
diff --git a/templates/package/content/pypi.tmpl b/templates/package/content/pypi.tmpl index 15d8971eaa..4afdc1b72a 100644 --- a/templates/package/content/pypi.tmpl +++ b/templates/package/content/pypi.tmpl @@ -4,7 +4,7 @@
-
pip install --index-url  --extra-index-url https://pypi.org/simple {{.PackageDescriptor.Package.Name}}
+
pip install --index-url {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/pypi/simple/ --extra-index-url https://pypi.org/simple {{.PackageDescriptor.Package.Name}}
diff --git a/templates/package/content/rpm.tmpl b/templates/package/content/rpm.tmpl index 8aebe62806..7eba0d317f 100644 --- a/templates/package/content/rpm.tmpl +++ b/templates/package/content/rpm.tmpl @@ -11,19 +11,19 @@ # {{ctx.Locale.Tr "packages.rpm.distros.redhat"}} {{- range $group := .Groups}} {{- if $group}}{{$group = print "/" $group}}{{end}} -dnf config-manager --add-repo +dnf config-manager --add-repo {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/rpm{{$group}}.repo {{- end}} # Fedora 41+ (DNF5) {{- range $group := .Groups}} {{- if $group}}{{$group = print "/" $group}}{{end}} -dnf config-manager addrepo --from-repofile= +dnf config-manager addrepo --from-repofile={{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/rpm{{$group}}.repo {{- end}} # {{ctx.Locale.Tr "packages.rpm.distros.suse"}} {{- range $group := .Groups}} {{- if $group}}{{$group = print "/" $group}}{{end}} -zypper addrepo +zypper addrepo {{ctx.AppFullLink}}/api/packages/{{$.PackageDescriptor.Owner.Name}}/rpm{{$group}}.repo {{- end}}
diff --git a/templates/package/content/rubygems.tmpl b/templates/package/content/rubygems.tmpl index 610dfc7856..140ecfb7d9 100644 --- a/templates/package/content/rubygems.tmpl +++ b/templates/package/content/rubygems.tmpl @@ -4,11 +4,11 @@
-
gem install {{.PackageDescriptor.Package.Name}} --version "{{.PackageDescriptor.Version.Version}}" --source ""
+
gem install {{.PackageDescriptor.Package.Name}} --version "{{.PackageDescriptor.Version.Version}}" --source "{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems"
-
source "" do
+				
source "{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/rubygems" do
 	gem "{{.PackageDescriptor.Package.Name}}", "{{.PackageDescriptor.Version.Version}}"
 end
diff --git a/templates/package/content/swift.tmpl b/templates/package/content/swift.tmpl index aacbc83980..c6afd4885f 100644 --- a/templates/package/content/swift.tmpl +++ b/templates/package/content/swift.tmpl @@ -4,7 +4,7 @@
-
swift package-registry set 
+
swift package-registry set {{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/swift
diff --git a/templates/package/content/vagrant.tmpl b/templates/package/content/vagrant.tmpl index 7666284b87..bf68f2a4e2 100644 --- a/templates/package/content/vagrant.tmpl +++ b/templates/package/content/vagrant.tmpl @@ -4,7 +4,7 @@
-
vagrant box add --box-version {{.PackageDescriptor.Version.Version}} ""
+
vagrant box add --box-version {{.PackageDescriptor.Version.Version}} "{{ctx.AppFullLink}}/api/packages/{{.PackageDescriptor.Owner.Name}}/vagrant/{{.PackageDescriptor.Package.Name}}"
diff --git a/templates/repo/issue/view_content/pull_merge_instruction.tmpl b/templates/repo/issue/view_content/pull_merge_instruction.tmpl index 5c6bd60a40..b52333466d 100644 --- a/templates/repo/issue/view_content/pull_merge_instruction.tmpl +++ b/templates/repo/issue/view_content/pull_merge_instruction.tmpl @@ -10,7 +10,7 @@
{{$gitRemoteName := ctx.RootData.SystemConfig.Repository.GitGuideRemoteName.Value ctx}} {{if eq .PullRequest.Flow 0}} -
git fetch -u {{if ne .PullRequest.HeadRepo.ID .PullRequest.BaseRepo.ID}}{{else}}{{$gitRemoteName}}{{end}} {{.PullRequest.HeadBranch}}:{{$localBranch}}
+
git fetch -u {{if ne .PullRequest.HeadRepo.ID .PullRequest.BaseRepo.ID}}{{ctx.AppFullLink .PullRequest.HeadRepo.Link}}{{else}}{{$gitRemoteName}}{{end}} {{.PullRequest.HeadBranch}}:{{$localBranch}}
{{else}}
git fetch -u {{$gitRemoteName}} {{.PullRequest.GetGitHeadRefName}}:{{$localBranch}}
{{end}} diff --git a/vite.config.ts b/vite.config.ts index 4a3e271a3c..375c127ce0 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -32,7 +32,6 @@ for (const path of globSync('web_src/css/themes/*.css', {cwd: import.meta.dirnam const webComponents = new Set([ // our own, in web_src/js/webcomponents 'overflow-menu', - 'origin-url', 'relative-time', // from dependencies 'markdown-toolbar', diff --git a/web_src/js/webcomponents/index.ts b/web_src/js/webcomponents/index.ts index 2493f56ac9..366ec701d1 100644 --- a/web_src/js/webcomponents/index.ts +++ b/web_src/js/webcomponents/index.ts @@ -1,6 +1,5 @@ import './polyfills.ts'; import './relative-time.ts'; -import './origin-url.ts'; import './overflow-menu.ts'; import {isDarkTheme} from '../utils.ts'; diff --git a/web_src/js/webcomponents/origin-url.ts b/web_src/js/webcomponents/origin-url.ts deleted file mode 100644 index e39d3ad713..0000000000 --- a/web_src/js/webcomponents/origin-url.ts +++ /dev/null @@ -1,7 +0,0 @@ -import {toOriginUrl} from '../utils/url.ts'; - -window.customElements.define('origin-url', class extends HTMLElement { - connectedCallback() { - this.textContent = toOriginUrl(this.getAttribute('data-url')!); - } -});