<?php

require_once __DIR__ . '/base.php';

function process_html($s) {
	$pattern = '/<!--(.*)-->/Uis';
	$s = preg_replace($pattern, '', $s);

	$pattern = '/(?:(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:(?<!\:|\\\|\'|\")\/\/.*))/';
	$s = preg_replace($pattern, '', $s);

	$pattern = '/\s+/s';
	$s = preg_replace($pattern, ' ', $s);
	return $s;
}

$no_tpl_files = ['help', 'cfg_wifi_conn'];

$dest = ESP_DEMO ? __DIR__ . '/../html_demo/' : __DIR__ . '/../html/';

ob_start();
foreach($_pages as $_k => $p) {
	if ($p->bodyclass == 'api') {
		if (ESP_DEMO) {
			$target = 'term.html';
			echo "Generating: ~$_k.html -> $target\n";
			$s = "<!DOCTYPE HTML><meta http-equiv=\"refresh\" content=\"0;url=$target\">";
		} else {
			continue;
		}
	} else {
		echo "Generating: $_k ($p->title)\n";

		$_GET['page'] = $_k;
		ob_flush();                                   // print the message
		ob_clean();                                   // clean up
		include(__DIR__ . '/index.php');
		$s = ob_get_contents();                       // grab the output

		// remove newlines and comments
		// as tests have shown, it saves just a couple kilobytes,
		// making it not a very big improvement at the expense of ugly html.
		//	$s = process_html($s);
		ob_clean();
	}                                 // clean up
	$of = $dest . $_k . ((in_array($_k, $no_tpl_files)||ESP_DEMO) ? '.html' : '.tpl');
	file_put_contents($of, $s);                   // write to a file
}

ob_flush();