Add a picture of me

This commit is contained in:
kamkow1
2025-06-20 14:35:12 +02:00
parent 0fab7bcffe
commit 27581183fd
9 changed files with 31 additions and 34 deletions

View File

@ -18,6 +18,7 @@ INCBIN(favicon_ico, "./etc/favicon.ico");
#if MY_DEBUG
INCBIN(hotreload_js, "./etc/hotreload.js");
#endif
INCBIN(me_jpg, "./etc/me.jpg");
INCBIN(blog_welcome_md, "./blog/welcome.md");
INCBIN(blog_weird_page_md, "./blog/weird-page.md");
@ -48,6 +49,7 @@ void init_baked_resources(void)
#if MY_DEBUG
add_baked_resource("hotreload.js", hotreload_js_data, hotreload_js_size);
#endif
add_baked_resource("me.jpg", me_jpg_data, me_jpg_size);
add_baked_resource("blog-welcome.md", blog_welcome_md_data, blog_welcome_md_size);
add_baked_resource("blog-weird-page.md", blog_weird_page_md_data, blog_weird_page_md_size);
add_baked_resource("blog-curious-case-of-gebs.md", blog_curious_case_of_gebs_md_data, blog_curious_case_of_gebs_md_size);

View File

@ -15,6 +15,7 @@ INCBIN_EXTERN(favicon_ico);
#if MY_DEBUG
INCBIN_EXTERN(hotreload_js);
#endif
INCBIN_EXTERN(me_jpg);
INCBIN_EXTERN(blog_welcome_md);
INCBIN_EXTERN(blog_weird_page_md);

View File

@ -37,6 +37,8 @@ int main(int argc, char ** argv)
"./etc/hotreload.js",
"./etc/simple.css",
"./etc/favicon.ico",
"./etc/me.jpg",
"./blog/welcome.md",
"./blog/weird-page.md",

View File

@ -18,38 +18,7 @@ async function fetch_build_id()
return json.build_id;
}
(async function() {
build_id = await fetch_build_id();
})();
const asyncIntervals = [];
const runAsyncInterval = async (cb, interval, intervalIndex) => {
await cb();
if (asyncIntervals[intervalIndex]) {
setTimeout(() => runAsyncInterval(cb, interval, intervalIndex), interval);
}
};
const setAsyncInterval = (cb, interval) => {
if (cb && typeof cb === "function") {
const intervalIndex = asyncIntervals.length;
asyncIntervals.push(true);
runAsyncInterval(cb, interval, intervalIndex);
return intervalIndex;
} else {
throw new Error('Callback must be a function');
}
};
const clearAsyncInterval = (intervalIndex) => {
if (asyncIntervals[intervalIndex]) {
asyncIntervals[intervalIndex] = false;
}
};
setAsyncInterval(async function () {
setInterval(async function() {
let new_build_id = await fetch_build_id();
if (build_id !== new_build_id) {
location.reload(true);

BIN
etc/me.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

4
main.c
View File

@ -92,6 +92,7 @@ void event_handler(struct mg_connection *conn, int ev, void *ev_data)
sb.items,
result->body.count
);
printf("%s\n", reply);
mg_printf(conn, "%s", reply);
mg_send(conn, result->body.items, result->body.count);
}
@ -103,12 +104,13 @@ void init_route_hashtable(void)
shdefault(route_hashtable, &route_page_not_found);
shput(route_hashtable, "/", &route_home);
shput(route_hashtable, "/page-missing", &route_page_not_found);
shput(route_hashtable, "/simple.css", &route_simple_css);
shput(route_hashtable, "/simple.css", &route_simple_css);
shput(route_hashtable, "/favicon.ico", &route_favicon);
#if MY_DEBUG
shput(route_hashtable, "/hotreload.js", &route_hotreload_js);
shput(route_hashtable, "/build-id", &route_build_id);
#endif
shput(route_hashtable, "/me.jpg", &route_me_jpg);
shput(route_hashtable, "/blog", &route_blog);
void put_blogs(Baked_Resource *resource)

View File

@ -158,6 +158,24 @@ ROUTE_HANDLER(simple_css)
make_text(result, "css", 200, sb.items);
}
ROUTE_HANDLER(me_jpg)
{
char path[PATH_MAX] = {0};
if (!get_baked_resource_path("me.jpg", path, sizeof(path))) {
make_internal_server_error(result);
return;
}
String_Builder sb = {0};
defer { sb_free(&sb); }
if (!sb_read_file(&sb, path)) {
make_internal_server_error(result);
return;
}
make_binary(result, "image/jpeg", 200, sb.items, sb.count);
}
ROUTE_HANDLER(favicon)
{
char path[PATH_MAX] = {0};
@ -172,7 +190,6 @@ ROUTE_HANDLER(favicon)
make_internal_server_error(result);
return;
}
sb_finish(&sb);
make_binary(result, "image/x-icon", 200, sb.items, sb.count);
}

View File

@ -33,6 +33,7 @@ typedef struct {
ROUTE_HANDLER(page_not_found);
ROUTE_HANDLER(simple_css);
ROUTE_HANDLER(favicon);
ROUTE_HANDLER(me_jpg);
#if MY_DEBUG
ROUTE_HANDLER(hotreload_js);
ROUTE_HANDLER(build_id);

View File

@ -52,6 +52,9 @@
</li>
</ul>
</section>
<section>
<img src="/me.jpg" alt="literally me" />
</section>
<footer>
<div style="float: left;">
<a href="/">HOME</a>