blob: 39b430cee84a2aa43e76275332ffcd888771250f (
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
|
<?php /* Copyright (c) 2024 Freya Murphy */
class MarkdownParser {
private $parsedown;
function __construct() {
$this->parsedown = new ParsedownExtra();
}
function parse($path) {
$content = file_get_contents($path);
$data = array(
'meta' => array(),
'content' => $content
);
if (str_starts_with($content, '---')) {
$parts = explode('---', $content);
$data['content'] = trim(implode('---', array_slice($parts, 2)));
$meta = array_filter(explode("\n", $parts[1]), fn($x) => $x != '');
foreach ($meta as $set) {
$parts = explode(": ", $set);
$key = trim($parts[0]);
$value = trim($parts[1]);
$data['meta'][$key] = $value;
}
}
$data['content'] = $this->parsedown->text($data['content']);
return $data;
}
}
|