Open link in new tab in GitHub

Ensures all <a> tags on GitHub Pages open in a new tab

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Open link in new tab in GitHub
// @name:zh-CN   在新标签页中打开链接[Github]
// @namespace    http://tampermonkey.net/
// @version      0.1
// @license MIT
// @description  Ensures all <a> tags on GitHub Pages open in a new tab
// @description:zh-CN  确保 GitHub Pages 上的所有 <a> 标签在新标签页中打开
// @author       wxupjack
// @match        *://*.githubpages.com/*
// @match        *://*.github.com/*
// @grant        none

// ==/UserScript==

(function() {
    'use strict';
    function updateLinks() {
        // Select all <a> tags
        const links = document.querySelectorAll('a');
        //console.log('all modified <a> tags:', links);

        links.forEach(link => {
            link.setAttribute('target', '_blank');
        });
    }

    // Run after the page is loaded
    if (document.readyState === 'complete' || document.readyState === 'interactive') {
        updateLinks();
    } else {
        window.addEventListener('DOMContentLoaded', updateLinks);
    }

    // Optional: Also update links if DOM is dynamically changed (for SPAs or AJAX navigation)
    const observer = new MutationObserver(updateLinks);
    observer.observe(document.body, { childList: true, subtree: true });

})();

// LLM prompt
// Create a Tampermonkey script for me:
// Domain: All GitHub Pages
// Goal: Add `target="_blank"` to all `<a>` tags on the page
// 1. Get the source code after the page loads
// 2. Find all <a> tags
// 3. Add/modify the target to _blank