2020-08-02 14:15:06 +02:00
< ? php
2021-09-15 23:15:48 +02:00
if ( php_sapi_name () === " cli " ) {
define ( " SITE " , $argv [ 1 ]);
define ( " DESTINATION " , $argv [ 2 ]);
2020-08-02 14:15:06 +02:00
require " bibli/parsedown/Parsedown.php " ;
2021-04-05 18:32:22 +02:00
require " bibli/parsedown-extra/ParsedownExtra.php " ;
2021-09-15 23:15:48 +02:00
$nomsPages = array_diff ( scandir ( SITE . " /md " ), array ( '..' , '.' ));
2021-04-05 18:32:22 +02:00
2021-09-15 23:15:48 +02:00
require " inc/url.php " ;
require SITE . " /pages.inc.php " ;
2021-04-05 18:32:22 +02:00
foreach ( $nomsPages as $pageId ) {
$pageId = basename ( $pageId , " .md " );
2021-09-15 23:15:48 +02:00
if ( ! file_exists ( " temp/ " . SITE ))
mkdir ( " temp/ " . SITE , 555 );
2020-08-02 14:15:06 +02:00
// pages/exemple.md > temp/exemple.temp
2021-04-05 18:32:22 +02:00
// Exécute le PHP vers du HTML
2020-08-02 14:15:06 +02:00
ob_start ();
2021-09-15 23:15:48 +02:00
require SITE . " /md/ " . $pageId . " .md " ;
file_put_contents ( " temp/ " . SITE . " / " . $pageId . " .temp " , ob_get_contents ());
2020-08-02 14:15:06 +02:00
ob_end_clean ();
// temp/exemple.temp > temp2/exemple.temp2
2021-04-05 18:32:22 +02:00
// Compile le Markdown vers du HTML
2021-09-15 23:15:48 +02:00
$contenuPage = file_get_contents ( " temp/ " . SITE . " / " . $pageId . " .temp " );
2021-04-05 18:32:22 +02:00
2021-09-18 19:08:26 +02:00
$Parsedown = new ParsedownExtra ;
2021-04-05 18:32:22 +02:00
$Parsedown = $Parsedown -> setUrlsLinked ( false );
$Parsedown = $Parsedown -> setMarkupEscaped ( false );
$Parsedown = $Parsedown -> setBreaksEnabled ( true );
$contenuPage = $Parsedown -> text ( $contenuPage );
2021-09-15 23:15:48 +02:00
file_put_contents ( " temp/ " . SITE . " / " . $pageId . " .temp2 " , $contenuPage );
2020-08-02 14:15:06 +02:00
// temp2/exemple.temp2 > exemple.html
2021-04-05 18:32:22 +02:00
// Ajoute header et footer au HTML
2020-08-02 14:15:06 +02:00
ob_start ();
2021-04-05 18:32:22 +02:00
$pageMetas = getPageMetas ( $pageId );
2020-08-02 14:15:06 +02:00
require " inc/debut.php " ;
2021-04-05 18:32:22 +02:00
if ( $pageMetas [ 'type' ] == " article " ) {
echo " <h1> " . $pageMetas [ 'h1' ] . " </h1> " ;
2020-08-02 14:15:06 +02:00
echo " <article> " ;
2021-04-05 18:32:22 +02:00
} else if ( $pageMetas [ 'type' ] == " centré " ) {
2020-08-02 14:15:06 +02:00
echo " <div class='centre'> " ;
}
2021-09-15 23:15:48 +02:00
require " temp/ " . SITE . " / " . $pageId . " .temp2 " ;
2021-04-05 18:32:22 +02:00
if ( $pageMetas [ 'type' ] == " article " ) {
2020-08-02 14:15:06 +02:00
echo " </article> " ;
2021-04-05 18:32:22 +02:00
} else if ( $pageMetas [ 'type' ] == " centré " ) {
2020-08-02 14:15:06 +02:00
echo " </div> " ;
}
require " inc/footer.php " ;
2021-09-15 23:15:48 +02:00
file_put_contents ( SITE . " / " . $pageId . " .html " , ob_get_contents ());
2020-08-02 14:15:06 +02:00
ob_end_clean ();
}
// exemple.html > exemple.html.gz
2021-04-05 18:32:22 +02:00
// Compresse les fichiers textes statiques HTML & CSS
2021-09-15 23:15:48 +02:00
exec ( '/usr/local/bin/static-compress -c zopfli "' . SITE . '/*.html" "' . SITE . '/*.js" "' . SITE . '/css/*.css"' );
2020-08-02 14:15:06 +02:00
} else {
2021-09-15 23:15:48 +02:00
exit ( " Must be run from CLI " );
2020-08-02 14:15:06 +02:00
}