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": "Xoay",
|
||||
"desc": "Dễ dàng xoay PDF của bạn."
|
||||
},
|
||||
"imageToPdf": {
|
||||
"imageToPDF": {
|
||||
"title": "Hình ảnh sang PDF",
|
||||
"desc": "Chuyển đổi hình ảnh (PNG, JPEG, GIF) sang PDF."
|
||||
},
|
||||
@@ -371,7 +371,7 @@
|
||||
"title": "Thay đổi quyền",
|
||||
"desc": "Thay đổi quyền của tài liệu PDF của bạn"
|
||||
},
|
||||
"removePages": {
|
||||
"pageRemover": {
|
||||
"title": "Xóa",
|
||||
"desc": "Xóa các trang không mong muốn khỏi tài liệu PDF của bạn."
|
||||
},
|
||||
@@ -383,7 +383,7 @@
|
||||
"title": "Xóa mật khẩu",
|
||||
"desc": "Xóa bảo vệ mật khẩu khỏi tài liệu PDF của bạn."
|
||||
},
|
||||
"compressPdfs": {
|
||||
"compress": {
|
||||
"title": "Nén",
|
||||
"desc": "Nén PDF để giảm kích thước tệp."
|
||||
},
|
||||
@@ -479,7 +479,7 @@
|
||||
"title": "Pipeline (Nâng cao)",
|
||||
"desc": "Chạy nhiều thao tác trên PDF bằng cách định nghĩa các tập lệnh pipeline"
|
||||
},
|
||||
"add-page-numbers": {
|
||||
"addPageNumbers": {
|
||||
"title": "Thêm số trang",
|
||||
"desc": "Thêm số trang xuyên suốt tài liệu ở vị trí cố định"
|
||||
},
|
||||
@@ -487,7 +487,7 @@
|
||||
"title": "Tự động đổi tên tệp PDF",
|
||||
"desc": "Tự động đổi tên tệp PDF dựa trên tiêu đề được phát hiện"
|
||||
},
|
||||
"adjust-contrast": {
|
||||
"adjustContrast": {
|
||||
"title": "Điều chỉnh màu sắc/tương phản",
|
||||
"desc": "Điều chỉnh độ tương phản, độ bão hòa và độ sáng của PDF"
|
||||
},
|
||||
@@ -499,7 +499,7 @@
|
||||
"title": "Tự động tách trang",
|
||||
"desc": "Tự động tách PDF đã quét với mã QR tách trang quét vật lý"
|
||||
},
|
||||
"sanitizePdf": {
|
||||
"sanitizePDF": {
|
||||
"title": "Làm sạch",
|
||||
"desc": "Xóa các tập lệnh và phần tử khác khỏi các tệp PDF"
|
||||
},
|
||||
@@ -523,11 +523,11 @@
|
||||
"title": "Lấy TẤT CẢ thông tin về PDF",
|
||||
"desc": "Lấy bất kỳ và tất cả thông tin có thể về PDF"
|
||||
},
|
||||
"extractPage": {
|
||||
"pageExtracter": {
|
||||
"title": "Trích xuất (các) trang",
|
||||
"desc": "Trích xuất các trang được chọn từ PDF"
|
||||
},
|
||||
"PdfToSinglePage": {
|
||||
"pdfToSinglePage": {
|
||||
"title": "PDF sang một trang lớn",
|
||||
"desc": "Ghép tất cả các trang PDF thành một trang lớn duy nhất"
|
||||
},
|
||||
@@ -543,11 +543,11 @@
|
||||
"title": "Manual Redaction",
|
||||
"desc": "Redacts a PDF based on selected text, drawn shapes and/or selected page(s)"
|
||||
},
|
||||
"tableExtraxt": {
|
||||
"PDFToCSV": {
|
||||
"title": "PDF sang CSV",
|
||||
"desc": "Trích xuất bảng từ PDF chuyển đổi thành CSV"
|
||||
},
|
||||
"autoSizeSplitPDF": {
|
||||
"split-by-size-or-count": {
|
||||
"title": "Tự động chia theo kích thước/số lượng",
|
||||
"desc": "Chia một tệp PDF thành nhiều tài liệu dựa trên kích thước, số trang hoặc số lượng tài liệu"
|
||||
},
|
||||
@@ -563,11 +563,11 @@
|
||||
"title": "Thêm dấu vào PDF",
|
||||
"desc": "Thêm văn bản hoặc hình ảnh dấu tại vị trí cố định"
|
||||
},
|
||||
"removeImagePdf": {
|
||||
"removeImage": {
|
||||
"title": "Remove image",
|
||||
"desc": "Remove image from PDF to reduce file size"
|
||||
},
|
||||
"splitPdfByChapters": {
|
||||
"splitByChapters": {
|
||||
"title": "Split PDF by Chapters",
|
||||
"desc": "Split a PDF into multiple files based on its chapter structure."
|
||||
},
|
||||
@@ -575,7 +575,7 @@
|
||||
"title": "Validate PDF Signature",
|
||||
"desc": "Verify digital signatures and certificates in PDF documents"
|
||||
},
|
||||
"replaceColorPdf": {
|
||||
"replace-color": {
|
||||
"title": "Replace and Invert Color",
|
||||
"desc": "Replace color for text and background in PDF and invert full color of pdf to reduce file size"
|
||||
}
|
||||
@@ -1558,4 +1558,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user