parfaitementweb/statamic-podcast-publisher
A Statamic addon for publishing podcasts: generate an iTunes-compatible RSS feed, manage episodes and show metadata, and keep your podcast feed in sync with your content—no extra tooling required.
Install via Composer and publish the package config:
composer require your-vendor/xml-package
php artisan vendor:publish --tag=xml-package-config
Look here first, in order:
config/xml-package.php — controls output path, caching, optional stylesheet, and encoding. Most day-to-day behavior lives here.php artisan xml:generate or similar) — the fastest way to validate your setup before wiring it into a route/controller.First use case to verify: generate a single document and open it in a browser. You want to see a valid XML tree with the stylesheet rendering, no stray <?xml ... ?> in the middle of the file, and no repeated root/child tags. If that renders cleanly, you're 90% of the way to a working setup.
Content-Type yourself.schedule() method and serve the cached file. This avoids rebuilding on every request and sidesteps runtime encoding surprises.https://example.com/xml/stylesheet.xsl) rather than a relative path. 1.0.3 specifically tightened this so the declaration is well-formed; relative paths were producing an unusable processing instruction.sprintf XML yourself.<?xml ... ?> declaration itself, producing a document browsers reject as "not well-formed." If you were previously sanitizing input yourself around the declaration, you can now rely on the package — but keep sanitizing content values, not the prolog.boot() runs, then a listener re-adds entries), earlier versions emitted duplicate XML tags. After upgrading, verify your registration path doesn't intentionally rely on that behavior; if you were filtering duplicates downstream, you can drop that workaround.APP_URL/asset root reflects the public origin.xmllint --noout - to confirm well-formedness. This catches prolog issues and unclosed/duplicated tags quickly.^1.0.3 and add a smoke test that parses the generated document. It's cheap insurance against regressions in XML output.How can I help you explore Laravel packages today?