6 typedef struct TodoItem {
13 char* read_file(char* file_name, long* size);
15 /* callbacks to parser */
16 int enter_block(MD_BLOCKTYPE type, void* detail, void* userdata);
17 int leave_block(MD_BLOCKTYPE type, void* detail, void* userdata);
18 int enter_span(MD_SPANTYPE type, void* detail, void* userdata);
19 int leave_span(MD_SPANTYPE type, void* detail, void* userdata);
20 int text(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size, void* userdata);
21 void debug_log(const char* msg, void* userdata);
24 const MD_PARSER parser = {
26 MD_DIALECT_COMMONMARK,
37 main(int argc, char** argv)
42 input_buffer = read_file("test_board.md", &input_size);
44 md_parse(input_buffer, input_size, &parser, NULL);
50 read_file(char* file_name, long* size)
51 { // apparently using seek isnt the greatest, may change to chunk reading later
56 file = fopen(file_name, "r");
58 printf("Something went wrong opening file\n");
62 fseek(file, 0, SEEK_END);
64 fseek(file, 0, SEEK_SET);
66 output = malloc(fsize+1); // maybe error check malloc
67 fread(output, 1, fsize, file);
69 printf("Something went wrong reading file\n");
74 output[fsize] = 0; // add null terminator
85 enter_block(MD_BLOCKTYPE type, void* detail, void* userdata)
91 leave_block(MD_BLOCKTYPE type, void* detail, void* userdata)
97 enter_span(MD_SPANTYPE type, void* detail, void* userdata)
103 leave_span(MD_SPANTYPE type, void* detail, void* userdata)
109 text(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size, void* userdata){
114 debug_log(const char* msg, void* userdata)