<script>
document.addEventListener('DOMContentLoaded', function() {
const MAX_WORDS = 450;
const READ_MORE_TEXT = 'Read More';
const READ_LESS_TEXT = 'Read Less';
const excerpts = document.querySelectorAll('.summary-excerpt.summary-excerpt-only');
function truncateContent() {
excerpts.forEach(excerpt => {
if (excerpt.dataset.processed) return;
const originalContent = excerpt.innerHTML;
excerpt.dataset.originalContent = originalContent;
let allText = '';
const paragraphs = excerpt.querySelectorAll('p');
paragraphs.forEach(p => {
allText += p.textContent.trim() + ' ';
});
const words = allText.trim().split(/\s+/);
if (words.length > MAX_WORDS) {
const truncatedWords = words.slice(0, MAX_WORDS);
const truncatedText = truncatedWords.join(' ');
const truncatedP = document.createElement('p');
truncatedP.className = 'tp-truncated-text';
truncatedP.innerHTML = truncatedText + '... ';
const readMoreSpan = document.createElement('span');
readMoreSpan.className = 'tp-read-more';
readMoreSpan.textContent = READ_MORE_TEXT;
truncatedP.appendChild(readMoreSpan);
excerpt.innerHTML = '';
excerpt.appendChild(truncatedP);
readMoreSpan.addEventListener('click', function(e) {
e.preventDefault();
expandContent(excerpt);
});
excerpt.dataset.processed = 'true';
}
});
}
function expandContent(excerpt) {
if (excerpt.dataset.originalContent) {
excerpt.innerHTML = excerpt.dataset.originalContent;
const readLessSpan = document.createElement('span');
readLessSpan.className = 'tp-read-less';
readLessSpan.textContent = READ_LESS_TEXT;
excerpt.appendChild(readLessSpan);
readLessSpan.addEventListener('click', function(e) {
e.preventDefault();
collapseContent(excerpt);
});
}
}
function collapseContent(excerpt) {
excerpt.dataset.processed = 'false';
truncateContent();
}
truncateContent();
window.addEventListener('mercury:load', function() {
setTimeout(truncateContent, 100);
});
});
</script>
<style>
.tp-read-more,
.tp-read-less {
text-decoration: underline;
cursor: pointer;
font-size: 13px;
}
.tp-read-more:hover,
.tp-read-less:hover {
opacity: 0.8;
}
.tp-read-less {
display: block;
}
.tp-truncated-text {
white-space: pre-wrap;
}
</style>