Pass arguments via CLI instead of via HTTP
This commit is contained in:
parent
28ccfa33c6
commit
3bf94da058
18
README.md
18
README.md
|
@ -6,18 +6,14 @@ Ceci est le code source du générateur de sites statiques qui créé le [site w
|
|||
|
||||
Placer les pages dans `<site>/md/<page>.md`. Le format est principalement du Markdown Extra mais il est aussi possible de rajouter de l'HTML et du PHP. Elles sont ensuite transformées par `compil.php` en pages HTML statiques, placées dans `<site>/<page>.html`
|
||||
|
||||
`compil.php` prend 2 arguments :
|
||||
* `pw`, mot de passe définit dans mdp.php
|
||||
* `site`, nom du dossier du site
|
||||
* `as`, qui dépend de l'endroit où sera déployé le site
|
||||
`compil.php <site> <destination>`
|
||||
|
||||
Pour déployer en DNS en liant vers `page`, utiliser `as=dns`.
|
||||
Pour déployer en Onion en liant vert `page`, utiliser `as=onion`.
|
||||
Pour déployer en DNS en liant vert `page.html`, ignorer `as`.
|
||||
Avec `site` qui est le dossier contenant le site et pour `destination` :
|
||||
* Pour déployer en DNS en liant vers `page`, utiliser `dns`.
|
||||
* Pour déployer en Onion en liant vert `page`, utiliser `onion`.
|
||||
* Pour déployer en DNS en liant vert `page.html`, ignorer ce dernier argument.
|
||||
|
||||
Exemple : http://tructructruc.onion/web/compil.php?as=onion&pw=change-moi&site=antopie
|
||||
|
||||
Les droits d'écriture sont requis sur <site>/css et temp/ par l'user qui exécute PHP.
|
||||
Les droits d'écriture sont requis sur `<site>/css` et `temp/` par l'user qui exécute PHP.
|
||||
|
||||
`compil.php` va chercher à utiliser [static-compress](https://github.com/neosmart/static-compress) dans `/usr/local/bin/static-compress` pour compresser les fichiers CSS et HTML créés.
|
||||
|
||||
|
@ -26,6 +22,8 @@ $ cargo install static-compress
|
|||
$ sudo mv ~/.cargo/bin/static-compress /usr/local/bin/
|
||||
```
|
||||
|
||||
Exemple de commande pour tester le développement en local après avoir modifié le site : `php compil.php antopie local && python3 -m http.server -b 127.0.0.1 -d antopie`
|
||||
|
||||
# Bibliothèques utilisées
|
||||
|
||||
Le dossier `bibli` contient les dépendances incluses dans le générateur de sites :
|
||||
|
|
33
compil.php
33
compil.php
|
@ -1,32 +1,32 @@
|
|||
<?php
|
||||
require "mdp.php";
|
||||
if (isset($_GET['pw']) AND $_GET['pw'] == $mdp AND isset($_GET['site'])) {
|
||||
|
||||
$site = $_GET['site'];
|
||||
if (php_sapi_name() === "cli") {
|
||||
define("SITE", $argv[1]);
|
||||
define("DESTINATION", $argv[2]);
|
||||
|
||||
require "bibli/parsedown/Parsedown.php";
|
||||
require "bibli/parsedown-extra/ParsedownExtra.php";
|
||||
require "bibli/parsedown-extra-plugin/ParsedownExtraPlugin.php";
|
||||
$nomsPages = array_diff(scandir($site . "/md"), array('..', '.'));
|
||||
$nomsPages = array_diff(scandir(SITE . "/md"), array('..', '.'));
|
||||
|
||||
require $site . "/pages.inc.php";
|
||||
require "inc/url.php";
|
||||
require SITE . "/pages.inc.php";
|
||||
|
||||
foreach ($nomsPages as $pageId) {
|
||||
$pageId = basename($pageId, ".md");
|
||||
|
||||
if (!file_exists("temp/" . $site))
|
||||
mkdir("temp/" . $site, 555);
|
||||
if (!file_exists("temp/" . SITE))
|
||||
mkdir("temp/" . SITE, 555);
|
||||
|
||||
// pages/exemple.md > temp/exemple.temp
|
||||
// Exécute le PHP vers du HTML
|
||||
ob_start();
|
||||
require $site . "/md/" . $pageId . ".md";
|
||||
file_put_contents("temp/" . $site . "/" . $pageId . ".temp", ob_get_contents());
|
||||
require SITE . "/md/" . $pageId . ".md";
|
||||
file_put_contents("temp/" . SITE . "/" . $pageId . ".temp", ob_get_contents());
|
||||
ob_end_clean();
|
||||
|
||||
// temp/exemple.temp > temp2/exemple.temp2
|
||||
// Compile le Markdown vers du HTML
|
||||
$contenuPage = file_get_contents("temp/" . $site . "/" . $pageId . ".temp");
|
||||
$contenuPage = file_get_contents("temp/" . SITE . "/" . $pageId . ".temp");
|
||||
|
||||
$Parsedown = new ParsedownExtraPlugin;
|
||||
$Parsedown = $Parsedown->setUrlsLinked(false);
|
||||
|
@ -34,7 +34,7 @@ if (isset($_GET['pw']) AND $_GET['pw'] == $mdp AND isset($_GET['site'])) {
|
|||
$Parsedown = $Parsedown->setBreaksEnabled(true);
|
||||
$contenuPage = $Parsedown->text($contenuPage);
|
||||
|
||||
file_put_contents("temp/" . $site . "/" . $pageId . ".temp2", $contenuPage);
|
||||
file_put_contents("temp/" . SITE . "/" . $pageId . ".temp2", $contenuPage);
|
||||
|
||||
// temp2/exemple.temp2 > exemple.html
|
||||
// Ajoute header et footer au HTML
|
||||
|
@ -49,22 +49,21 @@ if (isset($_GET['pw']) AND $_GET['pw'] == $mdp AND isset($_GET['site'])) {
|
|||
} else if ($pageMetas['type'] == "centré") {
|
||||
echo "<div class='centre'>";
|
||||
}
|
||||
require "temp/" . $site . "/" . $pageId . ".temp2";
|
||||
require "temp/" . SITE . "/" . $pageId . ".temp2";
|
||||
if ($pageMetas['type'] == "article") {
|
||||
echo "</article>";
|
||||
} else if ($pageMetas['type'] == "centré") {
|
||||
echo "</div>";
|
||||
}
|
||||
require "inc/footer.php";
|
||||
file_put_contents($site . "/" . $pageId . ".html", ob_get_contents());
|
||||
file_put_contents(SITE . "/" . $pageId . ".html", ob_get_contents());
|
||||
ob_end_clean();
|
||||
|
||||
}
|
||||
|
||||
// exemple.html > exemple.html.gz
|
||||
// Compresse les fichiers textes statiques HTML & CSS
|
||||
exec('/usr/local/bin/static-compress -c zopfli "' . $site . '/*.html" "' . $site . '/css/*.css"');
|
||||
|
||||
exec('/usr/local/bin/static-compress -c zopfli "' . SITE . '/*.html" "' . SITE . '/*.js" "' . SITE . '/css/*.css"');
|
||||
} else {
|
||||
echo "Non authentifié·e, ou pas de site définit";
|
||||
exit("Must be run from CLI");
|
||||
}
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
<?php
|
||||
|
||||
$adresse = basename($_SERVER['PHP_SELF'], '.php');
|
||||
|
||||
require_once "url.php";
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
|
@ -19,12 +11,12 @@
|
|||
require_once 'bibli/less.php/lib/Less/Autoloader.php';
|
||||
Less_Autoloader::register();
|
||||
|
||||
$options = array('cache_dir' => $site . '/css', 'compress' => true);
|
||||
$options = array('cache_dir' => SITE . '/css', 'compress' => true);
|
||||
$lessFiles = array('style.less' => '');
|
||||
$cssFileName = Less_Cache::Get($lessFiles, $options);
|
||||
?>
|
||||
<link type="text/css" rel="stylesheet" href="css/<?= $cssFileName ?>">
|
||||
<?php if ($site == "antopie") { ?>
|
||||
<?php if (SITE == "antopie") { ?>
|
||||
<link rel="icon" type="image/webp" href="img/icons/16.webp" sizes="16x16">
|
||||
<link rel="icon" type="image/webp" href="img/icons/32.webp" sizes="32x32">
|
||||
<link rel="icon" type="image/webp" href="img/icons/64.webp" sizes="64x64">
|
||||
|
@ -41,16 +33,16 @@
|
|||
<header>
|
||||
<?php
|
||||
|
||||
if ($site == "docs") {
|
||||
if (SITE == "docs") {
|
||||
|
||||
?>
|
||||
<a id="lienHeader" href=".">
|
||||
<div class="logo"><?= $site ?></div>
|
||||
<div class="logo"><?= SITE ?></div>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
|
||||
} else if ($site == "antopie") {
|
||||
} else if (SITE == "antopie") {
|
||||
|
||||
?>
|
||||
<a id="lienHeader" href=".">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
</main>
|
||||
<?php if ($site == "antopie") { ?>
|
||||
<?php if (SITE === "antopie") { ?>
|
||||
<footer class="antopie">
|
||||
<div class="liensfooter centre">
|
||||
<div class="lienfooter">
|
||||
|
@ -9,7 +9,7 @@
|
|||
</a>
|
||||
</div>
|
||||
|
||||
<?php if ($_GET['as'] == "onion") { ?>
|
||||
<?php if (DESTINATION === "onion") { ?>
|
||||
|
||||
<div class="lienfooter">
|
||||
<a href="https://antopie.org/<?= $pageId ?>" class="bouton">
|
||||
|
@ -45,13 +45,13 @@
|
|||
<span class="gomez run"></span>
|
||||
</div>
|
||||
</footer>
|
||||
<?php } else if ($site == "docs") { ?>
|
||||
<?php } else if (SITE === "docs") { ?>
|
||||
<footer>
|
||||
Site créé avec Base Antopie
|
||||
<br>
|
||||
Documentation sous <abbr title="Creative Commons Attribution et Partage dans les mêmes conditions">CC BY-SA</abbr>.
|
||||
<br>
|
||||
<a href="md/<?= $pageId ?>.md">Source du document</a> Kopimi
|
||||
<a href="md/<?= $pageId ?>.md">Source du contenu</a> | Kopimi
|
||||
</footer>
|
||||
|
||||
<?php } ?>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
// Les URL n'ont pas le .php sur le site d'Antopie
|
||||
function formerUrlLocale($page) {
|
||||
if ($_GET['as'] == "dns" OR $_GET['as'] == "onion") {
|
||||
if (DESTINATION === "dns" OR DESTINATION === "onion") {
|
||||
echo $page;
|
||||
} else {
|
||||
echo $page . ".html";
|
||||
|
@ -10,7 +10,7 @@ function formerUrlLocale($page) {
|
|||
|
||||
// Détermine si il faut utiliser les liens en .onion ou pas
|
||||
function clearnetOrOnion($clearnetUrl, $onionUrl) {
|
||||
if ($_GET['as'] == "onion") {
|
||||
if (DESTINATION === "onion") {
|
||||
return $onionUrl;
|
||||
} else {
|
||||
return $clearnetUrl;
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
<?php
|
||||
// Le fichier mdp.php doit être créé sur le modèle de mdp.template.php
|
||||
$mdp = "change-moi";
|
Reference in New Issue