1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<?php
if (!isset($_GET['i'])) {
header("Location: /articles");
die();
}
if (strpos($_GET['i'], "/") !== false && strpos($_GET['i'], ".") !== false && strpos($_GET['i'], "\\") !== false) {
header("Location: /articles");
die();
}
if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/../_posts/" . $_GET['i'] . ".md") || !is_file($_SERVER['DOCUMENT_ROOT'] . "/../_posts/" . $_GET['i'] . ".md")) {
header("Location: /articles");
die();
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/markdown.php";
$Parsedown = new Parsedown();
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/articles/getlist.php";
$list = getArticlesList(false);
$item = $list[$_GET['i']];
$_DESCRIPTION = str_replace("\n", " ", str_replace("\"", "“", $item["content"]["little"]));
$_TITLE = $item["title"];
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/dom/header.php";
?>
<div class="container" style="margin-top:30px;">
<div class="card" style="margin-bottom:20px;">
<div class="card-body">
<h1><?= $_TITLE ?></h1>
<p>Published on <?php
$dt = DateTime::createFromFormat('Ymd', $item["date"]);
echo($dt->format("M jS, Y"));
?>, by <?= implode(" and ", $item["author"]) ?></p>
</div>
</div>
</div>
<?php if (!is_null($item["cover"])): ?>
<header id="article-cover" style="background-image:url('<?= $item["cover"] ?>')"></header>
<?php endif; ?>
<div class="container" style="margin-top:15px;">
<article>
<?= $item["content"]["full"] ?>
</article>
</div>
<?php if ((isset($_COOKIE['_UnchainedTech_ExperimentalUI']) && $_COOKIE['_UnchainedTech_ExperimentalUI'] === "true") || $GLOBALS["experimentalUIisStable"]): ?>
<main id="comments" class="container">
<hr>
<h2>Comments</h2>
<div id="comment-section"></div>
<script>
initComments({
node: document.getElementById("comment-section"),
defaultHomeserverUrl: "https://matrix.cactus.chat:8448",
serverName: "cactus.chat",
siteName: "unchainedtech",
commentSectionId: "<?= $item["id"] ?>"
})
document.querySelector(".cactus-button.cactus-login-button").innerText += " with Matrix";
</script>
<style>
.cactus-login-form {
background: black !important;
}
.cactus-editor-buttons {
filter: invert(1);
}
</style>
</main>
<?php endif; ?>
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/dom/footer.php"; ?>
|