diff --git a/templates/repo/clone_script.tmpl b/templates/repo/clone_script.tmpl
index 5c9a545cad..97fd61d83d 100644
--- a/templates/repo/clone_script.tmpl
+++ b/templates/repo/clone_script.tmpl
@@ -1,3 +1,6 @@
+{{/*Golang's template has a bug with string interpolation containing slashes,
+the double slash will be treated as a comment there.
+But there are also JS lint rules for template that require to use string interpolation in 1.17*/}}
 <script>
 	// synchronously set clone button states and urls here to avoid flickering
 	// on page load. initRepoCloneLink calls this when proto changes.
@@ -21,8 +24,9 @@
 		for (const el of document.getElementsByClassName('js-clone-url')) {
 			el[el.nodeName === 'INPUT' ? 'value' : 'textContent'] = link;
 		}
+		const sep = '//';
 		for (const el of document.getElementsByClassName('js-clone-url-vsc')) {
-			el['href'] = `vscode://vscode.git/clone?url=${encodeURIComponent(link)}`;
+			el.href = `vscode:${sep}vscode.git/clone?url=${encodeURIComponent(link)}`;
 		}
 	})();
 </script>
diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl
index 2f9b1f25b7..18c02aa9ec 100644
--- a/templates/repo/home.tmpl
+++ b/templates/repo/home.tmpl
@@ -116,19 +116,19 @@
 				<!-- Only show clone panel in repository home page -->
 				{{if eq $n 0}}
 					<div class="ui action tiny input" id="clone-panel">
-					{{template "repo/clone_buttons" .}}
-					{{template "repo/clone_script" .}}
-					<button id="download-btn" class="ui basic small compact jump dropdown icon button tooltip" data-content="{{.i18n.Tr "repo.download_archive"}}" data-position="top right">
-						{{svg "octicon-download"}}
-						<div class="menu">
-							{{if not $.DisableDownloadSourceArchives}}
-								<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-3"}}{{.i18n.Tr "repo.download_zip"}}</a>
-								<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-3"}}{{.i18n.Tr "repo.download_tar"}}</a>
-								<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.bundle" rel="nofollow">{{svg "octicon-package" 16 "mr-3"}}{{.i18n.Tr "repo.download_bundle"}}</a>
-							{{end}}
-							<a class="item js-clone-url-vsc" href="vscode://vscode.git/clone?url={{.CloneButtonOriginLink.HTTPS}}">{{svg "gitea-vscode" 16 "mr-3"}}{{.i18n.Tr "repo.clone_in_vsc"}}</a>
-						</div>
-					</button>
+						{{template "repo/clone_buttons" .}}
+						<button id="download-btn" class="ui basic small compact jump dropdown icon button tooltip" data-content="{{.i18n.Tr "repo.download_archive"}}" data-position="top right">
+							{{svg "octicon-download"}}
+							<div class="menu">
+								{{if not $.DisableDownloadSourceArchives}}
+									<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-3"}}{{.i18n.Tr "repo.download_zip"}}</a>
+									<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip" 16 "mr-3"}}{{.i18n.Tr "repo.download_tar"}}</a>
+									<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.bundle" rel="nofollow">{{svg "octicon-package" 16 "mr-3"}}{{.i18n.Tr "repo.download_bundle"}}</a>
+								{{end}}
+								<a class="item js-clone-url-vsc" href="vscode://vscode.git/clone?url={{.CloneButtonOriginLink.HTTPS}}">{{svg "gitea-vscode" 16 "mr-3"}}{{.i18n.Tr "repo.clone_in_vsc"}}</a>
+							</div>
+						</button>
+						{{template "repo/clone_script" .}}{{/* the script will update `.js-clone-url` and related elements */}}
 					</div>
 				{{end}}
 				{{if and (ne $n 0) (not .IsViewFile) (not .IsBlame) }}