From fe2dd70ba899442639dd3db88be5a6a64261b4d3 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Thu, 1 Jan 2026 07:27:26 +0530 Subject: [PATCH 01/51] v26.1.1 - Refactor footer and layout structure; add web and app-specific footers - Enhance UI responsiveness, and streamline testapp login form - Fixes #13 and #14 --- _includes/footer.html | 211 ------------------------ _includes/footer_app.html | 100 +++++++++++ _includes/footer_web.html | 66 ++++++++ _layouts/modern.html | 111 ++++++++----- assets/css/gd.css | 16 +- assets/js/gd.js | 1 + pages/learn/selenium/testapp/index.html | 77 ++++----- 7 files changed, 283 insertions(+), 299 deletions(-) delete mode 100644 _includes/footer.html create mode 100644 _includes/footer_app.html create mode 100644 _includes/footer_web.html diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index f1656dd..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,211 +0,0 @@ -{%- if path[1] == "about" and path[2] == nil -%}{%- assign about_section = "about_home_true" -%} -{%- elsif path[1] == "about" and path[2] != nil -%}{%- assign about_section = "about_home_false" -%}{%- endif -%} - - -{%- if path[1] == nil or path[1] == "testapp" -%}{%- assign flag = "block_webfooter" -%}{%- endif -%} - - - - - - - \ No newline at end of file diff --git a/_includes/footer_app.html b/_includes/footer_app.html new file mode 100644 index 0000000..7445f45 --- /dev/null +++ b/_includes/footer_app.html @@ -0,0 +1,100 @@ +{%- if path[1] == "about" and path[2] == nil -%}{%- assign about_section = "about_home_true" -%} +{%- elsif path[1] == "about" and path[2] != nil -%}{%- assign about_section = "about_home_false" -%}{%- endif -%} + + + + + \ No newline at end of file diff --git a/_includes/footer_web.html b/_includes/footer_web.html new file mode 100644 index 0000000..cb82ba5 --- /dev/null +++ b/_includes/footer_web.html @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/_layouts/modern.html b/_layouts/modern.html index 649c059..875ae91 100644 --- a/_layouts/modern.html +++ b/_layouts/modern.html @@ -3,9 +3,13 @@ {% include head.html %} +{%- assign main_pages = "shubhamrdarda,testapp,learn,tools" | split: ',' -%} +{%- if path[1] == nil or main_pages contains path[1] -%}{%- assign is_sidebar_page = false -%} +{%- else -%}{%- assign is_sidebar_page = true -%}{%- endif -%} + -
-{%- if path[1] == nil or path[1] == "shubhamrdarda" or path[1] == "testapp" -%} -
{{ content }}
{%- include footer.html -%} - -{%- elsif path[1] == "learn" or path[1] == "tools" -%} -
-

{{ site.title }}

- {%- if path[1] == nil -%}
{{ site.tagline }}
- {%- else -%}
{{ segment }}
{%- endif -%} -
-
{{ content }}
-{%- include footer.html -%} +
+ {%- unless is_sidebar_page -%} + {%- if path[1] == "learn" or path[1] == "tools" -%} +
+

{{ site.title }}

+
{{ segment }}
+
+ {%- endif -%} +
{{ content }}
-{%- else -%} -
-

{{ site.title }}

- {%- if path[1] != "converters" and path[1] != "calculators" -%}
{{ segment }}
- {%- else -%}
{{ page.title }}
{%- endif -%} -
+ {%- else -%} +
+

{{ site.title }}

