removed duplicate function + added some comments to header files
[smdp.git] / include / markdown.h
1 #if !defined( MARKDOWN_H )
2 #define MARKDOWN_H
3
4 /*
5  * A implementation of markdown objects.
6  *
7  * enum: line_bitmask which enumerates markdown formating bits
8  *
9  * struct: deck_t the root object representing a deck of slides
10  * struct: slide_t a linked list element of type slide contained in a deck
11  * struct: line_t a linked list element of type line contained in a slide
12  *
13  * function: new_deck to initialize a new deck
14  * function: new_slide to initialize a new linked list of type slide
15  * function: next_slide to extend a linked list of type slide by one element
16  * function: new_line to initialize a new linked list of type line
17  * function: next_line to extend a linked list of type line by one element
18  *
19  */
20
21 #include "cstring.h"
22 #include "bitops.h"
23
24 enum line_bitmask {
25     IS_H1,
26     IS_H2,
27     IS_QUOTE,
28     IS_CODE,
29     IS_HR,
30     IS_EMPTY
31 };
32
33 typedef struct _line_t {
34     cstring_t *text;
35     struct _line_t *prev;
36     struct _line_t *next;
37     int bits;
38     int length;
39     int offset;
40 } line_t;
41
42 typedef struct _slide_t {
43     line_t *line;
44     struct _slide_t *prev;
45     struct _slide_t *next;
46     int lines;
47 } slide_t;
48
49 typedef struct _deck_t {
50     line_t *header;
51     slide_t *slide;
52     int slides;
53     int headers;
54 } deck_t;
55
56 line_t *new_line();
57 line_t *next_line(line_t *prev);
58 slide_t *new_slide();
59 slide_t *next_slide(slide_t *prev);
60 deck_t *new_deck();
61
62 #endif // !defined( MARKDOWN_H )