public function generate($folder)
{
$source_dir = $folder . '/source';
if (!is_dir($source_dir)) {
return false;
}
$parser = new Parser();
$document = $parser->parse(file_get_contents($source_dir . '/index.md'));
$frontmatter = $document->getYAML();
$html = $document->getContent();
$renderer = new BladeRenderer([__DIR__ . '/../resources/views'], ['cache_path' => $source_dir . '/_tmp']);
// Parse and include optional include markdown files
if (isset($frontmatter['includes'])) {
foreach ($frontmatter['includes'] as $include) {
if (file_exists($include_file = $source_dir . '/includes/_' . $include . '.md')) {
$document = $parser->parse(file_get_contents($include_file));
$html .= $document->getContent();
}
}
}
$output = $renderer->render('index', ['page' => $frontmatter, 'content' => $html]);
file_put_contents($folder . '/index.html', $output);
// Copy assets
rcopy($source_dir . '/assets/images/', $folder . '/images');
rcopy($source_dir . '/assets/stylus/fonts/', $folder . '/css/fonts');
}