<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.afa.codes/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://docs.afa.codes/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="https://docs.afa.codes/w/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-07-04T05:21:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://docs.afa.codes/w/index.php?title=MediaWiki:Common.js&amp;diff=409&amp;oldid=prev</id>
		<title>Admin at 23:12, 6 January 2026</title>
		<link rel="alternate" type="text/html" href="https://docs.afa.codes/w/index.php?title=MediaWiki:Common.js&amp;diff=409&amp;oldid=prev"/>
		<updated>2026-01-06T23:12:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:12, 6 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l89&quot;&gt;Line 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   });&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   });&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;});&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$(document).ready(function() {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    // Procura por qualquer tag &amp;lt;a&amp;gt; que tenha &#039;redlink=1&#039; no endereço&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    $(&#039;a[href*=&quot;redlink=1&quot;]&#039;).each(function() {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        // Substitui o link pelo que estiver dentro dele (texto, negritos, etc)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        $(this).replaceWith($(this).contents());&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    });&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;});&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;});&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:1.41:old-5:rev-409:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://docs.afa.codes/w/index.php?title=MediaWiki:Common.js&amp;diff=5&amp;oldid=prev</id>
		<title>Admin: Criou página com &#039;/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */ mw.hook(&#039;wikipage.content&#039;).add(function () {   console.log(&quot;[Language Menu] Script started&quot;);    var path = mw.config.get(&quot;wgPageName&quot;);   console.log(&quot;[Language Menu] Current path:&quot;, path);    var currentLang = &#039;&#039;;   var base = path;   var langs = [&#039;pt&#039;, &#039;en&#039;, &#039;es&#039;];    // Detecta idioma pelo sufixo   langs.forEach(function (lang) {     var suffix = &#039;/&#039;...&#039;</title>
		<link rel="alternate" type="text/html" href="https://docs.afa.codes/w/index.php?title=MediaWiki:Common.js&amp;diff=5&amp;oldid=prev"/>
		<updated>2026-01-04T00:55:00Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;&lt;span class=&quot;autocomment&quot;&gt;Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki: &lt;/span&gt; mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function () {   console.log(&amp;quot;[Language Menu] Script started&amp;quot;);    var path = mw.config.get(&amp;quot;wgPageName&amp;quot;);   console.log(&amp;quot;[Language Menu] Current path:&amp;quot;, path);    var currentLang = &amp;#039;&amp;#039;;   var base = path;   var langs = [&amp;#039;pt&amp;#039;, &amp;#039;en&amp;#039;, &amp;#039;es&amp;#039;];    // Detecta idioma pelo sufixo   langs.forEach(function (lang) {     var suffix = &amp;#039;/&amp;#039;...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */&lt;br /&gt;
mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function () {&lt;br /&gt;
  console.log(&amp;quot;[Language Menu] Script started&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  var path = mw.config.get(&amp;quot;wgPageName&amp;quot;);&lt;br /&gt;
  console.log(&amp;quot;[Language Menu] Current path:&amp;quot;, path);&lt;br /&gt;
&lt;br /&gt;
  var currentLang = &amp;#039;&amp;#039;;&lt;br /&gt;
  var base = path;&lt;br /&gt;
  var langs = [&amp;#039;pt&amp;#039;, &amp;#039;en&amp;#039;, &amp;#039;es&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
  // Detecta idioma pelo sufixo&lt;br /&gt;
  langs.forEach(function (lang) {&lt;br /&gt;
    var suffix = &amp;#039;/&amp;#039; + lang;&lt;br /&gt;
    if (path.toLowerCase().endsWith(suffix)) {&lt;br /&gt;
      currentLang = lang;&lt;br /&gt;
      base = path.slice(0, -suffix.length);&lt;br /&gt;
      console.log(&amp;quot;[Language Menu] Detected language:&amp;quot;, lang, &amp;quot;Base:&amp;quot;, base);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Se não detectou idioma → assume inglês (default)&lt;br /&gt;
  if (!currentLang) currentLang = &amp;#039;en&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  // Labels e links&lt;br /&gt;
  var labels = {&lt;br /&gt;
    &amp;#039;pt&amp;#039;: &amp;#039;Português&amp;#039;,&lt;br /&gt;
    &amp;#039;en&amp;#039;: &amp;#039;English&amp;#039;,&lt;br /&gt;
    &amp;#039;es&amp;#039;: &amp;#039;Español&amp;#039;&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  var links = {};&lt;br /&gt;
  if (base === &amp;#039;Main_Page&amp;#039; || base === &amp;#039;Página_principal&amp;#039;) {&lt;br /&gt;
    links = {&lt;br /&gt;
      &amp;#039;pt&amp;#039;: &amp;#039;Página_principal/pt&amp;#039;,&lt;br /&gt;
      &amp;#039;en&amp;#039;: &amp;#039;Main_Page&amp;#039;,     // inglês é base&lt;br /&gt;
      &amp;#039;es&amp;#039;: &amp;#039;Main_Page/es&amp;#039;&lt;br /&gt;
    };&lt;br /&gt;
  } else {&lt;br /&gt;
    links = {&lt;br /&gt;
      &amp;#039;pt&amp;#039;: base + &amp;#039;/pt&amp;#039;,&lt;br /&gt;
      &amp;#039;en&amp;#039;: base,            // inglês é sem sufixo&lt;br /&gt;
      &amp;#039;es&amp;#039;: base + &amp;#039;/es&amp;#039;&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Monta menu de idiomas&lt;br /&gt;
  function insertContent(id, lang) {&lt;br /&gt;
    var el = document.getElementById(id);&lt;br /&gt;
    if (!el) return;&lt;br /&gt;
&lt;br /&gt;
    if (lang === currentLang) {&lt;br /&gt;
      el.textContent = labels[lang];&lt;br /&gt;
    } else {&lt;br /&gt;
      el.innerHTML = &amp;#039;&amp;lt;a class=&amp;quot;lang-menu-link&amp;quot; href=&amp;quot;&amp;#039; + mw.util.getUrl(links[lang]) + &amp;#039;&amp;quot;&amp;gt;&amp;#039; + labels[lang] + &amp;#039;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  insertContent(&amp;quot;link-pt&amp;quot;, &amp;quot;pt&amp;quot;);&lt;br /&gt;
  insertContent(&amp;quot;link-en&amp;quot;, &amp;quot;en&amp;quot;);&lt;br /&gt;
  insertContent(&amp;quot;link-es&amp;quot;, &amp;quot;es&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // 🌀 Reescreve links do conteúdo&lt;br /&gt;
  console.log(&amp;quot;[Language Menu] Rewriting content links for:&amp;quot;, currentLang);&lt;br /&gt;
&lt;br /&gt;
  //document.querySelectorAll(&amp;#039;#mw-content-text a[href^=&amp;quot;/&amp;quot;]&amp;#039;).forEach(function (link) {&lt;br /&gt;
  document.querySelectorAll(&amp;#039;a[href^=&amp;quot;/doc/&amp;quot;]&amp;#039;).forEach(function (link) {&lt;br /&gt;
    if (link.classList.contains(&amp;#039;lang-menu-link&amp;#039;)) return; // ignora menu de idiomas&lt;br /&gt;
&lt;br /&gt;
    var href = link.getAttribute(&amp;#039;href&amp;#039;);&lt;br /&gt;
    if (!href) return;&lt;br /&gt;
&lt;br /&gt;
    var hrefNormalized = decodeURIComponent(href.replace(/\/$/, &amp;#039;&amp;#039;));&lt;br /&gt;
&lt;br /&gt;
    // Ignora âncoras e parâmetros&lt;br /&gt;
    if (href.includes(&amp;#039;?&amp;#039;) || href.includes(&amp;#039;#&amp;#039;)) return;&lt;br /&gt;
&lt;br /&gt;
    // Ignora namespaces especiais&lt;br /&gt;
    if (hrefNormalized.match(/\/(Special:|File:|Category:|Help:|MediaWiki:)/)) return;&lt;br /&gt;
&lt;br /&gt;
    // Ignora se já tem idioma&lt;br /&gt;
    if (hrefNormalized.match(/\/(pt|en|es)$/)) return;&lt;br /&gt;
&lt;br /&gt;
    // Adiciona idioma se não for inglês&lt;br /&gt;
    if (currentLang !== &amp;#039;en&amp;#039;) {&lt;br /&gt;
      var newHref = hrefNormalized + &amp;#039;/&amp;#039; + currentLang;&lt;br /&gt;
      link.setAttribute(&amp;#039;href&amp;#039;, newHref);&lt;br /&gt;
      console.log(&amp;quot;[Language Menu] Link modificado:&amp;quot;, href, &amp;quot;→&amp;quot;, newHref);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>