" + $('div[id="ref-' + ref + '"]').html() + "";
}).join("\n");
window.tippy(this, {
allowHTML: true,
content: refHtml,
maxWidth: 500,
interactive: true,
interactiveBorder: 10,
theme: 'light-border',
placement: 'bottom-start'
});
});
// fix footnotes in tables (#411)
// replacing broken distill.pub feature
$('table d-footnote').each(function() {
// we replace internal showAtNode methode which is triggered when hovering a footnote
this.hoverBox.showAtNode = function(node) {
// ported from https://github.com/distillpub/template/pull/105/files
calcOffset = function(elem) {
let x = elem.offsetLeft;
let y = elem.offsetTop;
// Traverse upwards until an `absolute` element is found or `elem`
// becomes null.
while (elem = elem.offsetParent && elem.style.position != 'absolute') {
x += elem.offsetLeft;
y += elem.offsetTop;
}
return { left: x, top: y };
}
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop
const bbox = node.getBoundingClientRect();
const offset = calcOffset(node);
this.show([offset.left + bbox.width, offset.top + bbox.height]);
}
})
// clear polling timer
clearInterval(tid);
// show body now that everything is ready
on_load_complete();
}
var tid = setInterval(distill_post_process, 50);
distill_post_process();
}
function init_downlevel() {
init_common();
// insert hr after d-title
$('.d-title').after($('
'));
// check if we have authors
var front_matter = JSON.parse($("#distill-front-matter").html());
var have_authors = front_matter.authors && front_matter.authors.length > 0;
// manage byline/border
if (!have_authors)
$('.d-byline').remove();
$('.d-byline').after($('
'));
$('.d-byline a').remove();
// remove toc
$('.d-contents').remove();
// move appendix elements
$('h1.appendix, h2.appendix').each(function(i, val) {
$(this).changeElementType('h3');
});
$('h3.appendix').each(function(i, val) {
$(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix'));
});
// inject headers into references and footnotes
var refs_header = $('');
refs_header.text('References');
$('#refs').prepend(refs_header);
var footnotes_header = $(''));
// trim code
$('pre>code').each(function(i, val) {
$(this).html($.trim($(this).html()));
});
// move posts-container right before article
$('.posts-container').insertBefore($('.d-article'));
$('body').addClass('downlevel');
on_load_complete();
}
function init_common() {
// jquery plugin to change element types
(function($) {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $("<" + newType + "/>", attrs).append($(this).contents());
});
};
})(jQuery);
// prevent underline for linked images
$('a > img').parent().css({'border-bottom' : 'none'});
// mark non-body figures created by knitr chunks as 100% width
$('.layout-chunk').each(function(i, val) {
var figures = $(this).find('img, .html-widget');
// ignore leaflet img layers (#106)
figures = figures.filter(':not(img[class*="leaflet"])')
if ($(this).attr('data-layout') !== "l-body") {
figures.css('width', '100%');
} else {
figures.css('max-width', '100%');
figures.filter("[width]").each(function(i, val) {
var fig = $(this);
fig.css('width', fig.attr('width') + 'px');
});
}
});
// auto-append index.html to post-preview links in file: protocol
// and in rstudio ide preview
$('.post-preview').each(function(i, val) {
if (window.location.protocol === "file:")
$(this).attr('href', $(this).attr('href') + "index.html");
});
// get rid of index.html references in header
if (window.location.protocol !== "file:") {
$('.distill-site-header a[href]').each(function(i,val) {
$(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./"));
});
}
// add class to pandoc style tables
$('tr.header').parent('thead').parent('table').addClass('pandoc-table');
$('.kable-table').children('table').addClass('pandoc-table');
// add figcaption style to table captions
$('caption').parent('table').addClass("figcaption");
// initialize posts list
if (window.init_posts_list)
window.init_posts_list();
// implmement disqus comment link
$('.disqus-comment-count').click(function() {
window.headroom_prevent_pin = true;
$('#disqus_thread').toggleClass('hidden');
if (!$('#disqus_thread').hasClass('hidden')) {
var offset = $(this).offset();
$(window).resize();
$('html, body').animate({
scrollTop: offset.top - 35
});
}
});
}
document.addEventListener('DOMContentLoaded', function() {
if (is_downlevel_browser())
init_downlevel();
else
window.addEventListener('WebComponentsReady', init_distill);
});
Writing software for someone else
Admin
2012-05-31