Add order to wiki categories

This commit is contained in:
litemotiv 2025-01-22 22:29:18 +01:00
parent 85305b357d
commit 0e2d568080
1 changed files with 47 additions and 39 deletions

View File

@ -2,50 +2,58 @@
$title = "tilde.club wiki";
include __DIR__."/../header.php";
?>
<h1 id="fancyboi">the tilde.club wiki</h1>
<div class="grid">
<div class="row">
<div class="col">
<p>here's the articles on our wiki:</p>
<ul>
<?php
$category_to_articles = [];
foreach (glob("source/*.md") as $file) {
$article = basename($file, ".md");
$title = preg_match("/title: (.*)/i", file_get_contents($file), $matches) ? $matches[1] : $article;
$category = preg_match("/category: (.*)/i", file_get_contents($file), $matches) ? $matches[1] : 'default';
if (array_key_exists($category, $category_to_articles)) {
array_push($category_to_articles[$category], [$article, $title]);
} else {
$category_to_articles[$category] = [[$article, $title]];
}
ksort($category_to_articles);
}
?>
<?php foreach ($category_to_articles as $category => $articles) { ?>
<li><?=$category?></li>
<p>Here's the articles on our wiki:</p>
<ul>
<?php
$article_titles = [];
$article_names = [];
foreach ($articles as $article) {
array_push($article_names, $article[0]);
array_push($article_titles, $article[1]);
}
$name_to_title = array_combine($article_names, $article_titles);
asort($name_to_title);
foreach ($name_to_title as $name => $title) { ?>
<li><a href="/wiki/<?=$name?>.html"><?=$title?></a></li>
<?php } ?>
</ul>
<?php
// category order
$order = ['tilde.club', 'tutorials', 'software', 'links'];
<?php } ?>
</ul>
$category_to_articles = [];
// get articles
foreach (glob("source/*.md") as $file)
{
$article = basename($file, ".md");
$title = preg_match("/title: (.*)/i", file_get_contents($file), $matches) ? $matches[1] : $article;
$category = preg_match("/category: (.*)/i", file_get_contents($file), $matches) ? $matches[1] : 'default';
if (array_key_exists($category, $category_to_articles))
array_push($category_to_articles[$category], [$article, $title]);
else
$category_to_articles[$category] = [[$article, $title]];
ksort($category_to_articles);
}
foreach ($order as $category)
{
echo '<li>'.ucwords($category).'</li>';
echo '<ul>';
$article_titles = [];
$article_names = [];
foreach ($category_to_articles[$category] as $article)
{
array_push($article_names, $article[0]);
array_push($article_titles, $article[1]);
}
$name_to_title = array_combine($article_names, $article_titles);
asort($name_to_title);
foreach ($name_to_title as $name => $title)
echo '<li><a href="/wiki/'.$name.'.html">'.$title.'</a></li>';
echo '</ul><br>';
}
?>
</ul>
</div>
</div>
<?php include "../footer.php"; ?>
<?php include "../footer.php";