More actions
|  please work - used the info here: [https://www.mediawiki.org/wiki/Css-sanitizer] |  Added php (idrk what im doing) | ||
| Line 1: | Line 1: | ||
| <?php | |||
| require 'vendor/autoload.php'; // Ensure Wikimedia CSS libraries are installed via Composer | |||
| use Wikimedia\CSS\Parser\Parser; | use Wikimedia\CSS\Parser\Parser; | ||
| use Wikimedia\CSS\Sanitizer\StylesheetSanitizer; | use Wikimedia\CSS\Sanitizer\StylesheetSanitizer; | ||
| use Wikimedia\CSS\Util; | |||
| $inputFile = "input.css";   // Path to the original CSS file | |||
| $outputFile = "sanitized.css"; // Path to save the sanitized CSS | |||
| / | // Read the CSS file | ||
| $cssText = file_get_contents($inputFile); | |||
| if ($cssText === false) { | |||
|     die("Error: Could not read CSS file.\n"); | |||
| } | |||
| $parser = Parser::newFromString( $cssText ); | // Parse the CSS | ||
| $parser = Parser::newFromString($cssText); | |||
| $stylesheet = $parser->parseStylesheet(); | $stylesheet = $parser->parseStylesheet(); | ||
| / | // Report parser errors | ||
| foreach ($parser->getParseErrors() as list($code, $line, $pos)) { | |||
| foreach ( $parser->getParseErrors() as list( $code, $line, $pos ) ) { |     echo "Parse error: $code at line $line, character $pos\n"; | ||
| } | } | ||
| / | // Sanitize the CSS | ||
| $sanitizer = StylesheetSanitizer::newDefault(); | |||
| $newStylesheet = $sanitizer->sanitize($stylesheet); | |||
| //  | // Report sanitization errors | ||
| foreach ($sanitizer->getSanitizationErrors() as list($code, $line, $pos)) { | |||
| $sanitizer  |     echo "Sanitization error: $code at line $line, character $pos\n"; | ||
| $ | } | ||
| / | // Convert sanitized stylesheet back to text | ||
| $newText = (string)$newStylesheet; | |||
| // Save sanitized CSS to a new file | |||
| if (file_put_contents($outputFile, $newText) !== false) { | |||
|     echo "Sanitized CSS saved to $outputFile\n"; | |||
| } else { | |||
|     echo "Error: Could not write sanitized CSS file.\n"; | |||
| } | } | ||
| ?> | |||
| @media screen { | @media screen { | ||
Revision as of 03:23, 27 March 2025
<?php
require 'vendor/autoload.php'; // Ensure Wikimedia CSS libraries are installed via Composer
use Wikimedia\CSS\Parser\Parser; use Wikimedia\CSS\Sanitizer\StylesheetSanitizer; use Wikimedia\CSS\Util;
$inputFile = "input.css"; // Path to the original CSS file $outputFile = "sanitized.css"; // Path to save the sanitized CSS
// Read the CSS file $cssText = file_get_contents($inputFile); if ($cssText === false) {
   die("Error: Could not read CSS file.\n");
}
// Parse the CSS $parser = Parser::newFromString($cssText); $stylesheet = $parser->parseStylesheet();
// Report parser errors foreach ($parser->getParseErrors() as list($code, $line, $pos)) {
echo "Parse error: $code at line $line, character $pos\n";
}
// Sanitize the CSS $sanitizer = StylesheetSanitizer::newDefault(); $newStylesheet = $sanitizer->sanitize($stylesheet);
// Report sanitization errors foreach ($sanitizer->getSanitizationErrors() as list($code, $line, $pos)) {
echo "Sanitization error: $code at line $line, character $pos\n";
}
// Convert sanitized stylesheet back to text $newText = (string)$newStylesheet;
// Save sanitized CSS to a new file if (file_put_contents($outputFile, $newText) !== false) {
echo "Sanitized CSS saved to $outputFile\n";
} else {
echo "Error: Could not write sanitized CSS file.\n";
}
?>
@media screen { html.skin-theme-clientpref-night .infobox { background-color: black; color: white; } } @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .infobox { background-color: black; color: white; } }
