Un outil PHP pour l'analyse, la validation et le rendu des documents PBOML
PBOML Parser is a comprehensive PHP library designed to handle PBOML (Performance-Based Output Markup Language) documents. It provides robust functionality for parsing, validating, and rendering PBOML content with a strong focus on accessibility, SEO optimization, and multi-language support.
- Multilingual Support: Built-in support for English and French content
- Accessibility First: Comprehensive accessibility features and ARIA support
- SEO Optimization: Built-in SEO management and optimization
- Flexible Rendering: Support for multiple content types and presentation formats
- Theme Support: Light/dark mode and responsive design capabilities
- Robust Validation: Extensive validation system with detailed error reporting
- Extensible Architecture: Modular design allowing for easy extensions
The library supports various content types including:
- Markdown content
- Data tables with advanced formatting
- SVG graphics with accessibility enhancements
- Interactive charts
- Bitmap images with responsive sizing
- HTML content with shadow DOM support
- Key-value lists
- Structured annotations
- Heading hierarchies
- PHP 8.0 or higher
- DOM Extension
- JSON Extension
- Mbstring Extension
- libxml Extension
To install the PBOML Parser library, run the following command:
composer require pbo/pboml-parser
If that doesn't work, simply run to update your packages:
composer update
use PBO\PbomlParser\Parser\PBOMLParser;
use PBO\PbomlParser\Generator\HTMLGenerator;
// Initialize parser and generator
$parser = new PBOMLParser();
$generator = new HTMLGenerator();
// Parse PBOML content
$parsed = $parser->parse($pbomlContent);
// Generate HTML
$html = $generator->generate($parsed);
$parser->setStrictMode(true);
$seoManager = new SEOManager([
'site_name' => 'My Site',
'twitter_handle' => '@mysite',
'publisher_name' => 'Publisher Name'
]);
$accessibilityManager = new AccessibilityManager([
'log_warnings' => true
]);
PBOML documents are structured as follows:
pboml:
version: "1.0.0"
document:
id: "DOC-ID"
title:
en: "Document Title"
fr: "Titre du document"
type:
en: "Document Type"
fr: "Type de document"
slices:
- type: "heading"
content:
en: "Section Heading"
fr: "En-tête de section"
# Additional slices...
The library implements a comprehensive validation system:
- Root Structure Validation: Ensures proper document structure
- Document Metadata Validation: Validates metadata requirements
- Slice Validation: Type-specific validation for each content slice
- Localization Validation: Ensures proper multilingual content
- Presentation Validation: Validates presentation attributes
The library provides specialized exceptions for different error types:
ValidationException
: For validation errorsParsingException
: For parsing errorsRenderingException
: For rendering errorsEncodingException
: For encoding issues
The rendering system supports multiple output formats and includes:
- Slice Renderers: Specialized renderers for each content type
- Theme Support: Light/dark mode theming
- Responsive Design: Adaptive layouts and container queries
- Print Styling: Optimized print layouts
class CustomSliceProcessor extends BaseSliceProcessor
{
public function process(array $slice): array
{
// Implementation
}
}
// Register the processor
$sliceProcessor->registerProcessor('custom', new CustomSliceProcessor());
class CustomValidator extends BaseValidator implements ValidatorInterface
{
public function validate(array $data): bool
{
// Implementation
}
}
The library includes numerous accessibility features:
- ARIA attribute management
- Heading hierarchy validation
- Skip links generation
- Screen reader optimizations
- Keyboard navigation support
- Alternative text management
-
Content Organization
- Use appropriate slice types for content
- Maintain consistent heading hierarchy
- Provide translations for all content
-
Validation
- Enable strict mode during development
- Handle validation errors appropriately
- Validate localization completeness
-
Rendering
- Use semantic HTML elements
- Implement proper ARIA attributes
- Ensure responsive design compatibility
- Implement caching for parsed documents
- Use lazy loading for images
- Optimize SVG content
- Minimize DOM operations
- Use efficient selectors
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
This project is licensed under the MIT License - see the LICENSE file for details.
PBOML Parser est une bibliothèque PHP complète conçue pour gérer les documents PBOML (Performance-Based Output Markup Language). Elle fournit des fonctionnalités robustes pour l'analyse, la validation et le rendu du contenu PBOML avec un accent particulier sur l'accessibilité, l'optimisation SEO et le support multilingue.
- Support multilingue: Prise en charge intégrée du contenu en anglais et en français
- Priorité à l'accessibilité: Fonctionnalités d'accessibilité complètes et support ARIA
- Optimisation SEO: Gestion et optimisation SEO intégrées
- Rendu flexible: Prise en charge de plusieurs types de contenu et formats de présentation
- Support des thèmes: Capacités de mode clair/sombre et de design responsive
- Validation robuste: Système de validation extensif avec rapport d'erreurs détaillé
- Architecture extensible: Conception modulaire permettant des extensions faciles
La bibliothèque prend en charge divers types de contenu, notamment:
- Contenu Markdown
- Tableaux de données avec formatage avancé
- Graphiques SVG avec améliorations d'accessibilité
- Graphiques interactifs
- Images bitmap avec dimensionnement responsive
- Contenu HTML avec support du DOM fantôme
- Listes clé-valeur
- Annotations structurées
- Hiérarchies de titres
- PHP 8.0 ou supérieur
- Extension DOM
- Extension JSON
- Extension Mbstring
- Extension libxml
Pour installer la bibliothèque PBOML Parser, exécutez la commande suivante :
composer require pbo/pboml-parser
Si cela ne marche pas, exécutez simplement pour mettre à jour vos packages :
composer update
use PBO\PbomlParser\Parser\PBOMLParser;
use PBO\PbomlParser\Generator\HTMLGenerator;
// Initialiser l'analyseur et le générateur
$parser = new PBOMLParser();
$generator = new HTMLGenerator();
// Analyser le contenu PBOML
$parsed = $parser->parse($pbomlContent);
// Générer le HTML
$html = $generator->generate($parsed);
$parser->setStrictMode(true);
$seoManager = new SEOManager([
'site_name' => 'Mon Site',
'twitter_handle' => '@monsite',
'publisher_name' => 'Nom de l\'éditeur'
]);
$accessibilityManager = new AccessibilityManager([
'log_warnings' => true
]);
Les documents PBOML sont structurés comme suit:
pboml:
version: "1.0.0"
document:
id: "DOC-ID"
title:
en: "Document Title"
fr: "Titre du document"
type:
en: "Document Type"
fr: "Type de document"
slices:
- type: "heading"
content:
en: "Section Heading"
fr: "En-tête de section"
# Tranches supplémentaires...
La bibliothèque implémente un système de validation complet:
- Validation de la structure racine: Assure une structure de document appropriée
- Validation des métadonnées: Valide les exigences des métadonnées
- Validation des tranches: Validation spécifique au type pour chaque tranche de contenu
- Validation de la localisation: Assure un contenu multilingue approprié
- Validation de la présentation: Valide les attributs de présentation
La bibliothèque fournit des exceptions spécialisées pour différents types d'erreurs:
ValidationException
: Pour les erreurs de validationParsingException
: Pour les erreurs d'analyseRenderingException
: Pour les erreurs de renduEncodingException
: Pour les problèmes d'encodage
Le système de rendu prend en charge plusieurs formats de sortie et inclut:
- Renderers de tranches: Renderers spécialisés pour chaque type de contenu
- Support des thèmes: Thèmes clair/sombre
- Design responsive: Mises en page adaptatives et requêtes de conteneur
- Style d'impression: Mises en page optimisées pour l'impression
class CustomSliceProcessor extends BaseSliceProcessor
{
public function process(array $slice): array
{
// Implémentation
}
}
// Enregistrer le processeur
$sliceProcessor->registerProcessor('custom', new CustomSliceProcessor());
class CustomValidator extends BaseValidator implements ValidatorInterface
{
public function validate(array $data): bool
{
// Implémentation
}
}
La bibliothèque inclut de nombreuses fonctionnalités d'accessibilité:
- Gestion des attributs ARIA
- Validation de la hiérarchie des titres
- Génération de liens de saut
- Optimisations pour les lecteurs d'écran
- Support de la navigation au clavier
- Gestion du texte alternatif
-
Organisation du contenu
- Utiliser les types de tranches appropriés pour le contenu
- Maintenir une hiérarchie de titres cohérente
- Fournir des traductions pour tout le contenu
-
Validation
- Activer le mode strict pendant le développement
- Gérer les erreurs de validation de manière appropriée
- Valider l'exhaustivité de la localisation
-
Rendu
- Utiliser des éléments HTML sémantiques
- Implémenter les attributs ARIA appropriés
- Assurer la compatibilité avec le design responsive
- Implémenter la mise en cache pour les documents analysés
- Utiliser le chargement paresseux pour les images
- Optimiser le contenu SVG
- Minimiser les opérations DOM
- Utiliser des sélecteurs efficaces
Les contributions sont les bienvenues ! Veuillez lire nos directives de contribution et soumettre des pull requests à notre dépôt.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
For support in English or French, please open an issue on our GitHub repository or contact our support team.
Pour obtenir de l'aide en français ou en anglais, veuillez ouvrir un ticket sur notre dépôt GitHub ou contacter notre équipe de support.