User:Fbstj/gadget/history-test.js
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* Add edit link to templates */ $(function () { function add_editsection_link(box) { if (!box.id) return; // FIXME: what does this do? const id = box.id.replace(/\.(\d+)/, '%$1') // generate an edit link const el = make_editsection_link('/edit/Template:'+ id) // get the title element const title = box.querySelector('.title') title.appendChild(el) } document.querySelectorAll('.infobox,.navbar').forEach(add_editsection_link) function enable_link(el) { el.style['pointer-events'] = 'auto' } document.querySelectorAll('.patrollink').forEach(enable_link) // move notices above indicators while (true) { const edit_box = document.querySelector('.editButtons') if (!!edit_box) break if (location.search != '') break var el = document.querySelector('.infobox+.notice') if (!el) { // check first child of #mw-content-text is a notice const txt = document.querySelector('#mw-content-text') if (txt.firstElementChild.classList.contains('notice')) el = txt.firstElementChild } if (!el) break const ind = document.querySelector('.mw-indicators') ind.parentElement.insertBefore(el, ind) } }) /* 2018-09-16 display Arcanum entry on Cite:Arcanum-X page */ $(function () { // check that there is an edit box if (!mw.config.get('wgCanonicalNamespace') !== 'Cite') return -1; // check that it's an Arcanum page const page_name = mw.config.get('wgPageName'); if (!page_name.startsWith('Cite:Arcanum-')) return -3; // work out the api url const entry = page_name.split('-')[1]; const url = 'https://wob.coppermind.net/api/entry/'+ entry +'/'; // start fetching from Arcanum fetch(url) .then(function(resp) { return resp.json() }) .then(function(json) { // debugging: console.log('Entry '+ entry, json); // create containing element const entry = document.createElement('article'); entry.classList.add('arcanum-entry'); // add lines json.lines.forEach(line => { // create speaker element const speaker = document.createElement('h4') speaker.innerText = line.speaker // append the speaker and html from the line entry.appendChild(entry) entry.innerText += line.text }) // place container on page console.log(entry) }) })