aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-03-13 08:52:03 +0800
committerRunxi Yu <me@runxiyu.org>2025-03-13 08:52:03 +0800
commit1ca7ae3859b2c0397e4b28f77c04a4b816f69ae1 (patch)
treedbd0c14ebacb5ab2c27e0817455c2649da849136
parentUse for each loops (diff)
downloadforge-1ca7ae3859b2c0397e4b28f77c04a4b816f69ae1.tar.gz
forge-1ca7ae3859b2c0397e4b28f77c04a4b816f69ae1.tar.zst
forge-1ca7ae3859b2c0397e4b28f77c04a4b816f69ae1.zip
Begin to use hare-htmpl
-rw-r--r--NOTES.md1
-rw-r--r--main.ha14
2 files changed, 9 insertions, 6 deletions
diff --git a/NOTES.md b/NOTES.md
index c60d0f5..0c6cbcd 100644
--- a/NOTES.md
+++ b/NOTES.md
@@ -4,3 +4,4 @@ You will need the following dependencies:
- [hare](https://git.sr.ht/~sircmpwn/hare)
- [hare-http](https://git.sr.ht/~sircmpwn/hare-http)
+- [hare-htmpl](https://forge.runxiyu.org/hare/:/repos/hare-htmpl/) ([backup](https://git.sr.ht/~runxiyu/hare-htmpl))
diff --git a/main.ha b/main.ha
index a77eec6..aa0364f 100644
--- a/main.ha
+++ b/main.ha
@@ -3,6 +3,7 @@
// Adapted from template by Willow Barraco <contact@willowbarraco.fr>
use getopt;
+use htmpl;
use log;
use net;
use net::ip;
@@ -17,7 +18,7 @@ use strings;
const usage: [_]getopt::help = [
"HTTP server",
- ('a', "address", "listened address (ex: 127.0.0.1:8080)")
+ ('a', "address", "listened address")
];
export fn main() void = {
@@ -63,9 +64,10 @@ export fn main() void = {
};
};
-export fn handlereq(conn: io::handle, request: *http::request) (void | io::error) = {
- fmt::fprint(conn, "HTTP/1.1 200 OK\r\n")?;
- fmt::fprint(conn, "Content-Type: text/plain\r\n\r\n")?;
-
- fmt::fprintln(conn, "Hi there!")?;
+export fn handlereq(conn: io::handle, request: *http::request) (void | io::error | nomem) = {
+ htmpl::write(conn, "HTTP/1.1 200 OK\r\n")?;
+ htmpl::write(conn, "Content-Type: text/html\r\n\r\n")?;
+ htmpl::write(conn, "<!DOCTYPE html><html><body><h1>")?;
+ htmpl::write_escape_html(conn, "Hey there <3")?;
+ htmpl::write(conn, "</h1></body></html>")?;
};