Jump to content

User:SkSlick/common.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
'use strict'
window.$inOwnUserspace =
  mw.config
    .get('wgRelevantUserName') ===
  mw.config
    .get('wgUserName')
/*alert(`${
  mw.config
    .get('wgRelevantUserName')
} = ${
  mw.config
    .get('wgUserName')} -> ${
  window.$inOwnUserspace
}`*/
// alert(window.$inOwnUserspace)
;(() => {
  let server = mw.config.get('wgServer')
  if (/^\w+\.m\./.test(document.location.host)) {
    server = server.replace(/(?<=^\/\/\w+\.)/, 'm.')
  }
  mw.util.addPortletLink(
    'p-tb',
    server +
    mw.config.get('wgArticlePath')
      .replace(
        '$1',
        'Special:PrefixIndex/' +
        mw.config.get('wgPageName') +
        '/'
      ),
    'Subpages')
})()

window.addEventListener("load", (event) => {
  
  if (window.$inOwnUserspace) {
    const name = mw.config
      .get('wgUserName')
      .toLowerCase()
    const classed = document
      .getElementsByClassName(
        "user-content-" + name
       )

    // h1 deco
    const sp = document
      .createElement('span')
    const fancy = ['in\xa0userspace']
    if (classed.length) {
      fancy[0] += '\xa0('

      const count = fancy[1] =
        document
          .createElement('span')
      count
        .append(classed.length)
      count
        .style.fontFamily =
          'monospace'

      fancy[2] = ')'
    }
    sp.append(...fancy)
    sp.style
      .marginTop = '-2em'
    sp.style
      .fontFamily = 'sans-serif'
    sp.style
      .fontSize = '50%'
    sp.style
      .fontStyle = 'italic'

    document
      .getElementById(
        "firstHeading")
      .append(
        '\t', sp)
    // process classed elems
    for (const element of classed) {
      element.style
        .display = "block"
    }
  }
})