diff --git a/README.md b/README.md index 360aae8..19acef5 100755 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ mkht.php is a PHP script for building Gemini, Markdown and HTML/CSS sites from s Place your pages tree in `/src/*/*.(gmi|md)`. -Optionnal files: +Optional files: * `/config.ini` * `/style.less` * `/logo.png` diff --git a/mkht.php b/mkht.php index 5405ac7..3684c24 100755 --- a/mkht.php +++ b/mkht.php @@ -1,7 +1,7 @@ #!/usr/bin/php CSS // Create CSS output directory if needed if (!file_exists(SITE . "/css")) - mkdir(SITE . "/css", 0755); + mkdir(SITE . "/css", 0755); require ROOT . "/less.php/lib/Less/Autoloader.php"; Less_Autoloader::register(); $colorScheme = array( - "darkColor" => "black", - "lightColor" => "white", - "mainColor" => "red", + "darkColor" => "black", + "lightColor" => "white", + "mainColor" => "red", ); $options = array( - 'cache_dir' => SITE . '/css', - 'compress' => true, + 'cache_dir' => SITE . '/css', + 'compress' => true, ); if (file_exists(SITE . "/style.less")) - $lessFiles = array(ROOT . '/style.less' => '', SITE . '/style.less' => ''); + $lessFiles = array(ROOT . '/style.less' => '', SITE . '/style.less' => ''); else - $lessFiles = array(ROOT . '/style.less' => ''); + $lessFiles = array(ROOT . '/style.less' => ''); define("CSS_FILENAME", Less_Cache::Get($lessFiles, $options, $colorScheme)); // URLs don't end with .html on the Antopie website function formerUrlLocale($page) { - if (DESTINATION === "dns" OR DESTINATION === "onion") { - echo $page; - } else { - echo $page . ".html"; - } + if (DESTINATION === "dns" OR DESTINATION === "onion") { + echo $page; + } else { + echo $page . ".html"; + } } // Determine whether links need to use Onion or DNS function clearnetOrOnion($clearnetUrl, $onionUrl) { - if (DESTINATION === "onion") { - return $onionUrl; - } else { - return $clearnetUrl; - } + if (DESTINATION === "onion") { + return $onionUrl; + } else { + return $clearnetUrl; + } } exec(FIND . " " . SITE . "/src -name '*.gmi' -o -name '*.md'", $pages); foreach ($pages as $page) { - $pathParts = pathinfo(str_replace("/src", "", $page)); + $pathParts = pathinfo(str_replace("/src", "", $page)); - // Create parent directory if needed - if (!file_exists($pathParts['dirname'])) - mkdir($pathParts['dirname'], 0755, true); + // Create parent directory if needed + if (!file_exists($pathParts['dirname'])) + mkdir($pathParts['dirname'], 0755, true); - // Execute PHP code - ob_start(); - eval("?>" . file_get_contents($page)); - file_put_contents($pathParts['dirname'] . "/" . $pathParts['basename'], ob_get_contents()); - ob_end_clean(); + // Execute PHP code + ob_start(); + eval("?>" . file_get_contents($page)); + file_put_contents($pathParts['dirname'] . "/" . $pathParts['basename'], ob_get_contents()); + ob_end_clean(); - // Convert Gemtext to Markdown - if ($pathParts['extension'] === "gmi") { - $gmilines = explode("\n", file_get_contents($pathParts['dirname'] . "/" . $pathParts['basename'])); + // Convert Gemtext to Markdown + if ($pathParts['extension'] === "gmi") { + $gmilines = explode("\n", file_get_contents($pathParts['dirname'] . "/" . $pathParts['basename'])); - foreach ($gmilines as $key => $line) { - if (substr($line, 0, 2) === "=>") { - preg_match("/=> +(.[^ ]+)/", $line, $lnUrl); - preg_match("/=> +.[^ ]+ +(.+)/", $line, $lnTitle); + foreach ($gmilines as $key => $line) { + if (substr($line, 0, 2) === "=>") { + preg_match("/=> +(.[^ ]+)/", $line, $lnUrl); + preg_match("/=> +.[^ ]+ +(.+)/", $line, $lnTitle); - $urlPathParts = pathinfo(parse_url($lnUrl[1], PHP_URL_PATH)); + $urlPathParts = pathinfo(parse_url($lnUrl[1], PHP_URL_PATH)); - // .gmi > .md for local links - if (!str_contains($lnUrl[1], ":") AND $urlPathParts['extension'] === "gmi") // If it's a local link - $lnUrl[1] = $urlPathParts['dirname'] . "/" . $urlPathParts['filename'] . ".md"; + // .gmi > .md for local links + if (!str_contains($lnUrl[1], ":") AND $urlPathParts['extension'] === "gmi") // If it's a local link + $lnUrl[1] = $urlPathParts['dirname'] . "/" . $urlPathParts['filename'] . ".md"; - if (isset($lnTitle[1])) { - $gmilines[$key] = "[" . $lnTitle[1] . "](" . $lnUrl[1] . ")"; - } else { - $gmilines[$key] = "[" . $lnUrl[1] . "](" . $lnUrl[1] . ")"; - } - } - } - $code = ""; - foreach ($gmilines as $line) { - $code = $code . "\n" . $line; - } - file_put_contents($pathParts['dirname'] . "/" . $pathParts['filename'] . ".md", $code); - } + if (isset($lnTitle[1])) { + $gmilines[$key] = "[" . $lnTitle[1] . "](" . $lnUrl[1] . ")"; + } else { + $gmilines[$key] = "[" . $lnUrl[1] . "](" . $lnUrl[1] . ")"; + } + } + } + $code = ""; + foreach ($gmilines as $line) { + $code = $code . "\n" . $line; + } + file_put_contents($pathParts['dirname'] . "/" . $pathParts['filename'] . ".md", $code); + } - // Compile Markdown to HTML with Parsedown - $markdown = file_get_contents($pathParts['dirname'] . "/" . $pathParts['filename'] . ".md"); - if (preg_match("/# (.*)\\n/", $markdown, $matches)) // If a main heading is found - $title = $matches[1]; // Then it will be the HTML page