1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/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
|