public static function get_html($exception) {
		$subject = self::get_subject($exception);

		if ($exception instanceof \ErrorException) {
			$error_type = \Skeleton\Error\Util\Misc::translate_error_code($exception->getSeverity());
		} else {
			$error_type = 'Exception';
		}

		$error_info = '';
		$error_info .= 'Error: ' . $exception->getMessage() . "\n";
		$error_info .= 'Type: ' . $error_type . "\n";
		$error_info .= 'File: ' . $exception->getFile() . "\n";
		$error_info .= 'Line: ' . $exception->getLine() . "\n\n";
		$error_info .= 'Time: ' . date('Y-m-d H:i:s') . "\n";

		$html =
		'<html>' .
		'   <head>' .
		'       <title>' . $subject . '</title>' .
		'       <style type="text/css">' .
		'           body { font-family: sans-serif; background: #eee; } ' .
		'           pre { border: 1px solid #1b2582; background: #ccc; padding: 5px; }' .
		'           h1 { width: 100%; background: #183452; font-weight: bold; color: #fff; padding: 2px; font-size: 16px;} ' .
		'           h2 { font-size: 15px; } ' .
		'       </style>' .
		'   </head>' .
		'   <body>' .
		'   <h1>' . $subject . '</h1>';

		$html .= '<h2>Message</h2> <pre>' . $exception->getMessage() . '</pre>';

		$html .= '<h2>Info</h2> <pre>' . $error_info . '</pre>';

		// Backtraces are not very useful for anything else but real exceptions
		if (!($exception instanceof \ErrorException)) {
			ob_start();
				debug_print_backtrace();
				$backtrace = ob_get_contents();
			ob_end_clean();

			$html .= '<h2>Backtrace</h2> <pre>' . $backtrace . '</pre>';
		}

		$vartrace = [
			'_GET'      => isset($_GET) ? $_GET : null,
			'_POST'     => isset($_POST) ? $_POST : null,
			'_COOKIE'   => isset($_COOKIE) ? $_COOKIE : null,
			'_SESSION'  => isset($_SESSION) ? $_SESSION : null,
			'_SERVER'   => isset($_SERVER) ? $_SERVER : null
		];

		$html .= '<h2>Vartrace</h2> <pre> ' . print_r($vartrace, true) . '</pre>';

		$html .=
		'   </body>' .
		'</html>';

		return $html;
	}