为什么 GitHub 将 js 附加到我的 jekyll 站点

Why does GitHub append a js to my jekyll site

我注意到 GitHub 附加了一个 似乎 的 js 来删除 links 到电子邮件地址,当他们有字符串 /cdn-cgi/l/email-protection 时他们。其他人有这个奇怪的问题,或者这真的来自 GitHub?

这是此脚本的美化版本:

(function() {
    try {
        var s, a, i, j, r, c, l = document.getElementsByTagName("a"),
            t = document.createElement("textarea");
        for (i = 0; l.length - i; i++) {
            try {
                a = l[i].getAttribute("href");
                if (a && a.indexOf("/cdn-cgi/l/email-protection") > -1 && (a.length > 28)) {
                    s = '';
                    j = 27 + 1 + a.indexOf("/cdn-cgi/l/email-protection");
                    if (a.length > j) {
                        r = parseInt(a.substr(j, 2), 16);
                        for (j += 2; a.length > j && a.substr(j, 1) != 'X'; j += 2) {
                            c = parseInt(a.substr(j, 2), 16) ^ r;
                            s += String.fromCharCode(c);
                        }
                        j += 1;
                        s += a.substr(j, a.length - j);
                    }

                    t.innerHTML = s.replace(/</g, "&lt;").replace(/>/g, "&gt;");
                    l[i].setAttribute("href", "mailto:" + t.value);
                }
            } catch (e) {}
        }
    } catch (e) {}
})();

当我有一个像 <a href="mailto:/cdn-cgi/l/email-protection/email@foo.com">Contact</a> 这样的 link 时,它变成了 <a href="mailto:">Contact</a>。否则,它什么都不做。仍然,这让我很困扰,因为我没有把那个脚本放在那里,而且我似乎没有收到任何关于 GH 附加脚本的警告。

我刚收到 GitHub 支持人员的回复,结果发现当 Email Address Obfuscation 功能打开时,CloudFlare 添加了神秘的脚本。

相关设置在ScrapeShield下的https://www.cloudflare.com/a/content-protection/<<domain.name>>,如果大家有类似的困扰。