X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=include%2Fmarkdown.h;h=62d147130295b03d52378a242d74f0763405f516;hb=584bba9e9357ff7adc0fcedf75fb098c359abb33;hp=28b48e066c501336d184d0dbc33dd45354d9e472;hpb=76cedc9066d3fd65788f86ea5d0b71db98bb6e24;p=smdp.git diff --git a/include/markdown.h b/include/markdown.h index 28b48e0..62d1471 100644 --- a/include/markdown.h +++ b/include/markdown.h @@ -7,20 +7,15 @@ */ #include "cstring.h" - -#define SET_BIT(var, pos) ((var) |= (1<<(pos))) -#define CLEAR_BIT(var, pos) ((var) &= (~(1<<(pos)))) -#define TOGGLE_BIT(var, pos) ((var) ^= (1<<(pos))) -#define CHECK_BIT(var, pos) ((var) & (1<<(pos))) +#include "bitops.h" enum line_bitmask { - IS_HEADER, - IS_HEADER2, + IS_H1, + IS_H2, IS_QUOTE, IS_CODE, - IS_LIST, - IS_NUMLIST, - IS_HR + IS_HR, + IS_EMPTY }; typedef struct _line_t { @@ -28,29 +23,28 @@ typedef struct _line_t { struct _line_t *prev; struct _line_t *next; int bits; + int length; int offset; } line_t; -typedef struct _page_t { +typedef struct _slide_t { line_t *line; - struct _page_t *prev; - struct _page_t *next; -} page_t; - -typedef struct _document_t { - line_t *title; - line_t *author; - line_t *date; - page_t *page; -} document_t; + struct _slide_t *prev; + struct _slide_t *next; + int lines; +} slide_t; + +typedef struct _deck_t { + line_t *header; + slide_t *slide; + int slides; + int headers; +} deck_t; line_t *new_line(); line_t *next_line(line_t *prev); -page_t *new_page(); -page_t *next_page(page_t *prev); -document_t *new_document(); -int is_utf8(char ch); -int next_nonblank(cstring_t *text, int i); -document_t *markdown_load(FILE *input); +slide_t *new_slide(); +slide_t *next_slide(slide_t *prev); +deck_t *new_deck(); #endif // !defined( MARKDOWN_H )