diff --git a/docs/index.html b/docs/index.html
index 9d406c0..40d9943 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -145,6 +145,17 @@
Online Converter
let isEngineReady = false;
let selectedFiles = []; // Maintain our own list of files
+ // Helper for creating download links
+ function createDownloadLink(url, filename, textContent) {
+ const dlLink = document.createElement('a');
+ dlLink.href = url;
+ dlLink.download = filename;
+ dlLink.textContent = textContent;
+ dlLink.style.fontWeight = 'bold';
+ dlLink.style.color = '#10b981';
+ downloadsContainer.appendChild(dlLink);
+ }
+
// 1. Fetch our comprehensive JSON database to populate dropdown and input filter
async function loadFormats() {
try {
@@ -323,13 +334,7 @@ Online Converter
// Single file, provide direct link
const blob = new Blob([data], { type: 'application/octet-stream' });
const url = URL.createObjectURL(blob);
- const dlLink = document.createElement('a');
- dlLink.href = url;
- dlLink.download = outFileName;
- dlLink.textContent = `⬇️ Download ${outFileName}`;
- dlLink.style.fontWeight = 'bold';
- dlLink.style.color = '#10b981';
- downloadsContainer.appendChild(dlLink);
+ createDownloadLink(url, outFileName, `⬇️ Download ${outFileName}`);
}
successCount++;
});
@@ -353,13 +358,7 @@ Online Converter
try {
const content = await zip.generateAsync({ type: "blob" });
const url = URL.createObjectURL(content);
- const dlLink = document.createElement('a');
- dlLink.href = url;
- dlLink.download = `converted_images.zip`;
- dlLink.textContent = `📦 Download All as ZIP (${successCount} files)`;
- dlLink.style.fontWeight = 'bold';
- dlLink.style.color = '#10b981';
- downloadsContainer.appendChild(dlLink);
+ createDownloadLink(url, 'converted_images.zip', `📦 Download All as ZIP (${successCount} files)`);
} catch (err) {
console.error("ZIP Generation Failed:", err);
failCount += successCount; // Consider it a failure if we can't zip