| 207 | } |
| 208 | |
| 209 | char *cmark_render_xml(cmark_node *root, int options) { |
| 210 | char *result; |
| 211 | cmark_strbuf xml = CMARK_BUF_INIT(root->mem); |
| 212 | cmark_event_type ev_type; |
| 213 | cmark_node *cur; |
| 214 | struct render_state state = {&xml, 0}; |
| 215 | |
| 216 | cmark_iter *iter = cmark_iter_new(root); |
| 217 | |
| 218 | cmark_strbuf_puts(state.xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); |
| 219 | cmark_strbuf_puts(state.xml, |
| 220 | "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"); |
| 221 | while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { |
| 222 | cur = cmark_iter_get_node(iter); |
| 223 | S_render_node(cur, ev_type, &state, options); |
| 224 | } |
| 225 | result = (char *)cmark_strbuf_detach(&xml); |
| 226 | |
| 227 | cmark_iter_free(iter); |
| 228 | return result; |
| 229 | } |
no test coverage detected