fix homepage link logic

- double check index existence
- clean up indentation
This commit is contained in:
Ben Harris 2021-01-11 11:04:11 -05:00
parent e5b70b80b3
commit bc975a6581
2 changed files with 130 additions and 116 deletions

240
index.php
View File

@ -5,9 +5,9 @@ require __DIR__.'/vendor/autoload.php';
$parser = Tildeverse\Wiki\Parser::factory(); $parser = Tildeverse\Wiki\Parser::factory();
?> ?>
<div class="jumbotron"> <div class="jumbotron">
<h1>~team</h1> <h1>~team</h1>
<pre> <pre>
__ _ __ __ __ __ _ __ __ __
/ /_(_) /___/ /__ / /____ ____ _____ ___ / /_(_) /___/ /__ / /____ ____ _____ ___
/ __/ / / __ / _ \ / __/ _ \/ __ `/ __ `__ \ / __/ / / __ / _ \ / __/ _ \/ __ `/ __ `__ \
@ -15,132 +15,146 @@ $parser = Tildeverse\Wiki\Parser::factory();
\__/_/_/\__,_/\___(_)__/\___/\__,_/_/ /_/ /_/ \__/_/_/\__,_/\___(_)__/\___/\__,_/_/ /_/ /_/
</pre> </pre>
<br> <br>
<p>a digital community for socializing, learning, and making cool stuff</p> <p>a digital community for socializing, learning, and making cool stuff</p>
</div> </div>
<p> <p>
tilde.team is a shared system that provides an inclusive, tilde.team is a shared system that provides an inclusive,
non-commercial space for teaching, learning, practicing and non-commercial space for teaching, learning, practicing and
enjoying the social medium of unix. enjoying the social medium of unix.
</p> </p>
<p> <p>
i created this tilde after hearing about paul ford's i created this tilde after hearing about paul ford's
<a href="http://tilde.club/">tilde.club</a>. when i was unable <a href="http://tilde.club/">tilde.club</a>. when i was unable
to join due to the waitlist, i decided to create my own tilde. to join due to the waitlist, i decided to create my own tilde.
</p> </p>
<p>thanks for stopping by!</p> <p>thanks for stopping by!</p>
<p> <p>
tilde.team is a founding member of <a href="https://tildeverse.org">tildeverse.org</a>, tilde.team is a founding member of <a href="https://tildeverse.org">tildeverse.org</a>,
which is a collaborative effort among several <a href="https://tildeverse.org/members/"> which is a collaborative effort among several <a href="https://tildeverse.org/members/">
other tilde servers</a>. other tilde servers</a>.
</p> </p>
<p> <p>
hosting and domains are paid out-of-pocket. tilde.team will always hosting and domains are paid out-of-pocket. tilde.team will always
be free to use. however, if you are able and willing to pitch in, be free to use. however, if you are able and willing to pitch in,
you can <a href="https://bhh.sh/donate/">donate here</a>. you can <a href="https://bhh.sh/donate/">donate here</a>.
</p> </p>
<p><a href="/~ben/">~ben</a></p> <p><a href="/~ben/">~ben</a></p>
<br> <br>
<a href="/signup/" class="btn btn-primary btn-lg"> <a href="/signup/" class="btn btn-primary btn-lg">
<i class="fa fa-user-plus"></i> signup</a> <i class="fa fa-user-plus"></i> signup</a>
<br> <br>
<br> <br>
<hr> <hr>
<h3>tilde.team services</h3> <h3>tilde.team services</h3>
<?php include 'services.php'; ?> <?php include 'services.php'; ?>
<br> <br>
<hr> <hr>
<div class="row"> <div class="row">
<div class="col-md-7"> <div class="col-md-7">
<h1>~news~</h1> <h1>~news~</h1>
<?php foreach (array_slice(array_reverse(glob("news/pages/*.md")), 0, 4) as $page):
$parsed = $parser->parse(file_get_contents($page));
$yaml = $parsed->getYAML();
if (!$yaml["published"]) continue; ?>
<div class="list-group"> <?php foreach (array_slice(array_reverse(glob("news/pages/*.md")), 0, 4) as $page):
<div class="list-group-item"> $parsed = $parser->parse(file_get_contents($page));
<h3 class="list-group-item-heading"><?=$yaml["title"]?></h3> $yaml = $parsed->getYAML();
<em> if (!$yaml["published"]) continue; ?>
<a href="/news/<?=basename($page, ".md")?>"><?=$yaml["date"]?></a>
</em>
&bull;
<em>
<a href="/~<?=$yaml["author"]?>/"><?=$yaml["author"]?></a>
</em>
<hr>
<div class="list-group-item-text"><?=$parsed->getContent()?></div>
</div>
</div>
<?php endforeach; ?> <div class="list-group">
<div class="list-group-item">
<div class="list-group"> <h3 class="list-group-item-heading"><?=$yaml["title"]?></h3>
<div class="list-group-item"> <em><a href="/news/<?=basename($page, ".md")?>"><?=$yaml["date"]?></a></em>
<p class="list-group-item-text"><a href="/news/">news archive here...</a></p> &bull;
</div> <em><a href="/~<?=$yaml["author"]?>/"><?=$yaml["author"]?></a></em>
</div> <hr>
<div class="list-group-item-text"><?=$parsed->getContent()?></div>
<h1>~current projects~</h1>
<h4>on our <a href="https://tildegit.org/team">gitea</a></h4>
<hr>
<div class="list-group">
<?php foreach (json_decode(file_get_contents("https://tildegit.org/api/v1/orgs/team/repos")) ?? [] as $repo):
if ($repo->archived) continue; ?>
<div class="list-group-item">
<h3 style="display:inline;" class="list-group-item-heading">
<a href="<?=$repo->html_url?>"><?=$repo->name?></a>
</h3>
<?php if ($repo->website != ""): ?>
&mdash;
<p style="display:inline;"><em><a href="<?=$repo->website?>"><?=$repo->website?></a></em></p>
<?php endif; ?>
<br>
<p class="list-group-item-text"><?=$repo->description?></p>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="col-md-5">
<h1>~users~</h1>
<p><em><a href="/tilde.24h.html"><i class="fa fa-clock-o"></i> recent updates</a></em></p>
<p>if you're not listed here, make some changes to your page</p>
<p><a href="/users/">all users</a></p>
<br><br>
<div class="list-group">
<ul>
<?php
foreach (glob("/home/*") as $user):
if (!is_dir("$user/public_html")
|| (file_exists("$user/public_html/index.php")
&& in_array(sha1_file("$user/public_html/index.php"),
// these are the sha1s of two previous default pages
["ca32714c33abb57430583ad07efec6097ae1a044", "f190ba3a1ed796a20bea83304e45e799420c0716"])))
continue;
$user = basename($user); ?>
<li style="list-style: none; margin-left: -40px;">
<a href="/~<?=$user?>/" class="list-group-item">
<h6 class="list-group-item-heading">~<?=$user?></h6>
</a>
</li>
<?php endforeach; ?>
</ul>
</div> </div>
</div> </div>
<?php endforeach; ?>
<div class="list-group">
<div class="list-group-item">
<p class="list-group-item-text"><a href="/news/">news archive...</a></p>
</div>
</div> </div>
<h1>~current projects~</h1>
<h4>on our <a href="https://tildegit.org/team">gitea</a></h4>
<hr>
<div class="list-group">
<?php foreach (json_decode(file_get_contents("https://tildegit.org/api/v1/orgs/team/repos")) ?? [] as $repo):
if ($repo->archived) continue; ?>
<div class="list-group-item">
<h3 style="display:inline;" class="list-group-item-heading">
<a href="<?=$repo->html_url?>"><?=$repo->name?></a>
</h3>
<?php if ($repo->website != ""): ?>
&mdash;
<p style="display:inline;"><em><a href="<?=$repo->website?>"><?=$repo->website?></a></em></p>
<?php endif; ?>
<br>
<p class="list-group-item-text"><?=$repo->description?></p>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="col-md-5">
<h1>~users~</h1>
<p><em><a href="/tilde.24h.html"><i class="fa fa-clock-o"></i> recent updates</a></em></p>
<p>if you're not listed here, make some changes to your page</p>
<p><a href="/users/">all users</a></p>
<div class="list-group">
<ul>
<?php foreach (glob("/home/*/public_html", GLOB_ONLYDIR) as $user):
if (
(
// make sure we have an index page
!is_file("$user/index.html")
&& !is_file("$user/index.htm")
&& !is_file("$user/index.cgi")
&& !is_file("$user/index.php")
)
|| (
// if it's php, compare the hash to the default page
is_file("$user/index.php")
&& in_array(
sha1_file("$user/index.php"),
[
// these are the sha1s of two previous pages
"ca32714c33abb57430583ad07efec6097ae1a044",
"f190ba3a1ed796a20bea83304e45e799420c0716"
]
)
)
) continue;
$user = basename(dirname($user));
$usercount++; ?>
<li style="list-style: none; margin-left: -40px;">
<a href="/~<?=$user?>/" class="list-group-item">
<h6 class="list-group-item-heading">~<?=$user?></h6>
</a>
</li>
<?php endforeach; ?>
</ul>
<p>users who have updated their homepages: <?=$usercount?></p>
</div>
</div>
</div>
<?php include 'footer.php'; ?> <?php include 'footer.php'; ?>

View File

@ -13,12 +13,12 @@ $services = [
'webring' => ['fa' => 'life-ring', 'url' => '/ring/'], 'webring' => ['fa' => 'life-ring', 'url' => '/ring/'],
]; ];
$nav = isset($navbar); $nav = isset($navbar) && $navbar;
unset($navbar); unset($navbar);
foreach ($services as $name => $service) { ?> foreach ($services as $name => $service) { ?>
<?php if ($nav) echo '<li>'; ?> <?php if ($nav) echo '<li>'; ?>
<a href="<?=$service['url']?>" <?php if (!$nav) echo 'class="btn btn-default"'; ?>><i class="fa fa-<?=$service['fa']?>"></i> ~<?=$name?>~</a> <a href="<?=$service['url']?>" <?php if (!$nav) echo 'class="btn btn-default"'; ?>><i class="fa fa-<?=$service['fa']?>"></i> <?=$name?></a>
<?php if ($nav) echo '</li>'; ?> <?php if ($nav) echo '</li>' . PHP_EOL; ?>
<?php } <?php }