65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Generates XML and HTML documents describing configuration.
 | |
|  * @note PHP 5.2+ only!
 | |
|  */
 | |
| 
 | |
| /*
 | |
| TODO:
 | |
| - make XML format richer
 | |
| - extend XSLT transformation (see the corresponding XSLT file)
 | |
| - allow generation of packaged docs that can be easily moved
 | |
| - multipage documentation
 | |
| - determine how to multilingualize
 | |
| - add blurbs to ToC
 | |
| */
 | |
| 
 | |
| if (version_compare(PHP_VERSION, '5.2', '<')) exit('PHP 5.2+ required.');
 | |
| error_reporting(E_ALL | E_STRICT);
 | |
| 
 | |
| // load dual-libraries
 | |
| require_once dirname(__FILE__) . '/../extras/HTMLPurifierExtras.auto.php';
 | |
| require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
 | |
| 
 | |
| // setup HTML Purifier singleton
 | |
| HTMLPurifier::getInstance(array(
 | |
|     'AutoFormat.PurifierLinkify' => true
 | |
| ));
 | |
| 
 | |
| $builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
 | |
| $interchange = new HTMLPurifier_ConfigSchema_Interchange();
 | |
| $builder->buildDir($interchange);
 | |
| $loader = dirname(__FILE__) . '/../config-schema.php';
 | |
| if (file_exists($loader)) include $loader;
 | |
| $interchange->validate();
 | |
| 
 | |
| $style = 'plain'; // use $_GET in the future, careful to validate!
 | |
| $configdoc_xml = dirname(__FILE__) . '/configdoc.xml';
 | |
| 
 | |
| $xml_builder = new HTMLPurifier_ConfigSchema_Builder_Xml();
 | |
| $xml_builder->openURI($configdoc_xml);
 | |
| $xml_builder->build($interchange);
 | |
| unset($xml_builder); // free handle
 | |
| 
 | |
| $xslt = new ConfigDoc_HTMLXSLTProcessor();
 | |
| $xslt->importStylesheet(dirname(__FILE__) . "/styles/$style.xsl");
 | |
| $output = $xslt->transformToHTML($configdoc_xml);
 | |
| 
 | |
| if (!$output) {
 | |
|     echo "Error in generating files\n";
 | |
|     exit(1);
 | |
| }
 | |
| 
 | |
| // write out
 | |
| file_put_contents(dirname(__FILE__) . "/$style.html", $output);
 | |
| 
 | |
| if (php_sapi_name() != 'cli') {
 | |
|     // output (instant feedback if it's a browser)
 | |
|     echo $output;
 | |
| } else {
 | |
|     echo "Files generated successfully.\n";
 | |
| }
 | |
| 
 | |
| // vim: et sw=4 sts=4
 | 
