52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
require_once "Parsedown.php";
|
|
|
|
/**
|
|
* Converte Markdown in HTML da sorgente locale o remota.
|
|
*
|
|
* @param string $localPath Percorso del file sul server
|
|
* @param string $remoteUrl URL del file .md
|
|
* @return string HTML generato
|
|
*/
|
|
function getMarkdownContent($localPath, $remoteUrl)
|
|
{
|
|
clearstatcache();
|
|
|
|
$markdown = false;
|
|
// Definiamo il percorso assoluto completo
|
|
$fullLocalPath = $localPath;
|
|
|
|
// 1. Tentativo Locale (Corretto)
|
|
if (file_exists($fullLocalPath)) {
|
|
$markdown = file_get_contents($fullLocalPath);
|
|
}
|
|
|
|
// 2. Fallback Remoto
|
|
if ($markdown === false) {
|
|
$ch = curl_init($remoteUrl);
|
|
// Sostituisci la parte del cURL con questa logica di "cache busting"
|
|
$timestamp = time();
|
|
$separator = (strpos($remoteUrl, '?') !== false) ? '&' : '?';
|
|
$urlWithNoCache = $remoteUrl . $separator . "t=" . $timestamp;
|
|
|
|
curl_setopt($ch, CURLOPT_URL, $urlWithNoCache);
|
|
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
|
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
$markdown = curl_exec($ch);
|
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
|
|
if ($markdown === false || $httpCode !== 200) {
|
|
return "<p>Errore: Impossibile recuperare il contenuto ($httpCode).</p>";
|
|
}
|
|
}
|
|
|
|
$Parsedown = new Parsedown();
|
|
// Importante: Rimuove eventuali spazi bianchi superflui all'inizio/fine
|
|
return '<div class="markdown-body">' . $Parsedown->text(trim($markdown)) . '</div>';
|
|
}
|
|
|
|
?>
|