|
Tags: Manual revert Reverted |
| Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */
| | mw.loader.using('mediawiki.util', function () { |
| mw.loader.using('mediawiki.util').then(function () { | |
| function initAutoScroll() {
| |
| const container = document.getElementById('scrollable-articles');
| |
| if (!container) return;
| |
|
| |
|
| if (container.dataset.autoScrollInitialized) return;
| | window.addEventListener('load', function () { |
| container.dataset.autoScrollInitialized = 'true';
| |
|
| |
|
| if (!container.dataset.duplicated) { | | if (mw.config.get('wgNamespaceNumber') !== 0) return; |
| const originalChildren = Array.from(container.children);
| |
| originalChildren.forEach(child => {
| |
| const clone = child.cloneNode(true);
| |
| container.appendChild(clone);
| |
| });
| |
| container.dataset.originalWidth = container.scrollWidth / 2;
| |
| container.dataset.duplicated = 'true';
| |
| }
| |
|
| |
|
| let scrollSpeed = window.innerWidth < 500 ? 0.3 : 0.5; | | // Prevent duplicates |
| let requestId; | | if (document.getElementById('bw-entity-schema')) return; |
|
| |
|
| function autoScroll() { | | const infobox = document.querySelector('table.infobox'); |
| container.scrollLeft += scrollSpeed;
| | if (!infobox) return; |
| const originalWidth = parseFloat(container.dataset.originalWidth);
| |
|
| |
|
| if (container.scrollLeft >= originalWidth) { | | const metaDesc = |
| container.scrollLeft -= originalWidth;
| | document.querySelector('meta[name="description"]')?.content || ""; |
| }
| |
|
| |
|
| requestId = requestAnimationFrame(autoScroll);
| | const pageTitle = mw.config.get('wgTitle'); |
| container._autoScrollRequestId = requestId;
| | const pageUrl = location.href; |
| }
| |
|
| |
|
| if (container._autoScrollRequestId) { | | const text = infobox.innerText.toLowerCase(); |
| cancelAnimationFrame(container._autoScrollRequestId);
| | let schema = null; |
| } | |
|
| |
|
| function pauseScroll() { | | /* ---------- COMPANY ---------- */ |
| if (container._autoScrollRequestId) { | | if (text.includes('industry') || text.includes('founded')) { |
| cancelAnimationFrame(container._autoScrollRequestId); | | schema = { |
| container._autoScrollRequestId = null; | | "@context": "https://schema.org", |
| } | | "@type": "Organization", |
| }
| | "name": pageTitle, |
| | "url": pageUrl, |
| | "description": metaDesc |
| | }; |
|
| |
|
| function resumeScroll() {
| | const logo = infobox.querySelector('img')?.src; |
| if (!container._autoScrollRequestId) { | | if (logo) schema.logo = logo; |
| autoScroll();
| |
| }
| |
| } | | } |
|
| |
|
| container.removeEventListener('mouseenter', pauseScroll); | | /* ---------- PERSON ---------- */ |
| container.removeEventListener('mouseleave', resumeScroll);
| | else if (text.includes('born')) { |
| | schema = { |
| | "@context": "https://schema.org", |
| | "@type": "Person", |
| | "name": pageTitle, |
| | "url": pageUrl, |
| | "description": metaDesc |
| | }; |
|
| |
|
| container.addEventListener('mouseenter', pauseScroll);
| | const image = infobox.querySelector('img')?.src; |
| container.addEventListener('mouseleave', resumeScroll);
| | if (image) schema.image = image; |
| | |
| autoScroll();
| |
| }
| |
| | |
| if (document.readyState === 'complete' || document.readyState === 'interactive') {
| |
| initAutoScroll();
| |
| } else {
| |
| document.addEventListener('DOMContentLoaded', initAutoScroll);
| |
| }
| |
| | |
| mw.hook('wikipage.content').add(initAutoScroll);
| |
| });
| |
| | |
| // Hide 'View source' tab using JS fallback
| |
| $(document).ready(function () {
| |
| $('#ca-viewsource').hide();
| |
| });
| |
| | |
| $(document).ready(function () {
| |
| // Auto-tag NeedsReview
| |
| if (mw.config.get("wgAction") === "edit" || mw.config.get("wgAction") === "submit") {
| |
| var userGroups = mw.config.get("wgUserGroups") || [];
| |
| | |
| if (userGroups.includes("user") && !userGroups.includes("approver") && !userGroups.includes("sysop")) {
| |
| var $wpTextbox1 = $("#wpTextbox1");
| |
| | |
| if ($wpTextbox1.length) { | |
| var currentText = $wpTextbox1.val();
| |
| | |
| // Add NeedsReview if not present
| |
| if (!currentText.includes("{{NeedsReview}}")) {
| |
| currentText = "{{NeedsReview}}\n" + currentText;
| |
| }
| |
| | |
| // Add Notability if it's a new page and not already added
| |
| var isNewPage = mw.config.get("wgIsArticle") === false;
| |
| if (isNewPage && !currentText.includes("{{Notability")) {
| |
| currentText = "{{Notability|reason=Please add reliable sources.|by=" + mw.config.get("wgUserName") + "|date=" + new Date().toLocaleString('default', { month: 'long', year: 'numeric' }) + "}}\n" + currentText;
| |
| }
| |
| | |
| // Set updated text
| |
| $wpTextbox1.val(currentText);
| |
| }
| |
| } | | } |
| }
| |
|
| |
|
| // Meta description injection (SEO)
| | if (!schema) return; |
| var desc = $('meta[name="knowlepedia-desc"]').attr("content");
| |
| if (desc) {
| |
| $('head').append('<meta name="description" content="' + desc + '">');
| |
| }
| |
| });
| |
|
| |
|
| | const script = document.createElement('script'); |
| | script.type = 'application/ld+json'; |
| | script.id = 'bw-entity-schema'; |
| | script.text = JSON.stringify(schema); |
|
| |
|
| | document.body.appendChild(script); |
|
| |
|
| | }); |
|
| |
|
| mw.loader.using('mediawiki.util').then(function () {
| |
| var schema = {
| |
| "@context": "https://schema.org",
| |
| "@type": "Person",
| |
| "name": "Gaurav Singh Chouhan",
| |
| "image": "https://commons.wikimedia.org/wiki/Special:FilePath/Gaurav_Singh_Chouhan.jpg",
| |
| "url": "https://knowlepedia.org/wiki/Gaurav_Singh_Chouhan",
| |
| "sameAs": [
| |
| "https://www.imdb.com/name/nm14658047/",
| |
| "https://www.instagram.com/mrgauravchouhan",
| |
| "https://www.linkedin.com/in/mrgauravchouhan",
| |
| "https://x.com/mrgauravchouhan",
| |
| "https://www.timesofmalwa.in/2025/06/gaurav-singh-chouhan.html"
| |
| ],
| |
| "birthDate": "1999-07-21",
| |
| "jobTitle": "Writer, Law Student, Motivational Speaker",
| |
| "alumniOf": "Chaudhary Charan Singh University",
| |
| "nationality": "Indian",
| |
| "description": "Gaurav Singh Chouhan is an Indian writer, motivational speaker, and BA LLB student, known for his public talks and biography 'From Pen to Purpose.'"
| |
| };
| |
|
| |
| var script = document.createElement('script');
| |
| script.type = 'application/ld+json';
| |
| script.text = JSON.stringify(schema);
| |
| document.head.appendChild(script);
| |
| });
| |
|
| |
|
| |
| $(document).ready(function () {
| |
| if (mw.config.get('wgNamespaceNumber') === 2 && mw.config.get('wgTitle').endsWith('/Dashboard')) {
| |
| mw.util.addPortletLink('p-personal', mw.config.get('wgServer') + '/wiki/User:' + mw.config.get('wgUserName') + '/Dashboard', '🛠 Dashboard');
| |
| }
| |
| });
| |
|
| |
| // Show lock icon for protected pages
| |
| $(function () {
| |
| if (mw.config.get("wgIsProtected")) {
| |
| $("<span>")
| |
| .addClass("mw-protected-icon")
| |
| .css({
| |
| float: "right",
| |
| marginLeft: "10px",
| |
| fontSize: "16px"
| |
| })
| |
| .html("🔒")
| |
| .prependTo(".mw-first-heading");
| |
| }
| |
| });
| |
|
| |
| // === Google Analytics 4 (GA4) - gtag ===
| |
| (function () {
| |
| var s = document.createElement('script');
| |
| s.async = true;
| |
| s.src = 'https://www.googletagmanager.com/gtag/js?id=G-BQD14XDBB1';
| |
| document.head.appendChild(s);
| |
|
| |
| window.dataLayer = window.dataLayer || [];
| |
| function gtag(){dataLayer.push(arguments);}
| |
| window.gtag = window.gtag || gtag;
| |
|
| |
| gtag('js', new Date());
| |
| gtag('config', 'G-BQD14XDBB1');
| |
| })();
| |
|
| |
| mw.loader.using('mediawiki.util').then(function () {
| |
| if (
| |
| mw.config.get('wgNamespaceNumber') === 0 &&
| |
| mw.config.get('wgTitle') === 'Trilok_Media'
| |
| ) {
| |
| var orgSchema = {
| |
| "@context": "https://schema.org",
| |
| "@type": "Organization",
| |
| "name": "Trilok Media",
| |
| "alternateName": "Trilok Media Agency",
| |
| "description": "Trilok Media is an Indian digital marketing and public relations agency providing SEO, online reputation management, media coverage, and brand visibility solutions.",
| |
| "foundingDate": "2022",
| |
| "founders": [
| |
| { "@type": "Person", "name": "Trilok Singh", "jobTitle": "Founder" },
| |
| { "@type": "Person", "name": "Kumkum Singh Chauhan", "jobTitle": "Co-Founder" }
| |
| ],
| |
| "url": "https://trilokmedia.in",
| |
| "logo": "https://trilokmedia.in/logo.png",
| |
| "address": {
| |
| "@type": "PostalAddress",
| |
| "addressCountry": "IN"
| |
| },
| |
| "areaServed": "India",
| |
| "sameAs": [
| |
| "https://www.facebook.com/trilokmedia.in/",
| |
| "https://www.instagram.com/trilokmedia.in/",
| |
| "https://www.linkedin.com/company/trilok-media/",
| |
| "https://x.com/trilokmedia_in"
| |
| ]
| |
| };
| |
|
| |
| var script = document.createElement('script');
| |
| script.type = 'application/ld+json';
| |
| script.text = JSON.stringify(orgSchema);
| |
| document.head.appendChild(script);
| |
| }
| |
| }); | | }); |