blob: 42cee97cf1780927a0f8eebace77e5bdb761a3fe (
plain)
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
|
<?php /* Copyright (c) 2024 Freya Murphy */
class Blog_model extends Model {
private $markdown;
function __construct($load) {
parent::__construct($load);
$this->markdown = new MarkdownParser();
}
private function load_blog(&$data) {
$blog = array();
$dir = $GLOBALS['assetroot'] . '/blog';
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if (str_starts_with($entry, ".")) {
continue;
}
$path = $dir . '/' . $entry;
$md = $this->markdown->parse($path);
$blog[$entry] = $md;
}
}
krsort($blog);
$data['blog'] = $blog;
}
public function get_data(): ?array {
$data = parent::get_data();
$this->load_blog($data);
$data['title'] = lang('title');
$data['desc'] = lang('blog_short_desc');
return $data;
}
private function load_post($name) {
$dir = $GLOBALS['assetroot'] . '/blog';
$path = $dir . '/' . $name;
if(!file_exists($path)) {
return FALSE;
}
$md = $this->markdown->parse($path);
return $md;
}
public function get_post($name) {
$data = parent::get_data();
$post = $this->load_post($name);
if (!$post) {
return FALSE;
}
$data['title'] = $post['meta']['name'];
$data['desc'] = $post['meta']['desc'];
$data['post'] = $post;
return $data;
}
private function load_writeup($name) {
$dir = $GLOBALS['assetroot'] . '/writeup';
$path = $dir . '/' . $name;
if(!file_exists($path)) {
return FALSE;
}
$md = $this->markdown->parse($path);
return $md;
}
public function get_writeup($name) {
$data = parent::get_data();
$writeup = $this->load_writeup($name);
if (!$writeup) {
return FALSE;
}
$data['title'] = $writeup['meta']['name'];
$data['desc'] = $writeup['meta']['desc'];
$data['post'] = $writeup;
return $data;
}
}
?>
|