mirror of
https://codeberg.org/Kankys/eos-modern.git
synced 2026-04-30 17:28:43 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
// public/article.php
|
||||
|
||||
require_once __DIR__ . '/../includes/config.php';
|
||||
|
||||
$slug = $_GET['slug'] ?? '';
|
||||
|
||||
if (empty($slug)) {
|
||||
die("Chyba: Chybí parametr slug.");
|
||||
}
|
||||
|
||||
// Cesta k Markdown souboru (definována v config.php jako PATH_CONTENT)
|
||||
$markdownFile = PATH_CONTENT . $slug . '.md';
|
||||
|
||||
if (!file_exists($markdownFile)) {
|
||||
die("Chyba: Článek nenalezen v " . $markdownFile);
|
||||
}
|
||||
|
||||
// Načtení obsahu
|
||||
$markdownContent = file_get_contents($markdownFile);
|
||||
|
||||
// --- ZDE JE KLÍČOVÁ ČÁST: PŘEVOD MARKDOWN NA HTML ---
|
||||
// Pokud nemáš nainstalovanou knihovnu (např. Parsedown), musíš převést ručně nebo použít jednoduchý parser.
|
||||
// Pro testování použijeme jednoduchou funkci, která převede základní Markdown.
|
||||
|
||||
function markdownToHtml($text) {
|
||||
// H1 - H6
|
||||
$text = preg_replace('/^# (.*$)/m', '<h1>$1</h1>', $text);
|
||||
$text = preg_replace('/^## (.*$)/m', '<h2>$1</h2>', $text);
|
||||
$text = preg_replace('/^### (.*$)/m', '<h3>$1</h3>', $text);
|
||||
|
||||
// Tučné a kurzíva
|
||||
$text = preg_replace('/\*\*(.*?)\*\*/', '<strong>$1</strong>', $text);
|
||||
$text = preg_replace('/\*(.*?)\*/', '<em>$1</em>', $text);
|
||||
|
||||
// Odkazy [text](url)
|
||||
$text = preg_replace('/\[(.*?)\]\((.*?)\)/', '<a href="$2">$1</a>', $text);
|
||||
|
||||
// Kódové bloky ``` ... ```
|
||||
$text = preg_replace('/```(.*?)```/s', '<pre><code class="language-bash">$1</code></pre>', $text);
|
||||
|
||||
// Inline kód ` ... `
|
||||
$text = preg_replace('/`(.*?)`/', '<code>$1</code>', $text);
|
||||
|
||||
// Seznamy -
|
||||
$text = preg_replace('/^- (.*$)/m', '<li>$1</li>', $text);
|
||||
$text = preg_replace('/(<li>.*<\/li>\n?)+/', '<ul>$0</ul>', $text);
|
||||
|
||||
// Odstranění prázdných řádků a převod na <p>
|
||||
$text = preg_replace('/\n\n+/', '</p><p>', $text);
|
||||
$text = '<p>' . $text . '</p>';
|
||||
|
||||
// Čištění
|
||||
$text = str_replace('</p><p></p>', '</p>', $text);
|
||||
$text = str_replace('<p></p>', '', $text);
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
// Převod
|
||||
$htmlContent = markdownToHtml($markdownContent);
|
||||
|
||||
// Získání titulku z prvního řádku (pro <title> a <h1>)
|
||||
$title = $slug;
|
||||
if (preg_match('/^# (.*$)/m', $markdownContent, $matches)) {
|
||||
$title = $matches[1];
|
||||
}
|
||||
|
||||
// Datum (z prvního řádku > Datum: ...)
|
||||
$date = date('Y-m-d');
|
||||
if (preg_match('/> Datum: (.*$)/m', $markdownContent, $dateMatches)) {
|
||||
$date = $dateMatches[1];
|
||||
}
|
||||
|
||||
// Obsah stránky
|
||||
$content = '
|
||||
<article>
|
||||
<h1 class="article-title">' . htmlspecialchars($title) . '</h1>
|
||||
<span class="article-date">' . htmlspecialchars($date) . '</span>
|
||||
<div class="content-body">
|
||||
' . $htmlContent . '
|
||||
</div>
|
||||
</article>
|
||||
';
|
||||
|
||||
$pageTitle = $title . ' - EndeavourOS CZ';
|
||||
require PATH_TEMPLATES . 'base.php';
|
||||
?>
|
||||
Reference in New Issue
Block a user