Release Notes Generator
Release Details
Add Change Item
Draft Preview
Start typing details and adding items to see the preview here.
Change Log History
This view contains all finalized releases. The PDF will contain the content visible below.
Configuration
Customize the "Types" available in the dropdown.
Start typing details and adding items to see the preview here.
'; return; } let html = `
${d.version || 'vX.X.X'}
${d.date || 'YYYY-MM-DD'}
${d.intro ? `${d.intro}
` : ''}
-
`;
d.items.forEach((item, idx) => {
const badgeClass = srntGetBadgeClass(item.type);
html += `
- ${item.type} ${item.desc} `; }); html += '
No releases found.
'; return; } srntState.history.forEach(rel => { let listHtml = '- ';
rel.items.forEach(item => {
const badgeClass = srntGetBadgeClass(item.type);
listHtml += `
- ${item.type} ${item.desc} `; }); listHtml += '
${rel.version}
${rel.date}
${rel.intro ? `${rel.intro}
` : ''}
${listHtml}
`;
srntHistoryLog.appendChild(entry);
});
}
// --- Config Logic ---
function srntSaveConfig() {
const t1 = document.getElementById('cfg-t1').value;
const t2 = document.getElementById('cfg-t2').value;
const t3 = document.getElementById('cfg-t3').value;
const t4 = document.getElementById('cfg-t4').value;
srntState.config.types = [t1, t2, t3, t4].filter(t => t.trim() !== '');
srntPopulateTypeSelect();
srntRenderHistory(); // Re-render to apply badge color logic if keywords changed
alert('Configuration Saved!');
}
// --- PDF Generation ---
function srntGeneratePDF() {
// Select the history container
const element = document.getElementById('srnt-print-container');
const opt = {
margin: [15, 15, 15, 15],
filename: 'Release_Notes.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
};
html2pdf().set(opt).from(element).save();
}
