ci: Improve Docker build workflow and update dependencies
- Add release type detection to distinguish between version tags and edge builds - Implement separate Docker build steps for release and edge builds with appropriate tags - Add edge and SHA-based image tags for main branch builds - Update nginx configuration to support Vietnamese (vi) language routing - Simplify nginx location block to handle static files and fallback to index.html - Remove javascript-obfuscator and ts-migrate from dependencies - Update README with simplified self-hosting instructions using npx http-server - Consolidate multiple server setup examples into single recommended approach - Update build preview command to use npm run preview instead of npx serve - Improve localization files for German, English, Vietnamese, and Chinese - Update worker files and TypeScript logic files for improved functionality - Enhance PDF tool pages with better structure and internationalization support
This commit is contained in:
@@ -18,7 +18,7 @@ export async function ensureCpdfLoaded(): Promise<void> {
|
||||
}
|
||||
|
||||
const script = document.createElement('script');
|
||||
script.src = '/coherentpdf.browser.min.js';
|
||||
script.src = import.meta.env.BASE_URL + 'coherentpdf.browser.min.js';
|
||||
script.onload = () => {
|
||||
cpdfLoaded = true;
|
||||
resolve();
|
||||
|
||||
@@ -168,7 +168,7 @@ export async function initializeQpdf() {
|
||||
showLoader('Initializing PDF engine...');
|
||||
try {
|
||||
qpdfInstance = await createModule({
|
||||
locateFile: () => '/qpdf.wasm',
|
||||
locateFile: () => import.meta.env.BASE_URL + 'qpdf.wasm',
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Failed to initialize qpdf-wasm:', error);
|
||||
@@ -280,6 +280,6 @@ export function getPDFDocument(src: any) {
|
||||
// This is required for PDF.js v5+ to load OpenJPEG for certain images
|
||||
return pdfjsLib.getDocument({
|
||||
...params,
|
||||
wasmUrl: '/pdfjs-viewer/wasm/',
|
||||
wasmUrl: import.meta.env.BASE_URL + 'pdfjs-viewer/wasm/',
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,27 +1,45 @@
|
||||
import { APP_VERSION } from '../../version.js';
|
||||
import { createLanguageSwitcher } from '../i18n/language-switcher.js';
|
||||
|
||||
// Handle simple mode footer replacement for tool pages
|
||||
if (__SIMPLE_MODE__) {
|
||||
const footer = document.querySelector('footer');
|
||||
if (footer) {
|
||||
footer.style.display = 'none';
|
||||
const footer = document.querySelector('footer');
|
||||
if (footer && !document.querySelector('[data-simple-footer]')) {
|
||||
footer.style.display = 'none';
|
||||
|
||||
const simpleFooter = document.createElement('footer');
|
||||
simpleFooter.className = 'mt-16 border-t-2 border-gray-700 py-8';
|
||||
simpleFooter.innerHTML = `
|
||||
const simpleFooter = document.createElement('footer');
|
||||
simpleFooter.className = 'mt-16 border-t-2 border-gray-700 py-8';
|
||||
simpleFooter.setAttribute('data-simple-footer', 'true');
|
||||
simpleFooter.innerHTML = `
|
||||
<div class="container mx-auto px-4">
|
||||
<div class="flex items-center mb-4">
|
||||
<img src="../../images/favicon.svg" alt="Bento PDF Logo" class="h-8 w-8 mr-2">
|
||||
<span class="text-white font-bold text-lg">BentoPDF</span>
|
||||
<div class="flex items-center justify-between flex-wrap gap-4">
|
||||
<div>
|
||||
<div class="flex items-center mb-2">
|
||||
<img src="/images/favicon.svg" alt="Bento PDF Logo" class="h-8 w-8 mr-2">
|
||||
<span class="text-white font-bold text-lg">BentoPDF</span>
|
||||
</div>
|
||||
<p class="text-gray-400 text-sm">
|
||||
© 2025 BentoPDF. All rights reserved.
|
||||
</p>
|
||||
<p class="text-gray-500 text-xs mt-2">
|
||||
Version <span id="app-version-simple">${APP_VERSION}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div id="simple-mode-lang-switcher" class="flex-shrink-0"></div>
|
||||
</div>
|
||||
<p class="text-gray-400 text-sm">
|
||||
© 2025 BentoPDF. All rights reserved.
|
||||
</p>
|
||||
<p class="text-gray-500 text-xs mt-2">
|
||||
Version <span id="app-version-simple">${APP_VERSION}</span>
|
||||
</p>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(simpleFooter);
|
||||
document.body.appendChild(simpleFooter);
|
||||
|
||||
const langContainer = simpleFooter.querySelector('#simple-mode-lang-switcher');
|
||||
if (langContainer) {
|
||||
const switcher = createLanguageSwitcher();
|
||||
const dropdown = switcher.querySelector('div[role="menu"]');
|
||||
if (dropdown) {
|
||||
dropdown.classList.remove('mt-2');
|
||||
dropdown.classList.add('bottom-full', 'mb-2');
|
||||
}
|
||||
langContainer.appendChild(switcher);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user