Use more specific selector for `name` links (#29679) (#29681)

Backport #29679 by @silverwind

Followup https://github.com/go-gitea/gitea/pull/29305. As per discussion
in https://github.com/go-gitea/gitea/pull/29666#discussion_r1517506422,
make this selector only search in the current `.markup` document, as
there can be multiples displayed at the same time.

@DanielMatiasCarvalho maybe you can review.

Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
Giteabot 2024-03-09 08:40:05 +08:00 committed by GitHub
parent bfc7c8a598
commit 25b0c99a41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 1 additions and 1 deletions

View File

@ -39,7 +39,7 @@ export function initMarkupAnchors() {
if (!href.startsWith('#user-content-')) continue; if (!href.startsWith('#user-content-')) continue;
const originalId = href.replace(/^#user-content-/, ''); const originalId = href.replace(/^#user-content-/, '');
a.setAttribute('href', `#${encodeURIComponent(originalId)}`); a.setAttribute('href', `#${encodeURIComponent(originalId)}`);
if (document.getElementsByName(originalId).length !== 1) { if (a.closest('.markup').querySelectorAll(`a[name="${originalId}"]`).length !== 1) {
a.addEventListener('click', (e) => { a.addEventListener('click', (e) => {
scrollToAnchor(e.currentTarget.getAttribute('href'), false); scrollToAnchor(e.currentTarget.getAttribute('href'), false);
}); });