Шаблон:Doc/styles.css: различия между версиями
Admin (обсуждение | вклад) Метка: отменено |
Admin (обсуждение | вклад) Метка: отменено |
||
Строка 1: | Строка 1: | ||
use Wikimedia\CSS\Parser\Parser; | |||
use Wikimedia\CSS\Sanitizer\StylesheetSanitizer; | |||
/** Parse a stylesheet from a string **/ | |||
$parser = Parser::newFromString( $cssText ); | |||
$stylesheet = $parser->parseStylesheet(); | |||
/** Report any parser errors **/ | |||
. | foreach ( $parser->getParseErrors() as list( $code, $line, $pos ) ) { | ||
// $code is a string that should be suitable as a key for an i18n library. | |||
// See errors.md for details. | |||
$error = lookupI18nMessage( "css-parse-error-$code" ); | |||
echo "Parse error: $error at line $line character $pos\n"; | |||
} | } | ||
/** Apply sanitization to the stylesheet **/ | |||
. | // If you need to customize the defaults, copy the code of this method and | ||
// modify it. | |||
$sanitizer = StylesheetSanitizer::newDefault(); | |||
$newStylesheet = $sanitizer->sanitize( $stylesheet ); | |||
/** Report any sanitizer errors **/ | |||
foreach ( $sanitizer->getSanitizationErrors() as list( $code, $line, $pos ) ) { | |||
. | // $code is a string that should be suitable as a key for an i18n library. | ||
// See errors.md for details. | |||
$error = lookupI18nMessage( "css-sanitization-error-$code" ); | |||
echo "Sanitization error: $error at line $line character $pos\n"; | |||
} | } | ||
/** Convert the sanitized stylesheet back to text **/ | |||
$newText = (string)$newStylesheet; | |||
// Or if you'd rather have it minified too | |||
$minifiedText = Wikimedia\CSS\Util::stringify( $newStylesheet, [ 'minify' => true ] ); | |||
Версия 12:51, 25 января 2022
use Wikimedia\CSS\Parser\Parser; use Wikimedia\CSS\Sanitizer\StylesheetSanitizer;
/** Parse a stylesheet from a string **/
$parser = Parser::newFromString( $cssText ); $stylesheet = $parser->parseStylesheet();
/** Report any parser errors **/
foreach ( $parser->getParseErrors() as list( $code, $line, $pos ) ) { // $code is a string that should be suitable as a key for an i18n library. // See errors.md for details. $error = lookupI18nMessage( "css-parse-error-$code" ); echo "Parse error: $error at line $line character $pos\n"; }
/** Apply sanitization to the stylesheet **/
// If you need to customize the defaults, copy the code of this method and // modify it. $sanitizer = StylesheetSanitizer::newDefault(); $newStylesheet = $sanitizer->sanitize( $stylesheet );
/** Report any sanitizer errors **/
foreach ( $sanitizer->getSanitizationErrors() as list( $code, $line, $pos ) ) { // $code is a string that should be suitable as a key for an i18n library. // See errors.md for details. $error = lookupI18nMessage( "css-sanitization-error-$code" ); echo "Sanitization error: $error at line $line character $pos\n"; }
/** Convert the sanitized stylesheet back to text **/
$newText = (string)$newStylesheet;
// Or if you'd rather have it minified too $minifiedText = Wikimedia\CSS\Util::stringify( $newStylesheet, [ 'minify' => true ] );