Gadget-Bibliography.js
From ACES
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: Press Ctrl-F5.
var allowedPages = [
"Publications"
]
$(function () {
"use strict";
if (window.BibLoaded || !allowedPages.includes(mw.config.get('wgPageName'))) {
return;
}
// window.BibLoaded = true;
var scriptLoaded = 0;
function run() {
$(".bibliography").each(function (i, e) {
var Cite = require("citation-js");
var rawBib = e.textContent;
var bib = Cite(rawBib);
console.log(bib);
var data = []
bib.data.forEach(function(e) {
e.render = Cite(e).format('bibliography', {
format: 'html',
template: 'apa',
lang: 'en-US'
})
console.log(e)
data.push(e)
})
console.log("!");
var tb = $(".bibliography-table");
tb.append($("<thead>"));
tb.append($("<tbody>"));
tb.dataTable({
data: data,
columns: [
{ data: "render" },
],
});
});
}
function loadScripts(scripts, callback) {
function onLoaded() {
scriptLoaded++;
if (scriptLoaded === scripts.length + 1) callback();
}
scripts.forEach(function (s) {
mw.loader.getScript(s).then(onLoaded);
});
mw.hook("wikipage.content").add(onLoaded);
}
mw.loader.load(
"https:////cdn.datatables.net/1.11.0/css/jquery.dataTables.min.css",
"text/css"
);
loadScripts(
[
"https://unpkg.com/citation-js@0.5.1/build/citation.min.js",
"https://cdn.datatables.net/1.11.0/js/jquery.dataTables.min.js",
],
run
);
});