|
|
|
@ -563,17 +563,23 @@ class builder {
@@ -563,17 +563,23 @@ class builder {
|
|
|
|
|
|
|
|
|
|
const unsigned char local_name[] = "math"; |
|
|
|
|
|
|
|
|
|
auto mathtext = "<img src='data:image/svg+xml;base64, " + base64_encode_mime(mtext) + "'/>"; |
|
|
|
|
std::string style = "inline-math"; |
|
|
|
|
if (text[1] == '[')
|
|
|
|
|
style = "display-math"; |
|
|
|
|
|
|
|
|
|
lxb_html_element_t * ele = lxb_html_document_create_element(document, local_name,
|
|
|
|
|
(size_t)4, nullptr); |
|
|
|
|
|
|
|
|
|
auto elem = lxb_dom_interface_element(ele); |
|
|
|
|
lxb_html_element_t * elem = lxb_html_document_create_element(document, (const unsigned char *)"img", 3, NULL); |
|
|
|
|
auto nelem = lxb_dom_interface_element(elem); |
|
|
|
|
|
|
|
|
|
std::string alttext = tt.substr(2, tt.length() - 4); |
|
|
|
|
|
|
|
|
|
auto imgsrc = "data:image/svg+xml;base64, " + base64_encode_mime(mtext); |
|
|
|
|
lxb_dom_element_set_attribute(nelem, (const unsigned char*)"alt", 3, (const unsigned char*)alttext.c_str(), alttext.length()); |
|
|
|
|
lxb_dom_element_set_attribute(nelem, (const unsigned char*)"src", 3, (const unsigned char*)imgsrc.c_str(), imgsrc.length()); |
|
|
|
|
lxb_dom_element_set_attribute(nelem, (const unsigned char*)"class", 5, (const unsigned char*)style.c_str(), style.length()); |
|
|
|
|
|
|
|
|
|
lxb_dom_node_t *n = lxb_html_document_parse_fragment(document,
|
|
|
|
|
elem, (const unsigned char *)mathtext.c_str(), mathtext.length()); |
|
|
|
|
|
|
|
|
|
lxb_dom_node_insert_after(&element->node, n); |
|
|
|
|
lxb_dom_node_insert_after(&element->node, lxb_dom_interface_node(nelem)); |
|
|
|
|
lxb_dom_node_remove(&element->node); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|