parsedown = new ParsedownExtra(); } /** * @return array */ function parse(string $path): array { $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; } }