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) }}