web preview + finish-ish markdown

ordered lists, superscript, tables
and some fixes
This commit is contained in:
jetstream0
2023-06-09 23:15:52 -07:00
parent 75260e28a3
commit d454a1f8ea
7 changed files with 375 additions and 13 deletions

52
web.ts Normal file
View File

@@ -0,0 +1,52 @@
import { parse_md_to_html_with_warnings, ParseResult } from './makoto.js';
import type { Warning } from './endosulfan.js';
let editor: HTMLTextAreaElement = document.getElementById("editor")! as HTMLTextAreaElement;
let preview: HTMLElement = document.getElementById("rendered-text")!;
let dark_theme_toggle: HTMLInputElement = document.getElementById("dark-theme-toggle")! as HTMLInputElement;
let unedited: boolean = true;
function render_warnings(warnings: Warning[]) {
console.log(warnings)
warnings.forEach((warning: Warning) => {
if (warning.line_number) {
//
}
});
}
const refresh_html = () => {
let parsed: ParseResult = parse_md_to_html_with_warnings(editor.innerText);
render_warnings(parsed.warnings);
preview.innerHTML = parsed.html;
};
editor.addEventListener("keyup", refresh_html);
document.addEventListener("click", (e: MouseEvent) => {
if (e.target === editor && unedited) {
(editor.children[0] as HTMLElement).innerText = "";
unedited = false;
refresh_html();
} else if (e.target !== editor && editor.innerText.trim() === "") {
(editor.children[0] as HTMLElement).innerText = "markdown goes here...";
unedited = true;
}
});
const theme_change = () => {
if (dark_theme_toggle.checked) {
preview.classList.add("dark");
} else {
preview.classList.remove("dark");
}
};
dark_theme_toggle.addEventListener("change", theme_change);
refresh_html();
theme_change();
if (editor.innerText !== "markdown goes here...") {
unedited = false;
}