+ {%- if path[1] != "converters" and path[1] != "calculators" -%}
{{ segment }}
+ {%- else -%}
{{ page.title }}
{%- endif -%} +
-
-
- {%- if path[2] == nil and path[1] != "about" -%}{%- include search.html -%}{%- endif -%} - {{ content }} - {%- for parent in gd.grandparent -%} - {% if path[1] != "about" and path[2] == nil %} -
{{ parent.parent }}
- {% for child in parent.children limit:4 %}{{ child.title }}{% endfor %} - {%- assign count = parent.children | size -%} - {%- if count >= 5 -%}Show More »{%- endif -%} +
+
+ {%- if path[2] == nil and path[1] != "about" -%}{%- include search.html -%}{%- endif -%} + {{ content }} + {%- for parent in gd.grandparent -%} + {% if path[1] != "about" and path[2] == nil %} +
{{ parent.parent }}
+ {% for child in parent.children limit:4 %}{{ child.title }}{% endfor %} + {%- assign count = parent.children | size -%} + {%- if count >= 5 -%}Show More »{%- endif -%} +
+ {%- else -%} + {%- if path[1] != "about" and path[3] == nil -%} + {%- assign pu = parent.url | split: '/' -%} + {%- if pu[1] == path[2] -%} +
{{ parent.parent }}
{%- for child in parent.children -%}{{ child.title }}{%- endfor -%}
+ {%- endif -%} + {%- endif -%}{%- endif -%}{%- endfor -%} + {%- if path[2] != nil -%}{%- include comments.html -%}{%- endif -%} + {% include pagination.html %} + {% include ads.html %}
- {%- else -%} - {%- if path[1] != "about" and path[3] == nil -%} - {%- assign pu = parent.url | split: '/' -%} - {%- if pu[1] == path[2] -%} -
{{ parent.parent }}
{%- for child in parent.children -%}{{ child.title }}{%- endfor -%}
- {%- endif -%} - {%- endif -%}{%- endif -%}{%- endfor -%} - {%- if path[2] != nil -%}{%- include comments.html -%}{%- endif -%} - {% include pagination.html %} - {% include ads.html %} -
-
+ + {%- endunless -%} -
{%- include footer.html -%}
-{%- endif -%} + {%- if is_sidebar_page -%}{%- assign footer_class = "col-xs-12 col-sm-12 col-md-9 col-lg-9 col-xl-10 col-xxl-10 ms-sm-auto footer-no-padding" -%}{%- else -%}{%- assign footer_class = "" -%}{%- endif -%} +
{%- if path[3] != nil -%} @@ -142,6 +144,25 @@
diff --git a/assets/css/gd.css b/assets/css/gd.css index ebb1266..3b81ae6 100644 --- a/assets/css/gd.css +++ b/assets/css/gd.css @@ -394,10 +394,6 @@ div.collapsed { border-bottom: 1px solid var(--color2) } -.sidebar>a:last-child { - margin-bottom: 30px; -} - .sidebar>a:hover, .sidebar>a:focus { background-color: var(--color2); @@ -580,7 +576,7 @@ option, .navbar-toggler:focus, .btn:hover:active { border-color: var(--color1); - box-shadow: 0 0 0 0.2rem var(--color1); + box-shadow: none; } ::-webkit-input-placeholder { @@ -729,4 +725,36 @@ a.wvnav-item>i.wvsvg { 100% { transform: translateX(100%); } } +/* --------------------------------------------------------------------------------------------- */ + +/* Copy Button Tooltip/Popper */ +/* --------------------------------------------------------------------------------------------- */ +.copy-btn { + position: relative; +} + +.copy-btn::after { + content: 'Code copied!'; + position: absolute; + top: 50%; + right: 100%; + transform: translateY(-50%); + margin-right: 8px; + background-color: rgba(0, 0, 0, 0.85); + color: #00b050; + padding: 5px 10px; + border-radius: 5px; + font-size: 14px; + font-style: normal; + white-space: nowrap; + z-index: 10; + opacity: 0; + visibility: hidden; + transition: opacity .2s ease-in-out, visibility .2s ease-in-out; +} + +.copy-btn.show-tooltip::after { + opacity: 1; + visibility: visible; +} /* --------------------------------------------------------------------------------------------- */ \ No newline at end of file diff --git a/assets/js/gd.js b/assets/js/gd.js index c3b6e5f..2a7ee7b 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -12,10 +12,19 @@ document.addEventListener('touchmove', touchmove, { passive: true }); document.addEventListener('touchend', touchend, { passive: true }); // Capture the starting coordinates of a touch event -function touchstart(evt) { const firstTouch = (evt.touches || evt.originalEvent.touches)[0]; xDown = firstTouch.clientX; yDown = firstTouch.clientY; } +function touchstart(evt) { + if (!evt.touches || evt.touches.length === 0) return; + const firstTouch = evt.touches[0]; + xDown = firstTouch.clientX; + yDown = firstTouch.clientY; +} // Track the movement coordinates during a touch event -function touchmove(evt) { if (!xDown || !yDown) return; xUp = evt.touches[0].clientX; yUp = evt.touches[0].clientY; } +function touchmove(evt) { + if (!xDown || !yDown || !evt.touches || evt.touches.length === 0) return; + xUp = evt.touches[0].clientX; + yUp = evt.touches[0].clientY; +} // Handle the end of a touch event to determine swipe direction function touchend() { @@ -36,6 +45,11 @@ function touchend() { // Sidebar and UI interaction handlers $(function () { + // Force the default cursor to prevent the I-beam from appearing over text. + $('body').css('cursor', 'default'); + // Ensure input fields and textareas still show the text cursor for editing. + $('input, textarea').css('cursor', 'text'); + // Toggle left sidebar visibility $('[data-bs-toggle="leftsidebar"]').on('click', function () { $('.rightsidebar-collapse').removeClass('open') @@ -55,14 +69,16 @@ $(function () { $('html').on('dragstart', 'a', function () { return false; }); }); -// Disable specific keyboard shortcuts (F12, Inspect Element, View Source, Save) -$(document).keydown(function (event) { +// Disable specific keyboard shortcuts, right-click, and text selection +$(document).on('keydown', function (event) { if (event.keyCode == 123 || // F12 (event.ctrlKey && event.shiftKey && event.keyCode == 73) || // Ctrl+Shift+I (event.ctrlKey && event.keyCode == 85) || // Ctrl+U (event.ctrlKey && event.keyCode == 83)) { // Ctrl+S return false; } +}).on('contextmenu selectstart', function () { + return false; }); /* --------------------------------------------------------------------------------------------- */ @@ -86,6 +102,13 @@ $(document).ready(function () { // Smooth scroll to top $('.back-to-top').click(function () { $('html, body').animate({ scrollTop: 0 }, 100); }); + // Scroll active sidebar item into view on page load. + var activeItems = document.querySelectorAll('.sidebar-item-active'); + if (activeItems.length > 0) { + var lastActiveItem = activeItems[activeItems.length - 1]; + lastActiveItem.scrollIntoView({ block: 'center', behavior: 'auto' }); + } + var today = new Date().toLocaleDateString(); var is_shown = sessionStorage.getItem('status'); var backToTop = document.getElementById("backtotop"); @@ -203,4 +226,32 @@ gtag('config', 'G-8ZJLP1KH1R', { /* --------------------------------------------------------------------------------------------- */ -var year = new Date().getFullYear(); \ No newline at end of file +var year = new Date().getFullYear(); + +/* --------------------------------------------------------------------------------------------- */ +// Copy to Clipboard for Code Blocks +/* --------------------------------------------------------------------------------------------- */ +document.addEventListener('DOMContentLoaded', function() { + const copyButtons = document.querySelectorAll('.copy-btn'); + + copyButtons.forEach(button => { + button.addEventListener('click', function() { + const card = this.closest('.card'); + if (card) { + const pre = card.nextElementSibling; + if (pre && pre.tagName === 'PRE') { + const pageUrl = window.location.href; + const codeToCopy = pageUrl + '\n\n' + pre.innerText; + navigator.clipboard.writeText(codeToCopy).then(() => { + this.classList.add('show-tooltip'); + this.setAttribute('title', 'Copied!'); + setTimeout(() => { + this.classList.remove('show-tooltip'); + this.setAttribute('title', 'Copy code'); + }, 2000); + }).catch(err => { console.error('Failed to copy text: ', err); }); + } + } + }); + }); +}); \ No newline at end of file diff --git a/pages/tools/calculators/common/gdldvld.html b/pages/tools/calculators/common/gdldvld.html index 78f54e9..4710427 100644 --- a/pages/tools/calculators/common/gdldvld.html +++ b/pages/tools/calculators/common/gdldvld.html @@ -13,7 +13,7 @@
Result
-
0
+
-
@@ -121,7 +121,7 @@ expressionResult.classList.remove('text-danger'); if (text === '') { - expressionResult.textContent = '0'; + expressionResult.textContent = '-'; return; } @@ -151,7 +151,7 @@ if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') { e.preventDefault(); btnTrim.click(); } }); - // Perform an initial update on page load to set the default '0' values. + // Perform an initial update on page load. update(); })(); \ No newline at end of file From d87530eea374fee43ea7f4e3bf94fc397a8f0602 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 20:01:53 +0530 Subject: [PATCH 06/51] v26.1.6 --- assets/js/gd.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/assets/js/gd.js b/assets/js/gd.js index 2a7ee7b..70bcec0 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -6,9 +6,8 @@ try { } // Touch event variables for swipe detection -var xDown = null, yDown = null, xUp = null, yUp = null; +var xDown = null, yDown = null; document.addEventListener('touchstart', touchstart, { passive: true }); -document.addEventListener('touchmove', touchmove, { passive: true }); document.addEventListener('touchend', touchend, { passive: true }); // Capture the starting coordinates of a touch event @@ -19,28 +18,32 @@ function touchstart(evt) { yDown = firstTouch.clientY; } -// Track the movement coordinates during a touch event -function touchmove(evt) { - if (!xDown || !yDown || !evt.touches || evt.touches.length === 0) return; - xUp = evt.touches[0].clientX; - yUp = evt.touches[0].clientY; -} - // Handle the end of a touch event to determine swipe direction -function touchend() { - var xDiff = xUp - xDown, yDiff = yUp - yDown; - // Check if the horizontal movement is significant enough to be considered a swipe - if ((Math.abs(xDiff) > Math.abs(yDiff)) && (Math.abs(xDiff) > 0.6 * document.body.clientWidth)) { +function touchend(evt) { + if (!xDown || !yDown || !evt.changedTouches || evt.changedTouches.length === 0) { + return; + } + + const xUp = evt.changedTouches[0].clientX; + const yUp = evt.changedTouches[0].clientY; + + const xDiff = xUp - xDown; + const yDiff = yUp - yDown; + + // A swipe is mostly horizontal and at least 30% of the screen width. + if (Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 0.3 * document.body.clientWidth) { if (xDiff > 0) { // Swipe right: Open left sidebar - $('.leftsidebar-collapse').toggleClass('open') - } - else { + $('.leftsidebar-collapse').toggleClass('open'); + } else { // Swipe left: Close left sidebar - $('.leftsidebar-collapse').removeClass('open') + $('.leftsidebar-collapse').removeClass('open'); } } - xDown = null, yDown = null; + + // Reset values + xDown = null; + yDown = null; } // Sidebar and UI interaction handlers From 561585675faee191ef24df5d8da71374585e2058 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 20:13:38 +0530 Subject: [PATCH 07/51] v26.1.7 --- _includes/footer_app.html | 3 +++ assets/js/gd.js | 22 +++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/_includes/footer_app.html b/_includes/footer_app.html index 62f2940..adbcdb4 100644 --- a/_includes/footer_app.html +++ b/_includes/footer_app.html @@ -146,6 +146,9 @@ let virtualIndex = currentIndex; footer.addEventListener('touchstart', e => { touchStartX = e.changedTouches[0].screenX; }, {passive: true}); footer.addEventListener('touchend', e => { + // Stop event from bubbling up to the document, preventing conflict with global swipe handlers. + e.stopPropagation(); + touchEndX = e.changedTouches[0].screenX; const distance = touchEndX - touchStartX; const numTabs = tabs.length; diff --git a/assets/js/gd.js b/assets/js/gd.js index 70bcec0..5c2cbde 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -20,20 +20,36 @@ function touchstart(evt) { // Handle the end of a touch event to determine swipe direction function touchend(evt) { + // Do not trigger swipe when a modal is open to prevent conflicts. + if ($('.modal.show').length > 0) { + return; + } + if (!xDown || !yDown || !evt.changedTouches || evt.changedTouches.length === 0) { return; } + // Do not trigger sidebar swipe on elements that may have their own horizontal scroll/swipe. + const target = evt.target; + if (target.closest('pre, .board')) { + xDown = null; + yDown = null; + return; + } + const xUp = evt.changedTouches[0].clientX; const yUp = evt.changedTouches[0].clientY; const xDiff = xUp - xDown; const yDiff = yUp - yDown; - // A swipe is mostly horizontal and at least 30% of the screen width. - if (Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 0.3 * document.body.clientWidth) { + // Disable sidebar swipe on the main "about" page where it is hidden. + const isAboutHome = (typeof GD_PATH_1 !== 'undefined' && GD_PATH_1 === 'about' && typeof GD_PATH_2 !== 'undefined' && GD_PATH_2 === ''); + + // A swipe is mostly horizontal and at least 50px. + if (!isAboutHome && Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 50) { if (xDiff > 0) { - // Swipe right: Open left sidebar + // Swipe right: Toggle left sidebar $('.leftsidebar-collapse').toggleClass('open'); } else { // Swipe left: Close left sidebar From c7be8613d0158f716219aceedeb92405b6e5029f Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 20:17:34 +0530 Subject: [PATCH 08/51] Revert "v26.1.7" This reverts commit 561585675faee191ef24df5d8da71374585e2058. --- _includes/footer_app.html | 3 --- assets/js/gd.js | 22 +++------------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/_includes/footer_app.html b/_includes/footer_app.html index adbcdb4..62f2940 100644 --- a/_includes/footer_app.html +++ b/_includes/footer_app.html @@ -146,9 +146,6 @@ let virtualIndex = currentIndex; footer.addEventListener('touchstart', e => { touchStartX = e.changedTouches[0].screenX; }, {passive: true}); footer.addEventListener('touchend', e => { - // Stop event from bubbling up to the document, preventing conflict with global swipe handlers. - e.stopPropagation(); - touchEndX = e.changedTouches[0].screenX; const distance = touchEndX - touchStartX; const numTabs = tabs.length; diff --git a/assets/js/gd.js b/assets/js/gd.js index 5c2cbde..70bcec0 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -20,36 +20,20 @@ function touchstart(evt) { // Handle the end of a touch event to determine swipe direction function touchend(evt) { - // Do not trigger swipe when a modal is open to prevent conflicts. - if ($('.modal.show').length > 0) { - return; - } - if (!xDown || !yDown || !evt.changedTouches || evt.changedTouches.length === 0) { return; } - // Do not trigger sidebar swipe on elements that may have their own horizontal scroll/swipe. - const target = evt.target; - if (target.closest('pre, .board')) { - xDown = null; - yDown = null; - return; - } - const xUp = evt.changedTouches[0].clientX; const yUp = evt.changedTouches[0].clientY; const xDiff = xUp - xDown; const yDiff = yUp - yDown; - // Disable sidebar swipe on the main "about" page where it is hidden. - const isAboutHome = (typeof GD_PATH_1 !== 'undefined' && GD_PATH_1 === 'about' && typeof GD_PATH_2 !== 'undefined' && GD_PATH_2 === ''); - - // A swipe is mostly horizontal and at least 50px. - if (!isAboutHome && Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 50) { + // A swipe is mostly horizontal and at least 30% of the screen width. + if (Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 0.3 * document.body.clientWidth) { if (xDiff > 0) { - // Swipe right: Toggle left sidebar + // Swipe right: Open left sidebar $('.leftsidebar-collapse').toggleClass('open'); } else { // Swipe left: Close left sidebar From af55c06f42e0a19008e4d73aed78a3c0bde6afe8 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 20:18:30 +0530 Subject: [PATCH 09/51] Revert "v26.1.6" This reverts commit d87530eea374fee43ea7f4e3bf94fc397a8f0602. --- assets/js/gd.js | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/assets/js/gd.js b/assets/js/gd.js index 70bcec0..2a7ee7b 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -6,8 +6,9 @@ try { } // Touch event variables for swipe detection -var xDown = null, yDown = null; +var xDown = null, yDown = null, xUp = null, yUp = null; document.addEventListener('touchstart', touchstart, { passive: true }); +document.addEventListener('touchmove', touchmove, { passive: true }); document.addEventListener('touchend', touchend, { passive: true }); // Capture the starting coordinates of a touch event @@ -18,32 +19,28 @@ function touchstart(evt) { yDown = firstTouch.clientY; } -// Handle the end of a touch event to determine swipe direction -function touchend(evt) { - if (!xDown || !yDown || !evt.changedTouches || evt.changedTouches.length === 0) { - return; - } - - const xUp = evt.changedTouches[0].clientX; - const yUp = evt.changedTouches[0].clientY; - - const xDiff = xUp - xDown; - const yDiff = yUp - yDown; +// Track the movement coordinates during a touch event +function touchmove(evt) { + if (!xDown || !yDown || !evt.touches || evt.touches.length === 0) return; + xUp = evt.touches[0].clientX; + yUp = evt.touches[0].clientY; +} - // A swipe is mostly horizontal and at least 30% of the screen width. - if (Math.abs(xDiff) > Math.abs(yDiff) && Math.abs(xDiff) > 0.3 * document.body.clientWidth) { +// Handle the end of a touch event to determine swipe direction +function touchend() { + var xDiff = xUp - xDown, yDiff = yUp - yDown; + // Check if the horizontal movement is significant enough to be considered a swipe + if ((Math.abs(xDiff) > Math.abs(yDiff)) && (Math.abs(xDiff) > 0.6 * document.body.clientWidth)) { if (xDiff > 0) { // Swipe right: Open left sidebar - $('.leftsidebar-collapse').toggleClass('open'); - } else { + $('.leftsidebar-collapse').toggleClass('open') + } + else { // Swipe left: Close left sidebar - $('.leftsidebar-collapse').removeClass('open'); + $('.leftsidebar-collapse').removeClass('open') } } - - // Reset values - xDown = null; - yDown = null; + xDown = null, yDown = null; } // Sidebar and UI interaction handlers From bcddc0cae74418749dbfe6713d0885e6ea44e1f9 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 20:31:06 +0530 Subject: [PATCH 10/51] v26.1.8 --- _includes/footer_app.html | 57 +-------------------------------------- assets/js/gd.js | 15 +++-------- 2 files changed, 4 insertions(+), 68 deletions(-) diff --git a/_includes/footer_app.html b/_includes/footer_app.html index 62f2940..9698871 100644 --- a/_includes/footer_app.html +++ b/_includes/footer_app.html @@ -43,11 +43,6 @@ \ No newline at end of file diff --git a/assets/js/gd.js b/assets/js/gd.js index 2a7ee7b..675bdb9 100644 --- a/assets/js/gd.js +++ b/assets/js/gd.js @@ -12,19 +12,10 @@ document.addEventListener('touchmove', touchmove, { passive: true }); document.addEventListener('touchend', touchend, { passive: true }); // Capture the starting coordinates of a touch event -function touchstart(evt) { - if (!evt.touches || evt.touches.length === 0) return; - const firstTouch = evt.touches[0]; - xDown = firstTouch.clientX; - yDown = firstTouch.clientY; -} +function touchstart(evt) { const firstTouch = (evt.touches || evt.originalEvent.touches)[0]; xDown = firstTouch.clientX; yDown = firstTouch.clientY; } // Track the movement coordinates during a touch event -function touchmove(evt) { - if (!xDown || !yDown || !evt.touches || evt.touches.length === 0) return; - xUp = evt.touches[0].clientX; - yUp = evt.touches[0].clientY; -} +function touchmove(evt) { if (!xDown || !yDown) return; xUp = evt.touches[0].clientX; yUp = evt.touches[0].clientY; } // Handle the end of a touch event to determine swipe direction function touchend() { @@ -101,7 +92,7 @@ window.isGoDardaApp = window.isWebview || (window.userAgent && window.userAgent. $(document).ready(function () { // Smooth scroll to top $('.back-to-top').click(function () { $('html, body').animate({ scrollTop: 0 }, 100); }); - + // Scroll active sidebar item into view on page load. var activeItems = document.querySelectorAll('.sidebar-item-active'); if (activeItems.length > 0) { From 1041b37bcb60ddc6be46422664af3793b90e25a4 Mon Sep 17 00:00:00 2001 From: Shubham Darda Date: Fri, 2 Jan 2026 22:23:45 +0530 Subject: [PATCH 11/51] v26.1.9 --- _includes/ads.html | 4 +- _includes/footer_app.html | 6 +- assets/js/converter.js | 37 +++- assets/js/gd.js | 378 +++++++++++++++++++++----------------- assets/js/search.js | 44 ++++- 5 files changed, 293 insertions(+), 176 deletions(-) diff --git a/_includes/ads.html b/_includes/ads.html index 4a7a76c..caa7f32 100644 --- a/_includes/ads.html +++ b/_includes/ads.html @@ -1,3 +1,4 @@ +{%- if path[3] != nil -%}
Advertisement
-
\ No newline at end of file + +{%- endif -%} \ No newline at end of file diff --git a/_includes/footer_app.html b/_includes/footer_app.html index 9698871..6571437 100644 --- a/_includes/footer_app.html +++ b/_includes/footer_app.html @@ -2,7 +2,7 @@ {%- elsif path[1] == "about" and path[2] != nil -%}{%- assign about_section = "about_home_false" -%}{%- endif -%} -
Tip: results update as you type. Use 'Select Conversion Options' to customize the output.
+
Tip: results update as you type. Use 'Select Conversions' to customize the output.
@@ -22,13 +22,33 @@
+
+ +
+
+
+ + + + +