all repos — eureka @ 3558233dd5db577a616f5d2a27446f092ab63181

static site generator based on the 100r.co engine

use more newlines in generated source, we can spare the bytes to make things readable
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmIOfnYACgkQO3+8IhRO
Y5ic9w//Usek/MeeLrLrKgJZHlxA5m8WusWxBKbo21arTMAGaLvNc/tgINhumxA6
O6/2aGn4Qll+QoocgE7uYrwo1IN80UfibKbz9a1zbcd2VLSev1eLRmtoAR3oQRHV
hPVWNXYEnyJXPrU5STopuxh5WZkham+PMUjFdyZHbabmN0OW9dR+r7DM+EFAH8yE
ZzijOtKaNxedfoSF8R0jYei0mt8ll4CG89ZUJtpxIdkPq5FUdzUq3ejAdwRwKwD7
JsD/id2r6fYYtg5eHorbMt9agc1MZz9FvMJPqe8bA1uFxwGcoKNx82Qq5rgZ3PlV
0JvfvooXT3ZF9V9gzaT2zI6QfnckQyYzyNREXLkBv+9M53OAVMrI0gnfHaOaJ2NG
xPtUOStIuT9TFMzsL3JZQrHXytV2e8OC+y+o0K6fezxqlOSQ93vabpl/2ZaoXPvP
7XqFoPzbfNcFBEOw72kmefphCyI5CDRfuojUak8KBGcb5oYT1QzFIgiINM9fjwgF
QLfD1hILDQ2yfpdk4L90NcSFD/epJBhWf73VUk/ozn1BE9WTmmkNoBUqHIwjBhOq
WANmaqgC8Hb8YbLd/4hlD03gAkD9KLSKqfRPT7d/5eqXj1nCIyXoYJzTEtoQo09C
n/+3vmfP3Gp/ooEmXyXcsniCfsUGUUXO8/DNJJzR99Eq4hc5zaI=
=miU4
-----END PGP SIGNATURE-----
commit

3558233dd5db577a616f5d2a27446f092ab63181

parent

e1d19dc2a041a393db8cce4f9d902dea2397b175

2 files changed, 44 insertions(+), 40 deletions(-)

jump to
M config.def.hconfig.def.h

@@ -6,17 +6,17 @@ #define DOMAIN "https://nilfm.cc"

#define LOGO "<img src='/img/nilfm_blackHole_96.png' alt='blackHole://server'/>" #define DESC "lair of drkste aka nilix: programmer, artist, philosopher" #define ABOUT "Derek Stevens &lt;"\ - "<a href='mailto:nilix@nilfm.cc'>nilix@nilfm.cc</a>&gt;<br/>"\ - "artist, programmer, philosopher<br/><br/>"\ - "verify my signature: <a href='/serv/signingKey.pub'>signing public key</a><br/>"\ - "send me an encrypted message: <a href='/serv/encryptionKey.pub'>encryption public key</a>" -#define CONTACT "contact: <a href='mailto:nilix@nilfm.cc'>nilix@nilfm.cc</a> (<a href='keys.html'>keys</a>)<br/>" + "<a href='mailto:nilix@nilfm.cc'>nilix@nilfm.cc</a>&gt;<br/>\n"\ + "artist, programmer, philosopher<br/><br/>\n"\ + "verify my signature: <a href='/serv/signingKey.pub'>signing public key</a><br/>\n"\ + "send me an encrypted message: <a href='/serv/encryptionKey.pub'>encryption public key</a>\n" +#define CONTACT "contact: <a href='mailto:nilix@nilfm.cc'>nilix@nilfm.cc</a> (<a href='keys.html'>keys</a>)<br/>\n" #define FOOTER "<a href='/git/'><img "\ - "src='/img/git.svg' alt='visit the nilFM hack lab.'/></a>&nbsp;"\ + "src='/img/git.svg' alt='visit the nilFM hack lab.'/></a>&nbsp;\n"\ "<a rel='me' href='https://cafe.nilfm.cc/u/nilix'><img "\ - "src='/img/honk.svg' alt='visit me on the Fediverse.'/></a>&nbsp;"\ + "src='/img/honk.svg' alt='visit me on the Fediverse.'/></a>&nbsp;\n"\ "<a href='https://webring.xxiivv.com'><img "\ - "src='/img/webring.svg' alt='visit the Webring.'/></a><br/>" + "src='/img/webring.svg' alt='visit the Webring.'/></a><br/>\n" #define LICENSE "<a rel='license' "\ "href='https://creativecommons.org/licenses/by-nc/4.0/"\ "legalcode.txt'>CC-BY-NC 4</a>"
M main.cmain.c

@@ -69,7 +69,7 @@ char msgbuf[240] = {0};

