src/website

Website module

This module implements the HTML sent as a response by the webserver. It is not well optimised, as for each new response, it:

  • stringifies the HTML
  • stringifies the CSS and embeds it into the HTML
  • reads the javascript file from disk and embeds into the HTML

But it works! And just for fun with friends this is more than enough :)

Types

Buttons = enum
  toIndex, toDefinitions, toSubmitDefinitions

Consts

contentBoxId: string = "content-display-div"
css: CssStyleSheet = (file: "styles.css", elements: [(name: "html", properties: (data: [
    (0, "", ""), (0, "", ""), (1732819394, "color", "rgb(245, 245, 245)"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(30, 30, 40)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (272249982, "font-family", "Verdana, Geneva, Tahoma, sans-serif"),
    (0, "", "")], counter: 3)), (name: "h1, h2, h3, h4, h5, h6", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (3156619578, "text-decoration", "underline"), (0, "", ""), (0, "", ""),
    (0, "", ""), (541961726, "text-align", "center"), (0, "", "")], counter: 2)), (
    name: "input", properties: (data: [(0, "", ""), (0, "", ""), (1732819394,
    "color", "rgb(245, 245, 245)"), (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""),
                                       (3561731281, "width", "92%"),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""),
                                       (3267597340, "border-radius", "6px"),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""), (
    1713920888, "background-color", "rgb(50, 50, 70)"), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", ""),
                                       (0, "", ""), (0, "", ""), (0, "", "")],
                                counter: 4)), (name: "textarea", properties: (data: [
    (0, "", ""), (0, "", ""), (1732819394, "color", "rgb(245, 245, 245)"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (922530568, "resize", "vertical"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (3561731281, "width", "92%"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3267597340, "border-radius", "6px"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(50, 50, 70)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 5)), (name: "form", properties: (data: [(0, "", ""),
    (0, "", ""), (1732819394, "color", "rgb(245, 245, 245)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (1360229003, "margin", "auto 10px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (3561731281, "width", "90%"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3267597340, "border-radius", "6px"),
    (3158656221, "max-width", "750px"), (0, "", ""), (0, "", ""),
    (1069335456, "border", "solid 1px"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (2627757291, "padding", "10px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", "")], counter: 7)), (
    name: "button", properties: (data: [(0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (2262444604, "margin-top", "10px"),
                                        (0, "", ""),
                                        (541961726, "text-align", "center"),
                                        (0, "", "")], counter: 2)), (
    name: "a:link", properties: (data: [(0, "", ""), (0, "", ""),
                                        (1732819394, "color", "HotPink"),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (3156619578,
    "text-decoration", "none"), (0, "", ""), (0, "", ""), (0, "", ""),
                                        (0, "", ""), (0, "", "")], counter: 2)), (
    name: "a:visited", properties: (data: [(0, "", ""), (0, "", ""),
    (1732819394, "color", "HotPink"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3156619578, "text-decoration", "none"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", "")], counter: 2)), (
    name: "a:hover", properties: (data: [(0, "", ""), (0, "", ""),
    (1732819394, "color", "LightPink"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3156619578, "text-decoration", "none"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", "")], counter: 2)), (
    name: "a:active", properties: (data: [(0, "", ""), (0, "", ""),
    (1732819394, "color", "WhiteSmoke"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3156619578, "text-decoration", "none"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", "")], counter: 2)), (
    name: ".center", properties: (data: [(0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (1360229003, "margin", "auto"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", "")], counter: 1)), (name: ".center-everything", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1360229003, "margin", "auto"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (541961726, "text-align", "center"),
    (0, "", "")], counter: 2)), (name: ".div-flex-box", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1360229003, "margin", "auto"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (370136851, "flex-basis", "auto"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (497703773, "display", "flex"), (0, "", ""), (0, "", ""),
    (901322400, "align-items", "center"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (735933797, "flex-wrap", "wrap"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (541961726, "text-align", "center"),
    (3607542143, "flex", "auto")], counter: 7)), (name: ".content-display", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1360229003, "margin", "auto"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (3267597340, "border-radius", "6px"), (3158656221, "max-width", "750px"),
    (0, "", ""), (0, "", ""), (1069335456, "border", "10px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (2627757291, "padding", "10px"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(40, 40, 60)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 6)), (name: ".search-bar", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1360229003, "margin", "auto"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (3267597340, "border-radius", "6px"), (0, "", ""), (0, "", ""),
    (0, "", ""), (1069335456, "border", "10px"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (2627757291, "padding", "10px"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(40, 40, 60)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 5)), (name: ".search-bar-div", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (3267597340, "border-radius", "6px"), (497703773, "display", "flex"),
    (3158656221, "max-width", "750px"), (0, "", ""),
    (901322400, "align-items", "baseline"), (1069335456, "border", "10px"),
    (0, "", ""), (0, "", ""), (1663458404, "margin-right", "auto"),
    (735933797, "flex-wrap", "nowrap"), (2020917734, "margin-bottom", "10px"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (2627757291, "padding", "2px"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (269387194, "margin-left", "auto"), (0, "", ""),
    (2262444604, "margin-top", "auto"), (0, "", ""), (0, "", ""), (0, "", "")],
    counter: 11)), (name: ".button-redirect", properties: (data: [(0, "", ""),
    (0, "", ""), (1732819394, "color", "rgb(245, 245, 245)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (1360229003, "margin", "4px 2px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (1648012884, "transition", "0.3s"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (3267597340, "border-radius", "6px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (2627757291, "padding", "5px 10px"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(50, 30, 58)"), (0, "", ""),
    (3156619578, "text-decoration", "none"), (0, "", ""), (0, "", ""),
    (0, "", ""), (541961726, "text-align", "center"), (0, "", "")], counter: 8)), (
    name: ".button-redirect:hover", properties: (data: [(0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (1648012884, "transition", "0.1s"), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""),
    (1713920888, "background-color", "rgb(60, 40, 68)"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 2)), (name: ".definition", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1360229003, "margin", "10px"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (3267597340, "border-radius", "6px"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (2627757291, "padding", "10px"), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (1713920888, "background-color", "rgb(50, 50, 70)"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", "")], counter: 4)), (name: ".definition-word", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (2811585877, "overflow", "hidden"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (988410778, "white-space", "pre-wrap"),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (652089374, "word-wrap", "break-word"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (2020917734, "margin-bottom", "5px"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (3156619578, "text-decoration", "underline"),
    (0, "", ""), (2262444604, "margin-top", "5px"), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 6)), (name: ".definition-description", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (2811585877, "overflow", "hidden"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (988410778, "white-space", "pre-wrap"),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (652089374, "word-wrap", "break-word"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (2262444604, "margin-top", "10px"), (0, "", ""),
    (0, "", ""), (0, "", "")], counter: 4)), (name: ".definition-author", properties: (data: [
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (2811585877, "overflow", "hidden"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (988410778, "white-space", "pre-wrap"),
    (0, "", ""), (0, "", ""), (0, "", ""),
    (652089374, "word-wrap", "break-word"), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", "")], counter: 3))])
defaultJavascriptNotAvailable: string = "window.onload = function() { alert(\'Could not load javascript for this page - page may not function correctly...\') }"
javascriptLocation: string = "./src/javascript/"
javascriptScripts: Table[string, string] = (data: [(0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (1994986530, "definition_submit_success.js", "function redirect() {\n    window.location.replace(\"/definitions\")\n}\n\nwindow.onload = function() {\n    setTimeout(redirect, 3000);\n}\n"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (1534509296, "definitions.js", "const searchBarId = \"search-bar-field\";\n\nfunction getSearchBar() {\n    return document.getElementById(searchBarId);\n}\n\nfunction getQueryParams() {\n    let searchBar = getSearchBar();\n    if(searchBar == undefined || searchBar == null) {\n        return undefined;\n    }\n    return encodeURI(searchBar.value);\n}\n\nfunction searchBarQuery() {\n    let query = getQueryParams();\n    if(query == undefined) {\n        return alert(\"Cannot search, fuck you javascript\");\n    }\n\n    if(query != \"\") {\n        query = \"%\" + query + \"%\";\n    }\n\n    window.location = \"/definitions/\" + query;\n}\n"), (
    2223057521, "definition_submit.js", "const contentDiv = \"content-display-div\";\nconst submitWordId = \"submit-word\";\nconst submitDefinitionId = \"submit-definition\";\nconst submitAuthorId = \"submit-author\";\n\n\nfunction renderForm() {\n    document.getElementById(contentDiv).innerHTML = `\n        <form action=\"/handle-submit\" method=\"post\" class=\"center\">\n            <ul>\n                <li>\n                    <label for=\"submit-word\">Word:</label>\n                    <br />\n                    <input type=\"text\" id=\"submit-word\" name=\"word\" placeholder=\"My interesting word\" />\n                </li>\n                <li>\n                    <label for=\"submit-definition\">Definition:</label>\n                    <br />\n                    <textarea id=\"submit-definition\" name=\"definition\" rows=\"10\" placeholder=\"My interesting definition\" ></textarea>\n                </li>\n                <li>\n                    <label for=\"submit-author\">Author: (optional)</label>\n                    <br />\n                    <input type=\"text\" id=\"submit-author\" name=\"author\" placeholder=\"My name (optional)\" />\n                </li>\n            </ul>\n            <div class=\"center-everything\">\n                <button type=\"submit\">Submit</button>\n            </div>\n        </form>\n    `;\n}\n\nfunction cleanUpString(str) {\n    let result = str;\n    if(result === undefined || result === null) {\n        return \"\";\n    }\n    // result.replace(\"<\", \"&lt;\").replace(\">\", \"&gt;\")\n    return result;\n}\n\nfunction submitFormButtonPress() {\n    let word = document.getElementById(\"submit-word\").value;\n    let definition = document.getElementById(\"submit-definition\").value;\n    let author = document.getElementById(\"submit-author\").value;\n    let json = JSON.stringify({\n        \"word\": cleanUpString(word),\n        \"definition\": cleanUpString(definition),\n        \"author\": cleanUpString(author)\n    })\n    try {\n        let encoded = btoa(json)\n        window.location.replace(\"/submit/\" + encoded)\n    } catch {\n        alert(\"Your submission seems to use Base64 unsupported characters. Please replace them with supported ones :(\")\n    }\n}\n\nwindow.onload = function() {\n    // renderForm();\n}\n"),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""), (0, "", ""),
    (0, "", ""), (0, "", ""), (0, "", ""), (0, "", "")], counter: 3)
searchBarId: string = "search-bar-field"

Procs

proc getHtmlDefinition(definition: Definition): HtmlElement {.
    ...raises: [ValueError], tags: [], forbids: [].}
Converts Definition to an HtmlElement with redundant sussy character replacement for security
proc htmlDisplayMultipleDefinitions(query: string = ""): Future[HtmlDocument] {.
    ...stackTrace: false, raises: [Exception, ValueError],
    tags: [DbEffect, ReadDbEffect, WriteDbEffect, RootEffect], forbids: [].}
HTML - (Multiple) Definitions page
proc htmlDisplaySingleDefinition(id: int): Future[HtmlDocument] {.
    ...stackTrace: false, raises: [Exception, ValueError],
    tags: [DbEffect, ReadDbEffect, WriteDbEffect, RootEffect], forbids: [].}
HTML - Definition page
proc htmlIndex(): Future[HtmlDocument] {....stackTrace: false,
    raises: [Exception, ValueError],
    tags: [DbEffect, ReadDbEffect, WriteDbEffect, RootEffect], forbids: [].}
HTML - Index page
proc htmlSubmitDefinition(): Future[HtmlDocument] {....stackTrace: false,
    raises: [Exception, ValueError], tags: [RootEffect], forbids: [].}
HTML - Submit page
proc htmlSubmitSuccess(word: string): Future[HtmlDocument] {....stackTrace: false,
    raises: [Exception, ValueError], tags: [RootEffect], forbids: [].}
HTML - Submit success page
proc httpErrorPage(details: string): Future[HtmlDocument] {....stackTrace: false,
    raises: [Exception, ValueError], tags: [RootEffect], forbids: [].}
HTML - Error page
proc newPage(name, description: string; generateContentBox: bool = true;
             scriptPath: string = ""): HtmlDocument {.
    ...raises: [KeyError, ValueError], tags: [], forbids: [].}
Generalised HTML page generator