// elhtml_impl.c — El HTML element stubs. #include #include #include "el_runtime.h" el_val_t el_escape(el_val_t s); el_val_t el_text(el_val_t s); el_val_t el_attr(el_val_t name, el_val_t value); el_val_t el_div(el_val_t attrs, el_val_t children); el_val_t el_section(el_val_t attrs, el_val_t children); el_val_t el_article(el_val_t attrs, el_val_t children); el_val_t el_header(el_val_t attrs, el_val_t children); el_val_t el_footer(el_val_t attrs, el_val_t children); el_val_t el_main(el_val_t attrs, el_val_t children); el_val_t el_nav(el_val_t attrs, el_val_t children); el_val_t el_aside(el_val_t attrs, el_val_t children); el_val_t el_ul(el_val_t attrs, el_val_t children); el_val_t el_ol(el_val_t attrs, el_val_t children); el_val_t el_li(el_val_t attrs, el_val_t children); el_val_t el_p(el_val_t attrs, el_val_t children); el_val_t el_span(el_val_t attrs, el_val_t children); el_val_t el_form(el_val_t attrs, el_val_t children); el_val_t el_h1(el_val_t attrs, el_val_t children); el_val_t el_h2(el_val_t attrs, el_val_t children); el_val_t el_h3(el_val_t attrs, el_val_t children); el_val_t el_h4(el_val_t attrs, el_val_t children); el_val_t el_button(el_val_t attrs, el_val_t children); el_val_t el_a(el_val_t href, el_val_t attrs, el_val_t children); el_val_t el_input(el_val_t type_attr, el_val_t attrs); el_val_t el_textarea(el_val_t attrs, el_val_t value); el_val_t el_label(el_val_t for_id, el_val_t attrs, el_val_t children); el_val_t el_img(el_val_t src, el_val_t alt, el_val_t attrs); el_val_t el_video(el_val_t attrs, el_val_t children); el_val_t el_strong(el_val_t children); el_val_t el_em(el_val_t children); el_val_t el_code(el_val_t children); el_val_t el_pre(el_val_t attrs, el_val_t children); el_val_t el_hr(void); el_val_t el_br(void); el_val_t el_html_doc(el_val_t lang, el_val_t head_html, el_val_t body_html); el_val_t el_meta(el_val_t name, el_val_t content); el_val_t el_meta_charset(el_val_t charset); el_val_t el_link_stylesheet(el_val_t href); el_val_t el_script_src(el_val_t src, el_val_t defer_load); el_val_t el_script_inline(el_val_t js); el_val_t el_title(el_val_t text); el_val_t el_escape(el_val_t s) { s = str_replace(s, EL_STR("&"), EL_STR("&")); s = str_replace(s, EL_STR("<"), EL_STR("<")); s = str_replace(s, EL_STR(">"), EL_STR(">")); s = str_replace(s, EL_STR("\""), EL_STR(""")); return str_replace(s, EL_STR("'"), EL_STR("'")); return 0; } el_val_t el_text(el_val_t s) { return el_escape(s); return 0; } el_val_t el_attr(el_val_t name, el_val_t value) { return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR(" "), name), EL_STR("=\"")), el_escape(value)), EL_STR("\"")); return 0; } el_val_t el_div(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_section(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_article(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_header(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_footer(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_main(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
"), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
")), children), EL_STR("
")); return 0; } el_val_t el_nav(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_aside(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_ul(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_ol(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
    "), children), EL_STR("
")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
    ")), children), EL_STR("
")); return 0; } el_val_t el_li(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
  • "), children), EL_STR("
  • ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
  • ")), children), EL_STR("
  • ")); return 0; } el_val_t el_p(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("

    "), children), EL_STR("

    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("

    ")), children), EL_STR("

    ")); return 0; } el_val_t el_span(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR(""), children), EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")), children), EL_STR("")); return 0; } el_val_t el_form(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
    "), children), EL_STR("
    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
    ")), children), EL_STR("
    ")); return 0; } el_val_t el_h1(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("

    "), children), EL_STR("

    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("

    ")), children), EL_STR("

    ")); return 0; } el_val_t el_h2(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("

    "), children), EL_STR("

    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("

    ")), children), EL_STR("

    ")); return 0; } el_val_t el_h3(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("

    "), children), EL_STR("

    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("

    ")), children), EL_STR("

    ")); return 0; } el_val_t el_h4(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("

    "), children), EL_STR("

    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("

    ")), children), EL_STR("

    ")); return 0; } el_val_t el_button(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_a(el_val_t href, el_val_t attrs, el_val_t children) { el_val_t h = el_str_concat(el_str_concat(EL_STR("href=\""), el_escape(href)), EL_STR("\"")); if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")), children), EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")), children), EL_STR("")); return 0; } el_val_t el_input(el_val_t type_attr, el_val_t attrs) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_textarea(el_val_t attrs, el_val_t value) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_label(el_val_t for_id, el_val_t attrs, el_val_t children) { el_val_t f = el_str_concat(el_str_concat(EL_STR("for=\""), el_escape(for_id)), EL_STR("\"")); if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_img(el_val_t src, el_val_t alt, el_val_t attrs) { el_val_t base = el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("src=\""), el_escape(src)), EL_STR("\" alt=\"")), el_escape(alt)), EL_STR("\"")); if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_video(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_strong(el_val_t children) { return el_str_concat(el_str_concat(EL_STR(""), children), EL_STR("")); return 0; } el_val_t el_em(el_val_t children) { return el_str_concat(el_str_concat(EL_STR(""), children), EL_STR("")); return 0; } el_val_t el_code(el_val_t children) { return el_str_concat(el_str_concat(EL_STR(""), children), EL_STR("")); return 0; } el_val_t el_pre(el_val_t attrs, el_val_t children) { if (str_eq(attrs, EL_STR(""))) { return el_str_concat(el_str_concat(EL_STR("
    "), children), EL_STR("
    ")); } return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("
    ")), children), EL_STR("
    ")); return 0; } el_val_t el_hr(void) { return EL_STR("
    "); return 0; } el_val_t el_br(void) { return EL_STR("
    "); return 0; } el_val_t el_html_doc(el_val_t lang, el_val_t head_html, el_val_t body_html) { return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")), head_html), EL_STR("")), body_html), EL_STR("")); return 0; } el_val_t el_meta(el_val_t name, el_val_t content) { return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_meta_charset(el_val_t charset) { return el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_link_stylesheet(el_val_t href) { return el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_script_src(el_val_t src, el_val_t defer_load) { if (defer_load) { return el_str_concat(el_str_concat(EL_STR("")); } return el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_script_inline(el_val_t js) { return el_str_concat(el_str_concat(EL_STR("")); return 0; } el_val_t el_title(el_val_t text) { return el_str_concat(el_str_concat(EL_STR(""), el_escape(text)), EL_STR("")); return 0; }