|
@@ -0,0 +1,44 @@
|
|
|
+#include <AK/String.h>
|
|
|
+#include <LibCore/CFile.h>
|
|
|
+#include <LibMarkdown/MDDocument.h>
|
|
|
+#include <stdio.h>
|
|
|
+
|
|
|
+int main(int argc, char* argv[])
|
|
|
+{
|
|
|
+ const char* file_name = nullptr;
|
|
|
+ bool html = false;
|
|
|
+
|
|
|
+ for (int i = 1; i < argc; i++)
|
|
|
+ if (strcmp(argv[i], "--html") == 0)
|
|
|
+ html = true;
|
|
|
+ else
|
|
|
+ file_name = argv[i];
|
|
|
+
|
|
|
+ auto file = CFile::construct();;
|
|
|
+ bool success;
|
|
|
+ if (file_name == nullptr) {
|
|
|
+ success = file->open(STDIN_FILENO, CIODevice::OpenMode::ReadOnly, CFile::ShouldCloseFileDescription::No);
|
|
|
+ } else {
|
|
|
+ file->set_filename(file_name);
|
|
|
+ success = file->open(CIODevice::OpenMode::ReadOnly);
|
|
|
+ }
|
|
|
+ if (!success) {
|
|
|
+ fprintf(stderr, "Error: %s\n", file->error_string());
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ auto buffer = file->read_all();
|
|
|
+ dbg() << "Read size " << buffer.size();
|
|
|
+
|
|
|
+ String input { (char*)buffer.data(), buffer.size() };
|
|
|
+ MDDocument document;
|
|
|
+ success = document.parse(input);
|
|
|
+
|
|
|
+ if (!success) {
|
|
|
+ fprintf(stderr, "Error parsing\n");
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ String res = html ? document.render_to_html() : document.render_for_terminal();
|
|
|
+ printf("%s", res.characters());
|
|
|
+}
|