html.h (800B)
1 #ifndef HTML_H 2 #define HTML_H 3 4 #include "vec.h" 5 6 enum html_fc_type { 7 HTML_TEXT, 8 HTML_A, 9 HTML_P, 10 HTML_BR, 11 HTML_H1, 12 }; 13 14 typedef struct html_fc { 15 enum html_fc_type type; 16 union { 17 char* text; 18 struct { char* href; char* content; } a; 19 } value; 20 } html_fc_t; 21 22 typedef struct title { 23 char* text; 24 } html_title_t; 25 26 typedef struct base { 27 char* href; 28 char* target; 29 } html_base_t; 30 31 typedef struct head { 32 vec_t meta; 33 } html_head_t; 34 35 typedef struct body { 36 vec_t content; 37 } html_body_t; 38 39 typedef struct html { 40 vec_t _buf; 41 html_body_t body; 42 } html_t; 43 44 html_t html_new(); 45 html_fc_t html_p_new(char* content); 46 html_fc_t html_h1_new(char* content); 47 void html_body_add(html_body_t* body, html_fc_t fc); 48 char* html_render(html_t* html); 49 50 #endif