<?php
// Script to generate missing HTML element classes in src/
$masterList = include __DIR__ . '/html_elements_master_list.php';
// Get all PHP files in src/ (excluding this script and the master list)
$files = glob(__DIR__ . '/*.php');
$existing = [];
foreach ($files as $file) {
$base = basename($file, '.php');
if (in_array($base, ['html_elements_master_list', 'check_missing_elements', 'generate_missing_elements', 'Html'])) continue;
$existing[] = strtolower($base);
}
// Special case: h1-h6, handled as 'h' in some codebases
foreach (['h1','h2','h3','h4','h5','h6'] as $hx) {
if (in_array('h', $existing)) $existing[] = $hx;
}
$missing = array_diff($masterList, $existing);
foreach ($missing as $el) {
$className = ucfirst(preg_replace('/[^a-zA-Z0-9]/', '', $el));
$fileName = __DIR__ . "/$el.php";
if (file_exists($fileName)) continue;
$content = "<?php\nclass $className extends HtmlElement {\n public function __construct(\$content = '') {\n parent::__construct('$el');\n if (\$content) {\n \$this->text(\$content);\n }\n }\n}\n";
file_put_contents($fileName, $content);
echo "Created $fileName\n";
}
echo "Done.\n";
|