#!/usr/bin/php <?php chdir ( dirname ( __FILE__ ) ); require_once 'common.php'; assertCli (); echo "Please do not run this script. It is here for historical purposes only."; exit (); /** * @file * Extracts all definitions inside a configuration schema * (HTMLPurifier_ConfigSchema) and exports them as plain text files. * * @todo Extract version numbers. */ define ( 'HTMLPURIFIER_SCHEMA_STRICT', true ); // description data needs to be collected require_once dirname ( __FILE__ ) . '/../library/HTMLPurifier.auto.php'; // We need includes to ensure all HTMLPurifier_ConfigSchema calls are // performed. require_once 'HTMLPurifier.includes.php'; // Also, these extra files will be necessary. require_once 'HTMLPurifier/Filter/ExtractStyleBlocks.php'; /** * Takes a hash and saves its contents to library/HTMLPurifier/ConfigSchema/ */ function saveHash($hash) { if ($hash === false) return; $dir = realpath ( dirname ( __FILE__ ) . '/../library/HTMLPurifier/ConfigSchema' ); $name = $hash ['ID'] . '.txt'; $file = $dir . '/' . $name; if (file_exists ( $file )) { trigger_error ( "File already exists; skipped $name" ); return; } $file = new FSTools_File ( $file ); $file->open ( 'w' ); $multiline = false; foreach ( $hash as $key => $value ) { $multiline = $multiline || (strpos ( $value, "\n" ) !== false); if ($multiline) { $file->put ( "--$key--" . PHP_EOL ); $file->put ( str_replace ( "\n", PHP_EOL, $value ) . PHP_EOL ); } else { if ($key == 'ID') { $file->put ( "$value" . PHP_EOL ); } else { $file->put ( "$key: $value" . PHP_EOL ); } } } $file->close (); } $schema = HTMLPurifier_ConfigSchema::instance (); $adapter = new HTMLPurifier_ConfigSchema_StringHashReverseAdapter ( $schema ); foreach ( $schema->info as $ns => $ns_array ) { saveHash ( $adapter->get ( $ns ) ); foreach ( $ns_array as $dir => $x ) { saveHash ( $adapter->get ( $ns, $dir ) ); } } // vim: et sw=4 sts=4