Difference between revisions of "User:Fbstj/gadget/history-test.js"
Jump to navigation
Jump to search
m (that one needs to be html) |
m (try this) |
||
Line 66: | Line 66: | ||
// place container on page |
// place container on page |
||
console.log(entry_el); |
console.log(entry_el); |
||
+ | const props_el = document.querySelector('dl') |
||
+ | props_el.parentElement.insertBefore(entry_el, props_el); |
||
}); |
}); |
||
}); |
}); |
Revision as of 13:18, 16 September 2018
/* 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 it's an Arcanum page const page_name = mw.config.get('wgPageName'); if (!page_name.startsWith('Cite:Arcanum-')) return; // work out the api url const entry = page_name.split('-')[1]; const url = 'https://wob.coppermind.net/api/entry/'+ entry +'/'; // start fetching from Arcanum console.log('fetching '+ url); fetch(url) .then(function(resp) { return resp.json() }) .then(function(json) { // debugging: console.log('Entry '+ entry, json); // create containing element const entry_el = document.createElement('article'); entry_el.classList.add('arcanum-entry'); // add lines json.lines.forEach(function(line) { // create speaker element const speaker = document.createElement('h4'); speaker.innerText = line.speaker; // append the speaker and html from the line entry_el.appendChild(speaker); entry_el.innerHTML += line.text; }); // place container on page console.log(entry_el); const props_el = document.querySelector('dl') props_el.parentElement.insertBefore(entry_el, props_el); }); });