MediaWiki

Gadget-Bibliography.js

From ACES

Revision as of 03:08, 3 September 2021 by Yid010 (talk | contribs) (Created page with "var allowedPages = [ "Publications" ] $(function () { "use strict"; if (window.BibLoaded || !allowedPages.includes(mw.config.get('wgPageName'))) { return; } //...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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
  );
});