Skip to content
View allentong's full-sized avatar

    Block or report allentong

    Block user

    Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

    You must be logged in to block users.

    Content in all repositories owned by your account will be closed.
    Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
    Report abuse

    Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

    Report abuse

    Popular repositories Loading

    1. dotjs-syntax dotjs-syntaxPublic

      doT.js official site

      4 2

    2. Atomic AtomicPublic

      Forked from jamesearl/Atomic

      Atomic Elements Selector Engine

      JavaScript

    3. chocolatey-setup chocolatey-setupPublic

      Borrowed Chocolatey Setup from Geoff

      PowerShell

    4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

      Forked from 7shifts/jQueryTimeAutocomplete

      jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

      JavaScript

    5. vue-cli vue-cliPublic

      Forked from vuejs/vue-cli

      Simple CLI for scaffolding Vue.js projects

      JavaScript

    6. derp-api derp-apiPublic

      Forked from derpsoft/derp-api

      JavaScript

    , 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
     blocks
    (function() {
    function addCopyButtons() {
    document.querySelectorAll('pre code').forEach(function(codeBlock) {
    if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
    codeBlock.parentElement.setAttribute('data-copy-added', 'true');
    var btn = document.createElement('button');
    btn.textContent = 'Copy';
    btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
    btn.onmouseover = function() { this.style.opacity = '1'; };
    btn.onmouseout = function() { this.style.opacity = '0.7'; };
    btn.onclick = function() {
    navigator.clipboard.writeText(codeBlock.textContent).then(function() {
    btn.textContent = 'Copied!';
    setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
    });
    };
    codeBlock.parentElement.style.position = 'relative';
    codeBlock.parentElement.appendChild(btn);
    });
    }
    addCopyButtons();
    // Re-run on dynamic content
    var observer = new MutationObserver(addCopyButtons);
    observer.observe(document.body, { childList: true, subtree: true });
    })();
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    allentong (Allen Tong) · GitHub
    Skip to content
    View allentong's full-sized avatar

      Block or report allentong

      Block user

      Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

      You must be logged in to block users.

      Content in all repositories owned by your account will be closed.
      Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
      Report abuse

      Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

      Report abuse

      Popular repositories Loading

      1. dotjs-syntax dotjs-syntaxPublic

        doT.js official site

        4 2

      2. Atomic AtomicPublic

        Forked from jamesearl/Atomic

        Atomic Elements Selector Engine

        JavaScript

      3. chocolatey-setup chocolatey-setupPublic

        Borrowed Chocolatey Setup from Geoff

        PowerShell

      4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

        Forked from 7shifts/jQueryTimeAutocomplete

        jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

        JavaScript

      5. vue-cli vue-cliPublic

        Forked from vuejs/vue-cli

        Simple CLI for scaffolding Vue.js projects

        JavaScript

      6. derp-api derp-apiPublic

        Forked from derpsoft/derp-api

        JavaScript

      , 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' allentong (Allen Tong) · GitHub
      Skip to content
      View allentong's full-sized avatar

        Block or report allentong

        Block user

        Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

        You must be logged in to block users.

        Content in all repositories owned by your account will be closed.
        Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
        Report abuse

        Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

        Report abuse

        Popular repositories Loading

        1. dotjs-syntax dotjs-syntaxPublic

          doT.js official site

          4 2

        2. Atomic AtomicPublic

          Forked from jamesearl/Atomic

          Atomic Elements Selector Engine

          JavaScript

        3. chocolatey-setup chocolatey-setupPublic

          Borrowed Chocolatey Setup from Geoff

          PowerShell

        4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

          Forked from 7shifts/jQueryTimeAutocomplete

          jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

          JavaScript

        5. vue-cli vue-cliPublic

          Forked from vuejs/vue-cli

          Simple CLI for scaffolding Vue.js projects

          JavaScript

        6. derp-api derp-apiPublic

          Forked from derpsoft/derp-api

          JavaScript

        , 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' allentong (Allen Tong) · GitHub
        Skip to content
        View allentong's full-sized avatar

          Block or report allentong

          Block user

          Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

          You must be logged in to block users.

          Content in all repositories owned by your account will be closed.
          Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
          Report abuse

          Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

          Report abuse

          Popular repositories Loading

          1. dotjs-syntax dotjs-syntaxPublic

            doT.js official site

            4 2

          2. Atomic AtomicPublic

            Forked from jamesearl/Atomic

            Atomic Elements Selector Engine

            JavaScript

          3. chocolatey-setup chocolatey-setupPublic

            Borrowed Chocolatey Setup from Geoff

            PowerShell

          4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

            Forked from 7shifts/jQueryTimeAutocomplete

            jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

            JavaScript

          5. vue-cli vue-cliPublic

            Forked from vuejs/vue-cli

            Simple CLI for scaffolding Vue.js projects

            JavaScript

          6. derp-api derp-apiPublic

            Forked from derpsoft/derp-api

            JavaScript

          , 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' allentong (Allen Tong) · GitHub
          Skip to content
          View allentong's full-sized avatar

            Block or report allentong

            Block user

            Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

            You must be logged in to block users.

            Content in all repositories owned by your account will be closed.
            Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
            Report abuse

            Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

            Report abuse

            Popular repositories Loading

            1. dotjs-syntax dotjs-syntaxPublic

              doT.js official site

              4 2

            2. Atomic AtomicPublic

              Forked from jamesearl/Atomic

              Atomic Elements Selector Engine

              JavaScript

            3. chocolatey-setup chocolatey-setupPublic

              Borrowed Chocolatey Setup from Geoff

              PowerShell

            4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

              Forked from 7shifts/jQueryTimeAutocomplete

              jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

              JavaScript

            5. vue-cli vue-cliPublic

              Forked from vuejs/vue-cli

              Simple CLI for scaffolding Vue.js projects

              JavaScript

            6. derp-api derp-apiPublic

              Forked from derpsoft/derp-api

              JavaScript

            , 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' allentong (Allen Tong) · GitHub
            Skip to content
            View allentong's full-sized avatar

              Block or report allentong

              Block user

              Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

              You must be logged in to block users.

              Content in all repositories owned by your account will be closed.
              Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
              Report abuse

              Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

              Report abuse

              Popular repositories Loading

              1. dotjs-syntax dotjs-syntaxPublic

                doT.js official site

                4 2

              2. Atomic AtomicPublic

                Forked from jamesearl/Atomic

                Atomic Elements Selector Engine

                JavaScript

              3. chocolatey-setup chocolatey-setupPublic

                Borrowed Chocolatey Setup from Geoff

                PowerShell

              4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

                Forked from 7shifts/jQueryTimeAutocomplete

                jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

                JavaScript

              5. vue-cli vue-cliPublic

                Forked from vuejs/vue-cli

                Simple CLI for scaffolding Vue.js projects

                JavaScript

              6. derp-api derp-apiPublic

                Forked from derpsoft/derp-api

                JavaScript

              , 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); allentong (Allen Tong) · GitHub
              Skip to content
              View allentong's full-sized avatar

                Block or report allentong

                Block user

                Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

                You must be logged in to block users.

                Content in all repositories owned by your account will be closed.
                Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
                Report abuse

                Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

                Report abuse

                Popular repositories Loading

                1. dotjs-syntax dotjs-syntaxPublic

                  doT.js official site

                  4 2

                2. Atomic AtomicPublic

                  Forked from jamesearl/Atomic

                  Atomic Elements Selector Engine

                  JavaScript

                3. chocolatey-setup chocolatey-setupPublic

                  Borrowed Chocolatey Setup from Geoff

                  PowerShell

                4. jQueryTimeAutocomplete jQueryTimeAutocompletePublic

                  Forked from 7shifts/jQueryTimeAutocomplete

                  jQuery autocomplete plugin that works with times. Works basically the same as Google Calendars time input when you add an event. Example: http://7shifts.com/better-time-drop-downs-jquery-timeautoco…

                  JavaScript

                5. vue-cli vue-cliPublic

                  Forked from vuejs/vue-cli

                  Simple CLI for scaffolding Vue.js projects

                  JavaScript

                6. derp-api derp-apiPublic

                  Forked from derpsoft/derp-api

                  JavaScript