[Site] Rework Toolkit recipe rendering system, improve our Markdown converter

This commit is contained in:
Hugo Alliaume
2025-12-28 00:16:37 +01:00
parent ddd40a6c08
commit da247b2451
2 changed files with 13 additions and 10 deletions

View File

@@ -94,18 +94,19 @@ final class RecipeManifest
throw new \InvalidArgumentException(\sprintf('The dependency #%d of type "npm" must be a non-empty string.', $i));
}
// format: "package@version" or "@scope/package@version"
if (str_contains($package, '@')) {
if (substr_count($package, '@') > 1) {
$pos = strrpos($package, '@');
$name = substr($package, 0, $pos);
$version = substr($package, $pos + 1);
} else {
[$name, $version] = explode('@', $package, 2);
}
// format: "package@version", "@scope/package", "@scope/package@version"
$name = $package;
$version = null;
$versionPos = strrpos($package, '@');
if (false !== $versionPos && 0 !== $versionPos) {
$name = substr($package, 0, $versionPos);
$version = substr($package, $versionPos + 1);
}
if (null !== $version) {
$dependencies[] = new NpmPackageDependency($name, new ConstraintVersion($version));
} else {
$dependencies[] = new NpmPackageDependency($package);
$dependencies[] = new NpmPackageDependency($name);
}
}

View File

@@ -218,6 +218,7 @@ final class RecipeManifestTest extends TestCase
],
"npm": [
"tailwindcss@^4.0.0",
"@tailwindplus/elements",
"@tailwindplus/elements@1"
],
"importmap": [
@@ -239,6 +240,7 @@ final class RecipeManifestTest extends TestCase
new PhpPackageDependency('tales-from-a-dev/twig-tailwind-extra', new ConstraintVersion('^1.0.0')),
new PhpPackageDependency('symfony/ux-twig-component', new ConstraintVersion('^2.29')),
new NpmPackageDependency('tailwindcss', new ConstraintVersion('^4.0.0')),
new NpmPackageDependency('@tailwindplus/elements'),
new NpmPackageDependency('@tailwindplus/elements', new ConstraintVersion('1')),
new ImportmapPackageDependency('@hotwired/stimulus'),
], $manifest->dependencies);