Skip to content

Latest commit

 

History

History
433 lines (394 loc) · 18.1 KB

publications.md

File metadata and controls

433 lines (394 loc) · 18.1 KB
layout title description categories exclude_from_all_pages
page
📄 Publications
Publications in the context of the project Opening Reproducible Research (o2r)
publications
true
<script type="text/javascript" src="{{ '/public/js/jquery.js' | absolute_url }}"></script> <script type="text/javascript" src="{{ '/public/js/xml2json.min.js' | absolute_url }}"></script> <script type="text/javascript" src="{{ '/public/js/mustache.js' | absolute_url }}"></script> <script type="text/javascript" src="{{ '/public/js/jquery.webui-popover.min.js' | absolute_url }}"></script> <script id="templatePublication" type="x-tmpl-mustache"> {% raw %}
  • {{#hasBadge}}publication badge{{/hasBadge}}{{title}}{{subtitle}} {{ authors }}
    {{publicationType}} {{journalName}} {{editor}} {{seriesTitle}} {{venue}} {{publicationYear}} {{#hasISBN}}ISBN: {{isbn}};{{/hasISBN}} {{#hasDoi}}doi: {{doi}};{{/hasDoi}} {{#hasURL}}
    {{url}}{{/hasURL}}
  • {% endraw %} </script> <script id="templateTalk" type="x-tmpl-mustache"> {% raw %}
  • {{title}} by {{speakers}}
    Presented at {{event}} ({{organiser}}) on {{date}}, {{venue}}.
    {{#hasDoi}}doi: {{doi}};{{/hasDoi}} {{#hasSlidesURL}}Download slides{{/hasSlidesURL}}
  • {% endraw %} </script> <script type="text/javascript"> var x2js = new X2JS(); parsePublications = function(data) { var publicationsData = x2js.xml_str2json(data).infoObjects; var publications = []; $(publicationsData.infoObject).each(function(index, value) { if(value._type === "Publication" && value._statusVisible === "true") { var crisId = value._id; var attributes = value.attribute; var title, reviewed, venue, subtitle, journalName, pubYear, authors, pubType, seriesTitle, editor, isbn, doi, url, comments, badge_url; $(attributes).each(function(index, value) { switch(value._name) { case "Title": title = value.data; break; case "Peer reviewed": if(value.data === "1570") { reviewed = true; } if(value.data === "1571") { reviewed = false; } break; case "Venue": venue = value.data; break; case "Subtitle": subtitle = value.data; break; case "Journal name": journalName = value.data; break; case "Publication year": pubYear = value.data; break; case "Authors": authors = value.data; break; case "Publication type": switch(value.data){ case "212": pubType = "Book"; break; case "569": pubType = "Book(editor)"; break; case "394": pubType = "Book chapter"; break; case "570": pubType = "Article(conference)"; break; case "1567": pubType = "Abstract(poster)"; break; case "210": pubType = "Article(journal)"; break; case "1566": pubType = "Article"; break; case "1568": pubType = "Encyclopedia entry"; break; case "568": pubType = "Recension"; break; case "1569": pubType = "Thesis"; break; case "211": pubType = "Report"; break; case "572": pubType = "Other"; break; case "1644": pubType = "Media"; break; } break; case "Title of series": seriesTitle = value.data; break; case "Editor": editor = value.data; break; case "ISBN": isbn = value.data; break; case "DOI": doi = value.data; break; case "URL": url = value.data; break; case "Comments": comments = value.data; break; } }); if((pubType === "Other" || pubType.includes("Article")) && (url.includes("arxiv") || journalName.toLowerCase().includes("preprint") || seriesTitle.toLowerCase().includes("preprint"))) { badge_url = "https://img.shields.io/badge/article-preprint-ff69b4.svg"; } if(pubType.includes("Article") && reviewed) { badge_url = "https://img.shields.io/badge/article-peer--reviewed-brightgreen.svg"; } var view = { crisId: crisId, badge_url: badge_url, hasBadge: function() { return badge_url != undefined; }, crisURL: "https://www.uni-muenster.de/forschungaz/publication/" + crisId + "?lang=en", title: title, authors: authors, subtitle: function() { if(subtitle.length != 0) return ": " + subtitle + "."; }, publicationType: function() { if(pubType.length != 0) return pubType + "."; }, publicationYear: function() { if(pubYear.length != 0) return pubYear + "."; }, venue: venue, journalName: function() { if(journalName.length != 0) return journalName + "."; }, editor: function(){ if(editor.length != 0 ) return editor + "."; }, seriesTitle: function(){ if(seriesTitle.length != 0) return seriesTitle + "."; }, hasISBN: function() { return isbn.length != 0; }, isbn: isbn, hasDoi: function() { return doi.length != 0; }, hasNoDoiUrl: function() { return !doi.includes('doi.org'); }, doi: doi, hasURL: function() { return url != 0; }, url: url }; publications.push(view); } // else not a publication }); return(publications); } parseTalks = function(data) { var talksData = x2js.xml_str2json(data).infoObjects.infoObject; var talks = []; $(talksData).each(function(index, value) { if(value._type === "Talk" && value._statusVisible === "true") { var crisId = value._id; var attributes = value.attribute; var title, date, event, venue, organiser, abstract, keywords, doi, slidesUrl, speakers, eventUrl, year; $(attributes).each(function(index, value) { switch(value._name) { case "Title": if(!title && value.data) { title = value.data; } break; case "Date of talk": date = value.data; break; case "Name of event": event = value.data; break; case "Venue of event": venue = value.data; break; case "Organiser of event": organiser = value.data; break; case "Abstract": if(!abstract && value.data) { abstract = value.data; } break; case "Keywords": keywords = value.data; break; case "DOI": doi = value.data; break; case "URL of slides": slidesUrl = value.data; break; case "Speakers": speakers = value.data; break; case "URL of event": eventUrl = value.data; break; case "Year of talk": year = value.data; break; } }); var view = { title: title, date: date, event: event, venue: venue, organiser: organiser, abstract: abstract, keywords: keywords, doi: doi, hasDoi: function() { return doi.length != 0; }, slidesUrl: slidesUrl, hasSlidesURL: function() { return slidesUrl.length != 0; }, speakers: speakers, eventUrl: eventUrl, year: year }; talks.push(view); } // else not a talk }); return(talks); } $(document).ready(function(){ var publications = []; var talks = []; // https://stackoverflow.com/questions/9229645/remove-duplicate-values-from-js-array function uniqByKeepFirst(a, key) { let seen = new Set(); return a.filter(item => { let k = key(item); return seen.has(k) ? false : seen.add(k); }); } $.when( $.ajax({ type: "get", url: "{{ '/public/publications/PROJ_has_PUBL_9520.xml' | absolute_url }}", dataType: "text", beforeSend: function(xhr){ xhr.overrideMimeType( "text/plain; charset=utf-8" ); }, // try to prevent Firefox's XML Parsing Error: syntax error success: function(data) { o2rPubs = parsePublications(data); publications = publications.concat(o2rPubs); }, error: function(xhr, status) { $("#publications").html("

    Error fetching publications: " + status + "

    Please visit https://www.uni-muenster.de/forschungaz/project/9520

    "); } }), $.ajax({ type: "get", url: "{{ '/public/publications/PROJ_has_PUBL_12343.xml' | absolute_url }}", dataType: "text", beforeSend: function(xhr){ xhr.overrideMimeType( "text/plain; charset=utf-8" ); }, success: function(data) { o2r2Pubs = parsePublications(data); publications = publications.concat(o2r2Pubs); }, error: function(xhr, status) { $("#publications").html("

    Error fetching publications: " + status + "

    Please visit https://www.uni-muenster.de/forschungaz/project/12343

    "); } }), $.ajax({ type: "get", url: "{{ '/public/publications/PROJ_has_TALK_9520.xml' | absolute_url }}", beforeSend: function(xhr){ xhr.overrideMimeType( "text/plain; charset=utf-8" ); }, dataType: "text", success: function(data) { o2rTalks = parseTalks(data); talks = talks.concat(o2rTalks); }, error: function(xhr, status) { $("#publications").html("

    Error fetching publications: " + status + "

    Please visit https://www.uni-muenster.de/forschungaz/project/9520

    "); } }), $.ajax({ type: "get", url: "{{ '/public/publications/PROJ_has_TALK_12343.xml' | absolute_url }}", beforeSend: function(xhr){ xhr.overrideMimeType( "text/plain; charset=utf-8" ); }, dataType: "text", success: function(data) { o2r2Talks = parseTalks(data); talks = talks.concat(o2r2Talks); }, error: function(xhr, status) { $("#publications").html("

    Error fetching publications: " + status + "

    Please visit https://www.uni-muenster.de/forschungaz/project/12343

    "); } }) ).then( function(){ publications.sort(function(a,b){ return b.crisId - a.crisId; }); talks.sort(function(a,b){ // Turn your strings into dates, and then subtract them // to get a value that is either negative, positive, or zero. return new Date(b.date) - new Date(a.date); }); // if the article and preprint have precisely the same title, the article // should be newer and earlier in the list after sorting publications = uniqByKeepFirst(publications, pub => pub.title); talks = uniqByKeepFirst(talks, talk => talk.title); var pubList = $("#publicationlist"); var talkList = $("#talklist"); // clear the list to remove the loader pubList.empty(); talkList.empty(); var templatePubs = $('#templatePublication').html(); Mustache.parse(templatePubs); var templateTalks = $('#templateTalk').html(); Mustache.parse(templateTalks); publications.forEach(function(element, index, array) { var output = Mustache.render(templatePubs, element); pubList.append(output); }); talks.forEach(function(element, index, array) { var output = Mustache.render(templateTalks, element); talkList.append(output); }); // activate popovers on the links with popover content $('a.show-pop').filter(function() { return $(this).attr('data-content'); }).webuiPopover({width: 600}); }); }); </script>

    Skip to the 🗣️ Talks below.

    🗣️ Talks

    (newest first)

    Go up to the 📄 Publications.

    Publications are loaded dynamically from the University of Münster's platform "Research from A-Z", see project descriptions for o2r and o2r2.