Skip to content

Add modern .elpx parsing and content inspection APIs#10

Merged
erseco merged 1 commit intomainfrom
feature/some-improvements
Apr 5, 2026
Merged

Add modern .elpx parsing and content inspection APIs#10
erseco merged 1 commit intomainfrom
feature/some-improvements

Conversation

@erseco
Copy link
Copy Markdown
Collaborator

@erseco erseco commented Apr 5, 2026

Summary

This PR expands the parser from legacy .elp support into the modern ODE-based project family and documents the new behavior.

Changes

  • add support for modern content.xml packages in both .elp and .elpx
  • keep legacy contentv3.xml support for eXeLearning 2.x projects
  • add format inspection APIs for extension, content file, content format, schema version, resource layout, root DTD and likely v4 detection
  • parse modern pages, blocks, idevices, grouped page texts and visibility flags
  • add resource inspection APIs for images, audio, video, documents, detailed asset origins and orphan assets
  • harden archive extraction to avoid unsafe ZIP paths
  • add two real .elpx fixtures covering modern v4-style packages
  • update README and docs to describe .elp / .elpx, modern ODE packages and the new APIs

Notes

  • modern .elpx packages with root content.dtd are currently treated as likely v4-style packages
  • exact major-version detection is still limited by what the package metadata exposes internally

Validation

  • composer test
  • composer lint

@erseco erseco merged commit e18dd35 into main Apr 5, 2026
14 checks passed
@erseco erseco deleted the feature/some-improvements branch April 5, 2026 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant