mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-16 19:33:11 +02:00
SEO init (#4197)
# Description of Changes This pull request introduces dynamic document meta tag management and improves URL routing and tool metadata handling in the frontend. The most significant changes are the addition of a custom hook to update document meta tags (including OpenGraph tags) based on the selected tool, enhancements to the tool selection context for better URL synchronization, and enrichment of the `Tool` type and tool registry with more metadata. **Dynamic document meta management:** * Added a new `useDocumentMeta` hook that updates the page's `<title>`, description, and OpenGraph meta tags based on the currently selected tool, and restores the original values on cleanup. (`frontend/src/hooks/useDocumentMeta.ts`) * Integrated `useDocumentMeta` into `HomePageContent` so the document's meta tags dynamically reflect the selected tool's metadata, improving SEO and social sharing. (`frontend/src/pages/HomePage.tsx`) [[1]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR2-R8) [[2]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR17) [[3]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR28-R37) **Tool metadata and context improvements:** * Enhanced the `Tool` type and tool registry to include `title` and `description` fields, which are now translated and used throughout the UI and meta tags. (`frontend/src/types/tool.ts`, `frontend/src/hooks/useToolManagement.tsx`) [[1]](diffhunk://#diff-0b557df7bd27ac90cd2f925ddd8ef8096ea2decfaee9a5c12a94dc7a03c64bfaR46) [[2]](diffhunk://#diff-57f8a6b3e75ecaec10ad445b01afe8fccc376af6f8ad4d693c68cf98e8863273L116-R118) * Updated the `ToolWorkflowContext` to use the new `Tool` type for `selectedTool`, replacing the previous `ToolConfiguration` type. (`frontend/src/contexts/ToolWorkflowContext.tsx`) [[1]](diffhunk://#diff-9b36e2c06dddbcfba6cb66fd0b303b7860f88ca8b562bb2534af1ab50390d385L6-R8) [[2]](diffhunk://#diff-9b36e2c06dddbcfba6cb66fd0b303b7860f88ca8b562bb2534af1ab50390d385L72-R72) **URL routing and synchronization:** * Implemented logic in `ToolWorkflowContext` to synchronize the selected tool with the browser URL, initialize tool selection from the URL on load, and handle browser navigation (back/forward) for tool selection. (`frontend/src/contexts/ToolWorkflowContext.tsx`) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
@@ -347,7 +347,7 @@
|
||||
"title": "Rotar",
|
||||
"desc": "Rotar fácilmente sus PDFs"
|
||||
},
|
||||
"imageToPdf": {
|
||||
"imageToPDF": {
|
||||
"title": "Imagen a PDF",
|
||||
"desc": "Convertir una imagen (PNG, JPEG, GIF) a PDF"
|
||||
},
|
||||
@@ -371,7 +371,7 @@
|
||||
"title": "Cambiar permisos",
|
||||
"desc": "Cambiar los permisos del documento PDF"
|
||||
},
|
||||
"removePages": {
|
||||
"pageRemover": {
|
||||
"title": "Eliminar",
|
||||
"desc": "Eliminar páginas no deseadas del documento PDF"
|
||||
},
|
||||
@@ -383,7 +383,7 @@
|
||||
"title": "Eliminar contraseña",
|
||||
"desc": "Eliminar la contraseña del documento PDF"
|
||||
},
|
||||
"compressPdfs": {
|
||||
"compress": {
|
||||
"title": "Comprimir",
|
||||
"desc": "Comprimir PDFs para reducir el tamaño del archivo"
|
||||
},
|
||||
@@ -479,7 +479,7 @@
|
||||
"title": "Automatización",
|
||||
"desc": "Ejecutar varias tareas a PDFs definiendo una secuencia de comandos"
|
||||
},
|
||||
"add-page-numbers": {
|
||||
"addPageNumbers": {
|
||||
"title": "Añadir números de página",
|
||||
"desc": "Añadir números de página en un documento en una ubicación concreta"
|
||||
},
|
||||
@@ -487,7 +487,7 @@
|
||||
"title": "Renombrar archivo PDF automáticamente",
|
||||
"desc": "Renombrar automáticamente un archivo PDF según el encabezamiento detectado"
|
||||
},
|
||||
"adjust-contrast": {
|
||||
"adjustContrast": {
|
||||
"title": "Ajustar Color/Contraste",
|
||||
"desc": "Ajustar Contraste, Saturación y Brillo de un PDF"
|
||||
},
|
||||
@@ -499,7 +499,7 @@
|
||||
"title": "Auto Dividir Páginas",
|
||||
"desc": "Auto Dividir PDF escaneado con código QR divsor de página escaneada físicamente"
|
||||
},
|
||||
"sanitizePdf": {
|
||||
"sanitizePDF": {
|
||||
"title": "Desinfectar",
|
||||
"desc": "Eliminar scripts y otros elementos de los archivos PDF"
|
||||
},
|
||||
@@ -523,11 +523,11 @@
|
||||
"title": "Obtener toda la información en PDF",
|
||||
"desc": "Obtiene toda la información posible de archivos PDF"
|
||||
},
|
||||
"extractPage": {
|
||||
"pageExtracter": {
|
||||
"title": "Extraer página(s)",
|
||||
"desc": "Extraer las páginas seleccionadas del PDF"
|
||||
},
|
||||
"PdfToSinglePage": {
|
||||
"pdfToSinglePage": {
|
||||
"title": "PDF a una sola página",
|
||||
"desc": "Unir todas las páginas del PDF en una sola página"
|
||||
},
|
||||
@@ -543,11 +543,11 @@
|
||||
"title": "Redacción Manual",
|
||||
"desc": "Redacta un PDF basado en el texto seleccionado, dibuja formas y/o página(s) selecionada(s)"
|
||||
},
|
||||
"tableExtraxt": {
|
||||
"PDFToCSV": {
|
||||
"title": "PDF a CSV",
|
||||
"desc": "Extraer Tablas de un PDF convirtiéndolas a CSV"
|
||||
},
|
||||
"autoSizeSplitPDF": {
|
||||
"split-by-size-or-count": {
|
||||
"title": "Auto dividir por tamaño/conteo",
|
||||
"desc": "Divide un solo PDF en múltiples documentos según su tamaño, número de páginas, o número de documento"
|
||||
},
|
||||
@@ -563,11 +563,11 @@
|
||||
"title": "Añadir Sello a PDF",
|
||||
"desc": "Añadir texto o sello de imagen en ubicaciones específicas"
|
||||
},
|
||||
"removeImagePdf": {
|
||||
"removeImage": {
|
||||
"title": "Eliminar imagen",
|
||||
"desc": "Eliminar imagen del PDF> para reducir el tamaño de archivo"
|
||||
},
|
||||
"splitPdfByChapters": {
|
||||
"splitByChapters": {
|
||||
"title": "Dividir PDF por capítulos",
|
||||
"desc": "Divida un PDF en varios archivos según su estructura de capítulos."
|
||||
},
|
||||
@@ -575,7 +575,7 @@
|
||||
"title": "Validar firma del PDF",
|
||||
"desc": "Verifica firmas digitales y certificados en los documentos PDF"
|
||||
},
|
||||
"replaceColorPdf": {
|
||||
"replace-color": {
|
||||
"title": "Reemplazar e Invertir Color",
|
||||
"desc": "Reemplaza el color del texto y el fondo en el PDF e invierte el color completo del PDF para reducir el tamaño del archivo"
|
||||
}
|
||||
@@ -1558,4 +1558,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user