From 2bdacb75079b284610d1ba8d0fd5f637fb4dd25f Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:30:54 +0200
Subject: [PATCH 01/10] refactor: remove version update script and related
version handling code
---
package.json | 1 -
scripts/update-version.js | 64 ------------------------------
src/js/utils/simple-mode-footer.ts | 5 ---
src/version.ts | 18 ---------
4 files changed, 88 deletions(-)
delete mode 100644 scripts/update-version.js
delete mode 100644 src/version.ts
diff --git a/package.json b/package.json
index c740ec7..d4d47d8 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,6 @@
"test:watch": "vitest watch",
"build:docker": "vite build",
"format": "prettier --write .",
- "update-version": "node scripts/update-version.js",
"release": "node scripts/release.js patch",
"release:minor": "node scripts/release.js minor",
"release:major": "node scripts/release.js major",
diff --git a/scripts/update-version.js b/scripts/update-version.js
deleted file mode 100644
index 5092ab6..0000000
--- a/scripts/update-version.js
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Script to update version numbers in HTML files from package.json
- * Run this script whenever you need to sync HTML versions with package.json
- */
-
-import fs from 'fs';
-import path from 'path';
-import { fileURLToPath } from 'url';
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = path.dirname(__filename);
-
-// Read version from package.json
-const packageJson = JSON.parse(
- fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8')
-);
-const version = packageJson.version;
-
-// HTML files to update
-const htmlFiles = [
- 'index.html',
- 'about.html',
- 'contact.html',
- 'faq.html',
- 'privacy.html',
- 'terms.html',
- 'src/pages/add-stamps.html',
- 'src/pages/bookmark.html',
- 'src/pages/json-to-pdf.html',
- 'src/pages/pdf-multi-tool.html',
- 'src/pages/pdf-to-json.html',
- 'src/pages/table-of-contents.html',
-];
-
-console.log(`Updating version to ${version} in HTML files...`);
-
-let updatedCount = 0;
-
-htmlFiles.forEach((file) => {
- const filePath = path.join(__dirname, '..', file);
-
- if (!fs.existsSync(filePath)) {
- console.log(`⚠️ Skipping ${file} (not found)`);
- return;
- }
-
- let content = fs.readFileSync(filePath, 'utf8');
-
- // Replace version in X.X.X
- const regex = /()[^<]+(<\/span>)/g;
- const newContent = content.replace(regex, `$1${version}$2`);
-
- if (content !== newContent) {
- fs.writeFileSync(filePath, newContent, 'utf8');
- console.log(`✓ Updated ${file}`);
- updatedCount++;
- } else {
- console.log(`- ${file} (already up to date)`);
- }
-});
-
-console.log(`\nDone! Updated ${updatedCount} file(s) to version ${version}`);
diff --git a/src/js/utils/simple-mode-footer.ts b/src/js/utils/simple-mode-footer.ts
index 7d9ba50..05e26d3 100644
--- a/src/js/utils/simple-mode-footer.ts
+++ b/src/js/utils/simple-mode-footer.ts
@@ -20,11 +20,6 @@ if (__SIMPLE_MODE__) {
}
});
- const versionElement = document.getElementById('app-version-simple');
- if (versionElement) {
- versionElement.textContent = APP_VERSION;
- }
-
const langContainer = document.getElementById('simple-mode-lang-switcher');
if (langContainer) {
const switcher = createLanguageSwitcher();
diff --git a/src/version.ts b/src/version.ts
deleted file mode 100644
index 10951f3..0000000
--- a/src/version.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import packageJson from '../package.json';
-
-export const APP_VERSION = packageJson.version;
-
-export function injectVersion() {
- const versionElements = document.querySelectorAll('#app-version, #app-version-simple');
- versionElements.forEach((element) => {
- element.textContent = APP_VERSION;
- });
-}
-
-if (typeof document !== 'undefined') {
- if (document.readyState === 'loading') {
- document.addEventListener('DOMContentLoaded', injectVersion);
- } else {
- injectVersion();
- }
-}
From 36730996466a67005a85f254ccfe66135593279c Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:35:12 +0200
Subject: [PATCH 02/10] feat: add app version to handlebars configuration
---
vite.config.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/vite.config.ts b/vite.config.ts
index 1f8e3af..71d25d1 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -378,6 +378,7 @@ export default defineConfig(() => {
brandName: process.env.VITE_BRAND_NAME || '',
brandLogo: process.env.VITE_BRAND_LOGO || '',
footerText: process.env.VITE_FOOTER_TEXT || '',
+ appVersion: process.env.npm_package_version || 'Unknown',
},
}),
languageRouterPlugin(),
From b19c68c284426b03eac3129e6b8872731ae9a462 Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:36:34 +0200
Subject: [PATCH 03/10] feat: update footer embed app version during build
---
simple-index.html | 2 +-
src/partials/footer-simple.html | 2 +-
src/partials/footer.html | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/simple-index.html b/simple-index.html
index 58311f4..6351742 100644
--- a/simple-index.html
+++ b/simple-index.html
@@ -507,7 +507,7 @@
rights reserved.{{/if}}
- Version
+ Version {{appVersion}}
diff --git a/src/partials/footer-simple.html b/src/partials/footer-simple.html
index 9dedc19..43380c7 100644
--- a/src/partials/footer-simple.html
+++ b/src/partials/footer-simple.html
@@ -18,7 +18,7 @@
rights reserved.{{/if}}
- Version
+ Version {{appVersion}}
diff --git a/src/partials/footer.html b/src/partials/footer.html
index 44d8d9b..a158c23 100644
--- a/src/partials/footer.html
+++ b/src/partials/footer.html
@@ -17,7 +17,7 @@
Version
-
+ {{appVersion}}
From 1d747ffcef2a86abe43b1989fc6f6297d590cf86 Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:38:55 +0200
Subject: [PATCH 04/10] fix: add version display internationalization support
from footer.html
---
simple-index.html | 3 ++-
src/partials/footer-simple.html | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/simple-index.html b/simple-index.html
index 6351742..437c276 100644
--- a/simple-index.html
+++ b/simple-index.html
@@ -507,7 +507,8 @@
rights reserved.{{/if}}
- Version {{appVersion}}
+ Version
+ {{appVersion}}
diff --git a/src/partials/footer-simple.html b/src/partials/footer-simple.html
index 43380c7..6b893b2 100644
--- a/src/partials/footer-simple.html
+++ b/src/partials/footer-simple.html
@@ -18,7 +18,8 @@
rights reserved.{{/if}}
- Version {{appVersion}}
+ Version
+ {{appVersion}}
From 7e7409de08818f03f4528b12dcee1cd8899a72a5 Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:47:29 +0200
Subject: [PATCH 05/10] fix: remove unused APP_VERSION import from
simple-mode-footer
---
src/js/utils/simple-mode-footer.ts | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/js/utils/simple-mode-footer.ts b/src/js/utils/simple-mode-footer.ts
index 05e26d3..4235567 100644
--- a/src/js/utils/simple-mode-footer.ts
+++ b/src/js/utils/simple-mode-footer.ts
@@ -1,4 +1,3 @@
-import { APP_VERSION } from '../../version.js';
import { createLanguageSwitcher } from '../i18n/language-switcher.js';
// Handle simple mode adjustments for tool pages
From e22229475a1e0d601710ad41f12e991015c347ac Mon Sep 17 00:00:00 2001
From: Sebastian Espei
Date: Mon, 30 Mar 2026 01:56:06 +0200
Subject: [PATCH 06/10] refactor: remove version scripts from html pages
---
404.html | 1 -
about.html | 1 -
contact.html | 1 -
faq.html | 1 -
index.html | 1 -
licensing.html | 1 -
pdf-converter.html | 1 -
pdf-editor.html | 1 -
pdf-merge-split.html | 1 -
pdf-security.html | 1 -
privacy.html | 1 -
simple-index.html | 1 -
src/pages/add-attachments.html | 1 -
src/pages/add-blank-page.html | 1 -
src/pages/add-page-labels.html | 1 -
src/pages/add-stamps.html | 1 -
src/pages/add-watermark.html | 1 -
src/pages/adjust-colors.html | 1 -
src/pages/alternate-merge.html | 1 -
src/pages/background-color.html | 1 -
src/pages/bates-numbering.html | 1 -
src/pages/bmp-to-pdf.html | 1 -
src/pages/bookmark.html | 1 -
src/pages/cbz-to-pdf.html | 1 -
src/pages/change-permissions.html | 1 -
src/pages/combine-single-page.html | 1 -
src/pages/compare-pdfs.html | 1 -
src/pages/compress-pdf.html | 1 -
src/pages/crop-pdf.html | 1 -
src/pages/csv-to-pdf.html | 1 -
src/pages/decrypt-pdf.html | 1 -
src/pages/delete-pages.html | 1 -
src/pages/deskew-pdf.html | 1 -
src/pages/digital-sign-pdf.html | 1 -
src/pages/divide-pages.html | 1 -
src/pages/edit-attachments.html | 1 -
src/pages/edit-metadata.html | 1 -
src/pages/edit-pdf.html | 1 -
src/pages/email-to-pdf.html | 1 -
src/pages/encrypt-pdf.html | 1 -
src/pages/epub-to-pdf.html | 1 -
src/pages/excel-to-pdf.html | 1 -
src/pages/extract-attachments.html | 1 -
src/pages/extract-images.html | 1 -
src/pages/extract-pages.html | 1 -
src/pages/extract-tables.html | 1 -
src/pages/fb2-to-pdf.html | 1 -
src/pages/fix-page-size.html | 1 -
src/pages/flatten-pdf.html | 1 -
src/pages/font-to-outline.html | 1 -
src/pages/form-creator.html | 1 -
src/pages/form-filler.html | 1 -
src/pages/header-footer.html | 1 -
src/pages/heic-to-pdf.html | 1 -
src/pages/image-to-pdf.html | 1 -
src/pages/invert-colors.html | 1 -
src/pages/jpg-to-pdf.html | 1 -
src/pages/json-to-pdf.html | 1 -
src/pages/linearize-pdf.html | 1 -
src/pages/markdown-to-pdf.html | 1 -
src/pages/merge-pdf.html | 1 -
src/pages/mobi-to-pdf.html | 1 -
src/pages/n-up-pdf.html | 1 -
src/pages/ocr-pdf.html | 1 -
src/pages/odg-to-pdf.html | 1 -
src/pages/odp-to-pdf.html | 1 -
src/pages/ods-to-pdf.html | 1 -
src/pages/odt-to-pdf.html | 1 -
src/pages/organize-pdf.html | 1 -
src/pages/page-dimensions.html | 1 -
src/pages/page-numbers.html | 1 -
src/pages/pages-to-pdf.html | 1 -
src/pages/pdf-booklet.html | 1 -
src/pages/pdf-layers.html | 1 -
src/pages/pdf-to-bmp.html | 1 -
src/pages/pdf-to-cbz.html | 1 -
src/pages/pdf-to-csv.html | 1 -
src/pages/pdf-to-docx.html | 1 -
src/pages/pdf-to-excel.html | 1 -
src/pages/pdf-to-greyscale.html | 1 -
src/pages/pdf-to-jpg.html | 1 -
src/pages/pdf-to-json.html | 1 -
src/pages/pdf-to-markdown.html | 1 -
src/pages/pdf-to-pdfa.html | 1 -
src/pages/pdf-to-png.html | 1 -
src/pages/pdf-to-svg.html | 1 -
src/pages/pdf-to-text.html | 1 -
src/pages/pdf-to-tiff.html | 1 -
src/pages/pdf-to-webp.html | 1 -
src/pages/pdf-to-zip.html | 1 -
src/pages/pdf-workflow.html | 1 -
src/pages/png-to-pdf.html | 1 -
src/pages/posterize-pdf.html | 1 -
src/pages/powerpoint-to-pdf.html | 1 -
src/pages/prepare-pdf-for-ai.html | 1 -
src/pages/psd-to-pdf.html | 1 -
src/pages/pub-to-pdf.html | 1 -
src/pages/rasterize-pdf.html | 1 -
src/pages/remove-annotations.html | 1 -
src/pages/remove-blank-pages.html | 1 -
src/pages/remove-metadata.html | 1 -
src/pages/remove-restrictions.html | 1 -
src/pages/repair-pdf.html | 1 -
src/pages/reverse-pages.html | 1 -
src/pages/rotate-custom.html | 1 -
src/pages/rotate-pdf.html | 1 -
src/pages/rtf-to-pdf.html | 1 -
src/pages/sanitize-pdf.html | 1 -
src/pages/scanner-effect.html | 1 -
src/pages/sign-pdf.html | 1 -
src/pages/split-pdf.html | 1 -
src/pages/svg-to-pdf.html | 1 -
src/pages/text-color.html | 1 -
src/pages/tiff-to-pdf.html | 1 -
src/pages/timestamp-pdf.html | 1 -
src/pages/txt-to-pdf.html | 1 -
src/pages/validate-signature-pdf.html | 1 -
src/pages/view-metadata.html | 1 -
src/pages/vsd-to-pdf.html | 1 -
src/pages/wasm-settings.html | 1 -
src/pages/webp-to-pdf.html | 1 -
src/pages/word-to-pdf.html | 1 -
src/pages/wpd-to-pdf.html | 1 -
src/pages/wps-to-pdf.html | 1 -
src/pages/xml-to-pdf.html | 1 -
src/pages/xps-to-pdf.html | 1 -
terms.html | 1 -
tools.html | 1 -
128 files changed, 128 deletions(-)
diff --git a/404.html b/404.html
index b1a8fbc..e7a9b34 100644
--- a/404.html
+++ b/404.html
@@ -159,7 +159,6 @@
{{> footer }}
-
diff --git a/about.html b/about.html
index 76dd16b..08a384d 100644
--- a/about.html
+++ b/about.html
@@ -297,7 +297,6 @@
{{> footer }}
-
diff --git a/contact.html b/contact.html
index 1e9c012..5b3f10b 100644
--- a/contact.html
+++ b/contact.html
@@ -114,7 +114,6 @@
{{> footer }}
-
diff --git a/faq.html b/faq.html
index 770521a..29cb074 100644
--- a/faq.html
+++ b/faq.html
@@ -291,7 +291,6 @@
{{> footer }}
-
-
diff --git a/licensing.html b/licensing.html
index 3654199..5d93e54 100644
--- a/licensing.html
+++ b/licensing.html
@@ -1139,7 +1139,6 @@
{{> footer }}
-
diff --git a/pdf-converter.html b/pdf-converter.html
index eb02e3d..455c63f 100644
--- a/pdf-converter.html
+++ b/pdf-converter.html
@@ -485,7 +485,6 @@
{{> footer }}
-
diff --git a/pdf-editor.html b/pdf-editor.html
index 0e1a0ad..97379b1 100644
--- a/pdf-editor.html
+++ b/pdf-editor.html
@@ -354,7 +354,6 @@
{{> footer }}
-
diff --git a/pdf-merge-split.html b/pdf-merge-split.html
index a250c11..c609b6e 100644
--- a/pdf-merge-split.html
+++ b/pdf-merge-split.html
@@ -312,7 +312,6 @@
{{> footer }}
-
diff --git a/pdf-security.html b/pdf-security.html
index 58db29a..418df5a 100644
--- a/pdf-security.html
+++ b/pdf-security.html
@@ -289,7 +289,6 @@
{{> footer }}
-
diff --git a/privacy.html b/privacy.html
index 78de50c..439ae4d 100644
--- a/privacy.html
+++ b/privacy.html
@@ -215,7 +215,6 @@
{{> footer }}
-
diff --git a/simple-index.html b/simple-index.html
index 437c276..8925585 100644
--- a/simple-index.html
+++ b/simple-index.html
@@ -518,7 +518,6 @@
-