add some ecommerce stuff and uh remove my deadname from the actual code
This commit is contained in:
parent
2bf39ebcff
commit
7b0a9ce79a
2 changed files with 149 additions and 14 deletions
|
@ -18,4 +18,5 @@
|
|||
#define ABOUT_HTML "<h2>Welcome to this website</h2>"
|
||||
#define NAME "a website"
|
||||
#define IS_HTML5_VIDEO_ENABLED 0
|
||||
#define CONTACT_ADDRESS "contact@amotherfuckingwebsite.com"
|
||||
/* clang-format on */
|
||||
|
|
162
main.c
162
main.c
|
@ -9,7 +9,7 @@
|
|||
#include "config.h"
|
||||
|
||||
/*
|
||||
Copyright (c) 2021 Derek Stevens
|
||||
Copyright (c) 2021 Iris Lightshard
|
||||
Copyright (c) 2021 Devine Lu Linvega
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
|
@ -54,6 +54,12 @@ int error(char* msg, char* val) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void clearstr(char* s) {
|
||||
while (*s) {
|
||||
*s++ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
time_t getlater(time_t a, time_t b) { return a > b ? a : b; }
|
||||
|
||||
int ismetanav(char* name) { return scmp(name, "meta.nav"); }
|
||||
|
@ -75,7 +81,7 @@ int gettwtxt(FILE* f) {
|
|||
char datebuf[16] = {0};
|
||||
char msgbuf[240] = {0};
|
||||
char urlbuf[256] = {0};
|
||||
char *l, *d, *m, *u;
|
||||
char* l;
|
||||
FILE* twtxt = fopen(SITEROOT TWTXT, "r");
|
||||
|
||||
scat(buf, "<div id='twtxtFeed'><h2>recent activity</h2>\n<table>\n");
|
||||
|
@ -121,18 +127,9 @@ int gettwtxt(FILE* f) {
|
|||
scat(buf, msgbuf);
|
||||
}
|
||||
scat(buf, "</td></tr>\n");
|
||||
d = datebuf;
|
||||
while (*d) {
|
||||
*d++ = 0;
|
||||
}
|
||||
m = msgbuf;
|
||||
while (*m) {
|
||||
*m++ = 0;
|
||||
}
|
||||
u = urlbuf;
|
||||
while (*u) {
|
||||
*u++ = 0;
|
||||
}
|
||||
clearstr(datebuf);
|
||||
clearstr(msgbuf);
|
||||
clearstr(urlbuf);
|
||||
i++;
|
||||
}
|
||||
fclose(twtxt);
|
||||
|
@ -539,6 +536,139 @@ int fpblock(FILE* f, char* s) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int fppiclisting(FILE* f, Lexicon* l, char* s) {
|
||||
char desc[1024] = {0};
|
||||
char href[1024] = {0};
|
||||
char img[1024] = {0};
|
||||
char metaimg[1024] = {0};
|
||||
int target = 0;
|
||||
|
||||
char* c = s;
|
||||
int i = 0;
|
||||
while (i < 2) {
|
||||
if (*c == '|' || !(*c)) {
|
||||
i++;
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
switch (i) {
|
||||
case 0:
|
||||
ccat(desc, *c++);
|
||||
break;
|
||||
case 1:
|
||||
ccat(img, *c++);
|
||||
break;
|
||||
}
|
||||
}
|
||||
scpy(desc, href, slen(desc) + 1);
|
||||
scsw(stlc(href), ' ', '_');
|
||||
scat(metaimg, href);
|
||||
scat(metaimg, "|/");
|
||||
scat(metaimg, href);
|
||||
scat(metaimg, ".html|");
|
||||
scat(metaimg, img);
|
||||
scat(metaimg, desc);
|
||||
|
||||
fputs("<li>", f);
|
||||
fphimg(f, metaimg);
|
||||
target = findf(l, desc);
|
||||
if (target < 0) {
|
||||
return error("Missing link", s);
|
||||
}
|
||||
|
||||
fprintf(f, "<a href='/%s.html' class='local'>", scsw(stlc(desc), ' ', '_'));
|
||||
fprintf(f, "%s</a>", scsw(stlc(desc), '_', ' '));
|
||||
l->refs[target]++;
|
||||
fputs("</li>", f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int fpshop(FILE* f, Lexicon* l, char* s) {
|
||||
|
||||
char paylink[1024] = {0};
|
||||
char desc[1024] = {0};
|
||||
|
||||
char img[1024] = {0};
|
||||
char alt[1024] = {0};
|
||||
|
||||
char metaimg[1024] = {0};
|
||||
char imgcountbuf[12] = {0};
|
||||
int imgcount = 0;
|
||||
|
||||
char* c = s;
|
||||
|
||||
int i = 0;
|
||||
|
||||
while (i < 2) {
|
||||
if (*c == '|' || !(*c)) {
|
||||
i++;
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
switch (i) {
|
||||
case 0:
|
||||
ccat(paylink, *c++);
|
||||
break;
|
||||
case 1:
|
||||
ccat(desc, *c++);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fputs("<div class='product'><div class='product-imgs'>", f);
|
||||
|
||||
for (;;) {
|
||||
|
||||
if (*c == '|' || !(*c)) {
|
||||
if (i % 2 == 0) {
|
||||
clearstr(metaimg);
|
||||
sprintf(imgcountbuf, "%d", ++imgcount);
|
||||
scat(metaimg, "img");
|
||||
scat(metaimg, imgcountbuf);
|
||||
scat(metaimg, "|");
|
||||
scat(metaimg, img);
|
||||
scat(metaimg, "|");
|
||||
} else {
|
||||
scat(metaimg, alt);
|
||||
|
||||
fpimg(f, metaimg);
|
||||
|
||||
clearstr(imgcountbuf);
|
||||
clearstr(img);
|
||||
clearstr(alt);
|
||||
}
|
||||
|
||||
if (!(*c)) {
|
||||
if (i % 2 == 0) {
|
||||
return error("Needs even number of args", s);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
c++;
|
||||
continue;
|
||||
}
|
||||
if (i % 2 == 0) {
|
||||
ccat(img, *c++);
|
||||
} else {
|
||||
ccat(alt, *c++);
|
||||
}
|
||||
}
|
||||
|
||||
fputs("</div>", f);
|
||||
|
||||
fppara(f, l, desc);
|
||||
fprintf(
|
||||
f,
|
||||
"<div class='cta'><a href='%s'>purchase</a><a href='mailto:" CONTACT_ADDRESS
|
||||
"'>inquire</a></div>",
|
||||
paylink);
|
||||
fputs("</div>", f);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int fptemplate(FILE* f, Lexicon* l, char* s) {
|
||||
int target = 0;
|
||||
switch (s[0]) {
|
||||
|
@ -594,6 +724,10 @@ int fptemplate(FILE* f, Lexicon* l, char* s) {
|
|||
return fpsans(f, l, s + 1);
|
||||
case ')':
|
||||
return fpserif(f, l, s + 1);
|
||||
case '%':
|
||||
return fppiclisting(f, l, s + 1);
|
||||
case '^':
|
||||
return fpshop(f, l, s + 1);
|
||||
}
|
||||
if (s[0]) {
|
||||
target = findf(l, s);
|
||||
|
|
Loading…
Reference in a new issue