load($gemlog_input_path); $titles = $gemlog->getTitles(); foreach ($titles as $title) { $encoded_title = str_replace('/', '%2F', $title); $article_path = $dir . '/' . $encoded_title . '.md'; $article->load($article_path); $gemtext = $article->convert(); if (!$article->isPublished() || empty($gemtext)) { continue; } $sanitized_title = $title; if ($trim_prefix && strpos($sanitized_title, $trim_prefix) === 0) { $sanitized_title = substr($sanitized_title, strlen($trim_prefix)); } $sanitized_title = strtolower($sanitized_title); $sanitized_title = str_replace([' ', ','], ['-'], $sanitized_title); $sanitized_title .= '.gmi'; $output_path = $gemlog_output_path . '/' . $sanitized_title; echo "Writing to ", $sanitized_title, "...\n"; $date = strtotime($article->getProperties()['date'] ?? null); if (empty($date)) { throw new Exception('Article ' . $title . ' has no date property'); } $output = sprintf( "# %s\n\n%s\n\n%s\n\n=> /gemlog.gmi gemlog\n=> / home\n", $title, date('j F Y', $date), $gemtext ); file_put_contents($output_path, $output); }