char *l, *d, *m; FILE* twtxt = fopen(SITEROOT "twtxt.txt", "r"); - scat(buf, "<div id='twtxtFeed'><h2>recent activity:</h2><table>"); + scat(buf, "<div id='twtxtFeed'><h2>recent activity:</h2>\n<table>\n"); if (!twtxt) { error("Get twtxt feed", "no twtxt.txt"); return 0;

@@ -88,7 +88,7 @@ scat(buf, "<tr><td style='white-space:nowrap;vertical-align: top;'>");

scat(buf, datebuf); scat(buf, ":</td><td> "); scat(buf, msgbuf); - scat(buf, "</td></tr>"); + scat(buf, "</td></tr>\n"); d = datebuf; while (*d) { *d++ = 0;

@@ -100,8 +100,8 @@ }

i++; } fclose(twtxt); - scat(buf, "</table><a href='/twtxt.txt'>see all</a>"); - scat(buf, "</div>"); + scat(buf, "</table><a href='/twtxt.txt'>see all</a>\n"); + scat(buf, "</div>\n"); fputs(buf, f); return 1; }

@@ -125,7 +125,7 @@ scat(scat(scat(srcpath, "inc/"), scpy(s, filename, 64)), ".htm");

if (head) fprintf( f, - "<h3 id='%s'><a href='%s.html'>%s</a></h3>", + "<h3 id='%s'><a href='%s.html'>%s</a></h3>\n", scsw(filename, ' ', '_'), filename, s);

@@ -210,7 +210,7 @@

thumbtrans(src, thumb); fprintf(f, "<a id='%s' href='%s'>\n", id, src); fprintf(f, "<img class='image' src='%s' alt='%s'/>\n", thumb, alt); - fputs("</a>", f); + fputs("</a>\n", f); return 1; }

@@ -249,14 +249,18 @@ thumbtrans(src, thumb);

fprintf(f, "<a id='%s' href='%s'>\n", id, href); fprintf(f, "<img class='image' src='%s' alt='%s'/>\n", thumb, alt); - fputs("</a>", f); + fputs("</a>\n", f); return 1; } int fpaudio(FILE* f, char* s) { - fputs("<audio class='player' preload='metadata' controls>", f); - fprintf(f, "<source src='%s' type='audio/mpeg'>[HTML5 audio]", s); - fputs("</audio>", f); + fputs("<audio class='player' preload='metadata' controls>\n", f); + fprintf( + f, + "<source src='%s' type='audio/mpeg'>[<a href='%s'>HTML5 audio</a>]\n", + s, + s); + fputs("</audio>\n", f); return 1; }

@@ -516,51 +520,51 @@ FILE* build(FILE* f, Lexicon* l, char* name, char* srcpath) {

if (!f) return f; /* begin */ - fputs("<!DOCTYPE html><html lang='en'>", f); - fputs("<head>", f); + fputs("<!DOCTYPE html>\n<html lang='en'>\n", f); + fputs("<head>\n", f); fprintf( f, - "<meta charset='utf-8'>" - "<meta name='description' content='%s'/>" - "<meta name='viewport' content='width=device-width,initial-scale=1'>", + "<meta charset='utf-8'>\n" + "<meta name='description' content='%s'/>\n" + "<meta name='viewport' content='width=device-width,initial-scale=1'>\n", DESC); if (ismetanav(name)) { - fputs("<link rel='stylesheet' type='text/css' href='" FRONTCSS "'>", f); + fputs("<link rel='stylesheet' type='text/css' href='" FRONTCSS "'>\n", f); } else { - fputs("<link rel='stylesheet' type='text/css' href='" MAINCSS "'>", f); + fputs("<link rel='stylesheet' type='text/css' href='" MAINCSS "'>\n", f); } fprintf( f, - "<link rel='shortcut icon' href='/favicon.ico'>" - "<title>" NAME " &mdash; %s</title>", + "<link rel='shortcut icon' href='/favicon.ico'>\n" + "<title>" NAME " &mdash; %s</title>\n", ismetanav(name) ? "home" : name); - fputs("</head>", f); - fputs("<body>", f); + fputs("</head>\n", f); + fputs("<body>\n", f); /* header */ - fputs("<header>", f); + fputs("<header>\n", f); if (ismetanav(name)) { - fputs("<h1>" NAME "</h1>", f); + fputs("<h1>" NAME "</h1>\n", f); } else { - fputs("<h1><a href='/'>" NAME "</a></h1>", f); + fputs("<h1><a href='/'>" NAME "</a></h1>\n", f); } - fputs("</header>", f); + fputs("</header>\n", f); /* about (main page only) */ if (ismetanav(name)) { - fputs("<div id='about'>" ABOUT "</div>", f); + fputs("<div id='about'>" ABOUT "</div>\n", f); } /* nav */ - fputs("<nav>", f); + fputs("<nav>\n", f); if (!fpportal(f, l, "meta.nav", 0)) printf(">>> Building failed: %s\n", name); - fputs("</nav>", f); + fputs("</nav>\n", f); /* main */ if (!ismetanav(name)) { - fputs("<main>\n\n", f); - fprintf(f, "<h2>%s</h2>", name); + fputs("<main>\n", f); + fprintf(f, "<h2>%s</h2>\n", name); if (!fpinject(f, l, srcpath)) printf(">>> Building failed: %s\n", name); - fputs("\n\n</main>", f); + fputs("\n</main>", f); } else { gettwtxt(f); }

@@ -570,7 +574,7 @@ printf(">>> Building failed: footer(%s)\n", name);

} /* end */ - fputs("</body></html>", f); + fputs("</body>\n</html>\n", f); return f; }