Don't let your headers dangle!
/**
* Don't let your headers dangle!
*
* My super cool blog
* thing <<<< dangling!
*/
function noDangle(selector, minWords) {
selector = selector || 'h1,h2,h3,h4,h5,h6'
minWords = minWords || 1
var undangle = function(text, minWords) {
minWords = minWords || 1
var parts = text.split(/\s/)
if (parts.length < 2) return text
return parts.slice(0, parts.length - minWords).join(' ') + ' ' + parts.slice(parts.length - minWords).join(' ')
}
Array().forEach.call(document.querySelectorAll(selector), function(el) {
while (el.children.length) {
el = el.children[el.children.length - 1]
}
var text = el.innerText
var replacement = undangle(text, minWords)
el.innerHTML = replacement
})
}