diff --git a/src/adapters/electron/fs.js b/src/adapters/electron/fs.js
index 955d09f..14c9d34 100644
--- a/src/adapters/electron/fs.js
+++ b/src/adapters/electron/fs.js
@@ -4,7 +4,7 @@
* Implements file system operations for Electron using IPC.
* This abstracts file operations to enable easier testing and migration.
*
- * @version 4.1.0
+ * @version 4.3.0
*/
/**
diff --git a/src/adapters/types.js b/src/adapters/types.js
index 5986b81..acd1f8d 100644
--- a/src/adapters/types.js
+++ b/src/adapters/types.js
@@ -5,7 +5,7 @@
* Adapters abstract file system, conversion, and system operations
* to enable easier testing and future platform migration.
*
- * @version 4.1.0
+ * @version 4.3.0
*/
/**
diff --git a/src/index.html b/src/index.html
index b8a717e..2e8620b 100644
--- a/src/index.html
+++ b/src/index.html
@@ -31,7 +31,7 @@
MarkdownConverter
diff --git a/src/main.js b/src/main.js
index 17e3045..f5de081 100644
--- a/src/main.js
+++ b/src/main.js
@@ -317,6 +317,7 @@ ipcMain.handle('plugin-settings:get', (_event, key) => {
ipcMain.handle('plugin-settings:set', (_event, { key, value }) => {
store.set(key, value);
});
+ipcMain.handle('get-app-version', () => app.getVersion());
let mainWindow;
let currentFile = null; // This will now represent the active tab's file
@@ -1064,7 +1065,7 @@ function showAboutDialog() {
MarkdownConverter
-
Version 4.1.0
+
Version ${app.getVersion()}
by
diff --git a/src/preload.js b/src/preload.js
index 8217436..6b069f5 100644
--- a/src/preload.js
+++ b/src/preload.js
@@ -9,7 +9,7 @@
* - All IPC channels are explicitly whitelisted
* - Prevents XSS from escalating to full system access
*
- * @version 4.1.0
+ * @version 4.3.0
*/
const { contextBridge, ipcRenderer } = require('electron');
@@ -433,7 +433,9 @@ contextBridge.exposeInMainWorld('electronAPI', {
generators: {
openAscii: () => ipcRenderer.send('open-ascii-generator'),
openTable: () => ipcRenderer.send('open-table-generator')
- }
+ },
+
+ getAppVersion: () => ipcRenderer.invoke('get-app-version')
});
// Log successful preload initialization
diff --git a/src/renderer.js b/src/renderer.js
index 32ef3ca..6c0d320 100644
--- a/src/renderer.js
+++ b/src/renderer.js
@@ -1,6 +1,6 @@
/**
* MarkdownConverter Renderer Process
- * @version 4.1.0
+ * @version 4.3.0
*/
const { ipcRenderer } = require('electron');
@@ -1442,11 +1442,17 @@ class TabManager {
let tabManager;
let replPanel;
-document.addEventListener('DOMContentLoaded', () => {
+document.addEventListener('DOMContentLoaded', async () => {
tabManager = new TabManager();
const ReplPanel = getReplPanel();
replPanel = new ReplPanel();
+ // Populate app version from main process
+ window.electronAPI.getAppVersion().then((version) => {
+ const el = document.getElementById('app-version-display');
+ if (el) el.textContent = `v${version}`;
+ });
+
// Initialize ModalManager for all dialogs
const findModal = new ModalManager('#find-dialog');
const exportModal = new ModalManager('#export-dialog');
@@ -1613,7 +1619,8 @@ document.addEventListener('DOMContentLoaded', () => {
// Set welcome content in the first tab's preview
const recentFiles = JSON.parse(localStorage.getItem('recentFiles') || '[]');
- const welcomeHtml = getCreateWelcomeContent()(recentFiles);
+ const appVersion = await window.electronAPI.getAppVersion().catch(() => '');
+ const welcomeHtml = getCreateWelcomeContent()(recentFiles, appVersion);
const tab = tabManager.tabs.get(tabManager.activeTabId);
if (tab) {
diff --git a/src/utils/ModalManager.js b/src/utils/ModalManager.js
index 3dcd2a6..01952cc 100644
--- a/src/utils/ModalManager.js
+++ b/src/utils/ModalManager.js
@@ -1,6 +1,6 @@
/**
* ModalManager - Unified modal system with accessibility support
- * @version 4.1.0
+ * @version 4.3.0
*/
class ModalManager {
#modal;
diff --git a/src/welcome.js b/src/welcome.js
index ffb7b30..8eeec66 100644
--- a/src/welcome.js
+++ b/src/welcome.js
@@ -1,4 +1,4 @@
-function createWelcomeContent(recentFiles = []) {
+function createWelcomeContent(recentFiles = [], appVersion = '') {
const recentHtml = recentFiles.length
? recentFiles.map(f => {
const name = f.split(/[/\\]/).pop();
@@ -10,7 +10,7 @@ function createWelcomeContent(recentFiles = []) {
MarkdownConverter
-
Version 4.1.0
+
${appVersion ? `Version ${appVersion}` : ''}
Professional Markdown Editor & Universal Document Converter