') + ')', '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('^' + ".*" + ', '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" + ', '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('^' + ".*" + ', '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); } })(); })(); skalibog (Eduard Skaliboh) · GitHub
Skip to content
View skalibog's full-sized avatar
🇺🇦
Working from home
🇺🇦
Working from home

Block or report skalibog

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
skalibog/README.md

Hi 👋, I'm Edward Skalibog

a 30-year-old Full Stack Developer from Ukraine. Specializing in Ruby on Rails, Vue.js, Nuxt.js, and more, I brings a unique blend of backend robustness and frontend elegance to every project. With a passion for innovation and a commitment to staying on the cutting edge, he is dedicated to transforming ideas into seamless, user-centric digital experiences.

skalibog

skalibog

skalibog

  • 🔭 I’m currently working on Mongoid open source gems

  • 🌱 I’m currently learning Ruby/VueJS/DevOps/Elixir/Rust

  • 💬 Ask me about anything.

  • 📫 How to reach me? Text preferably, any resource.

  • ⚡ Fun fact Staying alive.

Connect with me:

skalibogskalibogskalibog21907867skalibog@skalibogskalibogskalibogEdwardi#4266

Languages and Tools:

awsazurebabelbashbootstrapchartjscirclecicoffeescriptcss3cypressdockerelasticsearchelixirembererlangexpressfigmafirebasegcpgitgrafanagraphqlherokuhtml5javascriptjekylljenkinskibanalinuxmariadbmiddlemanmongodbmysqlnextjsnginxnodejsnuxtjsoraclepostgresqlpostmanpugpuppeteerrabbitMQrailsreactredisrubysassseleniumsqlitetailwindtraviscivagrantvuejsvuepressvuetifywebpack

Support:

skalibog





skalibog

skalibog

skalibog

Pinned Loading

  1. device-detector-godevice-detector-goPublic

    Native Go port of matomo/device-detector/

    Go 2

  2. easy_elasticeasy_elasticPublic

    Ruby gem for ElasticSearch easy usage

  3. elasticsearch-dsl-rubyelasticsearch-dsl-rubyPublic

    Forked from elastic/elasticsearch-dsl-ruby

    Ruby API for the Elasticsearch Query DSL

    Ruby

  4. mongoid-rspecmongoid-rspecPublic

    Forked from mongoid/mongoid-rspec

    RSpec matchers and macros for Mongoid.

    Ruby

  5. ransack-mongoidransack-mongoidPublic

    Forked from activerecord-hackery/ransack-mongoid

    Ransack-mongoid with ActiveAdmin fixes

    Ruby 3

  6. mina-sidekiqmina-sidekiqPublic

    Forked from caiqinghua/mina-sidekiq

    Tasks to deploy Sidekiq with mina. Updated for Sidekiq 7

    Ruby