#define CHECK_BIT(var, pos) ((var) & (1<<(pos)))
enum line_bitmask {
- IS_HEADER,
- IS_HEADER2,
+ IS_H1,
+ IS_H2,
IS_QUOTE,
IS_CODE,
- IS_LIST,
- IS_NUMLIST
+ IS_HR,
+ IS_EMPTY
};
typedef struct _line_t {
cstring_t *text;
+ struct _line_t *prev;
struct _line_t *next;
int bits;
- int left_white_space;
+ int offset;
} line_t;
typedef struct _page_t {
- line_t *lines;
+ 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 *pages;
+ line_t *header;
+ page_t *page;
} document_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);
+int next_blank(cstring_t *text, int i);
+document_t *markdown_load(FILE *input);
+
#endif // !defined( MARKDOWN_H )