Commit: 3f7e30e96a78e48a9434630a43945b6d466d6852 Author: Stanislav Malyshev <[email protected]> Mon, 10 Jun 2013 18:19:40 -0700 Parents: 0c4d1244f4ad792ea5ed125268c083a582970ab1 Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=3f7e30e96a78e48a9434630a43945b6d466d6852 Log: add script for converting NEWS into HTML Changed paths: A bin/news2html Diff: diff --git a/bin/news2html b/bin/news2html new file mode 100755 index 0000000..b499010 --- /dev/null +++ b/bin/news2html @@ -0,0 +1,70 @@ +#!/usr/local/bin/php +<?php +PHP_SAPI == 'cli' or die("Please run this script using the cli sapi"); + +// get args +if($argc < 3) { + echo "Use: $argv[0] /path/to/php-5.4.16/NEWS 5.4.16\n"; + exit(1); +} +// find NEWS entry +$fp = fopen($argv[1], "r"); +if(!$fp) { + die("Can not open $argv[1]"); +} +$version = $argv[2]; +$inside = false; +$entries = array(); +while(($ln = fgets($fp)) !== false) { + if(preg_match("/(.. ... ....), PHP $version/", $ln, $m)) { + // got entry start + $inside = true; + $date = strtr($m[1], " ", "-"); + continue; + } + if($inside) { + if(preg_match('/, PHP \d+.\d+.\d+/', $ln)) { + // next entry - we're done + break; + } + if($ln == "\n") { + $module = 'Core'; + continue; + } + if($ln[0] == '-') { + // module + $module = trim(substr($ln, 1), " \t\n:"); + } elseif(preg_match('/^\s+\.\s/',$ln)) { + $entries[$module][] = trim(preg_replace('/^\s+\.\s+/', '', $ln)); + } else { + // continued line + $c = count($entries[$module])-1; + $entries[$module][$c] = trim($entries[$module][$c] )." ".trim($ln); + } + } +} +echo <<<HEAD +<a name="$version"></a><!-- {{{ $version --> +<h3>Version $version</h3> +<b>$date</b> +<ul> +HEAD; + +foreach($entries as $module => $items) { + echo "<li>$module:\n<ul>\n"; + foreach($items as $item) { + // strip author + $item = preg_replace('/\.\s+\(.+?\)$/', '.', $item); + // encode HTML + $item = htmlspecialchars($item, ENT_NOQUOTES); + // convert bug numbers + $item = preg_replace( + array('/Fixed bug #([0-9]+)/', '/Fixed PECL bug #([0-9]+)/', '/FR #([0-9]+)/'), + array('<?php bugfix(\1); ?>', '<?php peclbugfix(\1); ?>', 'FR <?php bugl(\1); ?>'), + $item + ); + echo " <li>$item</li>\n"; + } + echo "</ul></li>\n"; +} +echo "</ul>\n<!-- }}} -->\n\n"; -- PHP Webmaster List Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
