diff options
-rw-r--r-- | src/content-parser.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/content-parser.h b/src/content-parser.h index 37e38d7..a0e403c 100644 --- a/src/content-parser.h +++ b/src/content-parser.h @@ -12,6 +12,47 @@ #include <stddef.h> #include <stdbool.h> +#include "utils.h" + +typedef enum { + BLOGC_CONTENT_BLOCK = 1, + BLOGC_CONTENT_INLINE, +} blogc_content_node_type_t; + +typedef enum { + BLOGC_CONTENT_BLOCK_HEADER = 1, + BLOGC_CONTENT_BLOCK_RAW, + BLOGC_CONTENT_BLOCK_BLOCKQUOTE, + BLOGC_CONTENT_BLOCK_CODE, + BLOGC_CONTENT_BLOCK_HORIZONTAL_RULE, + BLOGC_CONTENT_BLOCK_UNORDERED_LIST, + BLOGC_CONTENT_BLOCK_ORDERED_LIST, + BLOGC_CONTENT_BLOCK_LIST_ITEM, + BLOGC_CONTENT_BLOCK_PARAGRAPH, +} blogc_content_block_type_t; + +typedef enum { + BLOGC_CONTENT_INLINE_LINK = 1, + BLOGC_CONTENT_INLINE_IMAGE, + BLOGC_CONTENT_INLINE_BOLD, + BLOGC_CONTENT_INLINE_ITALIC, + BLOGC_CONTENT_INLINE_CODE, + BLOGC_CONTENT_INLINE_BREAK_LINE, +} blogc_content_inline_type_t; + +typedef struct _blogc_content_node_t { + blogc_content_node_type_t node_type; + union { + blogc_content_block_type_t block_type; + blogc_content_inline_type_t inline_type; + } type; + union { + struct _blogc_content_node_t *block; + char *content; + } child; + sb_trie_t *parameters; +} blogc_content_node_t; + char* blogc_slugify(const char *str); char* blogc_htmlentities(const char *str); char* blogc_fix_description(const char *paragraph); |