segini dulu

This commit is contained in:
radhitya 2025-01-22 13:15:18 +07:00
parent f0800f0c2c
commit 3519e2e63c
2 changed files with 38 additions and 12 deletions

38
main.c
View File

@ -21,6 +21,7 @@ typedef struct {
int italic; int italic;
int hyperlink; int hyperlink;
int code; int code;
int blockcode;
int headingone; int headingone;
int headingtwo; int headingtwo;
int headingthree; int headingthree;
@ -250,7 +251,10 @@ void copy_css(void) {
void newsetup(void) { void newsetup(void) {
struct stat st; struct stat st;
if (stat("./source", &st) == -1) mkdir("./source", 0700); if (stat("./source", &st) == -1) {
mkdir("./source", 0700);
mkdir("./source/post", 0700);
}
if (stat("./target", &st) == -1) mkdir("./target", 0700); if (stat("./target", &st) == -1) mkdir("./target", 0700);
if (stat("./media", &st) == -1) { if (stat("./media", &st) == -1) {
mkdir("./media", 0700); mkdir("./media", 0700);
@ -442,8 +446,6 @@ dohyperlink(void) {
} }
} }
void build(void) {
}
void generate(void) { void generate(void) {
@ -464,7 +466,7 @@ void generate(void) {
txt[--len] = '\0'; txt[--len] = '\0';
} }
mdt.headingone = mdt.headingtwo = mdt.headingthree = mdt.quote = 0; mdt.headingone = mdt.headingtwo = mdt.headingthree = mdt.quote = mdt.blockcode = 0;
if (len == 0) { if (len == 0) {
fprintf(fpto, "\n"); fprintf(fpto, "\n");
@ -472,6 +474,7 @@ void generate(void) {
i = 0; i = 0;
judul = 0; judul = 0;
if (txt[0] == '#') { if (txt[0] == '#') {
int heading_count = 0; int heading_count = 0;
while (i < len && txt[i] == '#') { while (i < len && txt[i] == '#') {
@ -499,6 +502,27 @@ if (txt[0] == '#') {
} }
continue; continue;
} }
}
else if(len > 1 && txt[0] == '`' && txt[1] == '`' && txt[2] == '`' && (i == 0 || txt[3] != '\\')) {
if (!mdt.blockcode) {
fprintf(fpto, "<pre><code>");
mdt.blockcode = 1;
i += 3;
} else {
fprintf(fpto, "</code></pre>");
mdt.blockcode = 0;
i += 3;
continue;
}
} else if (mdt.blockcode) {
int start = i;
while (i < len && !(i + 2 < len && txt[i] == '`' && txt[i+1] == '`' && txt[i+2] == '`' && (i == 0 || txt[i+3] != '\\'))) {
i++;
}
fprintf(fpto, "%.*s", i - start, txt + start);
if (i < len && i + 2 < len && txt[i] == '`' && txt[i+1] == '`' && txt[i+2] == '`') {
i += 2;
}
} }
else if (len > 1 && txt[0] == '>' && txt[1] != '\\') { else if (len > 1 && txt[0] == '>' && txt[1] != '\\') {
doblockquote(); doblockquote();
@ -531,9 +555,10 @@ if (txt[0] == '#') {
else if (mdt.headingone) fprintf(fpto, "</h1>\n"); else if (mdt.headingone) fprintf(fpto, "</h1>\n");
else if (mdt.headingtwo) fprintf(fpto, "</h2>\n"); else if (mdt.headingtwo) fprintf(fpto, "</h2>\n");
else if (mdt.headingthree) fprintf(fpto, "</h3>\n"); else if (mdt.headingthree) fprintf(fpto, "</h3>\n");
if (!(mdt.headingone || mdt.headingtwo || mdt.headingthree || mdt.quote)) fprintf(fpto, "</p>\n");
mdt.italic = mdt.bold = mdt.quote = mdt.headingone = mdt.headingtwo = mdt.headingthree = mdt.code = 0; if (!(mdt.headingone || mdt.headingtwo || mdt.headingthree || mdt.quote || mdt.blockcode)) fprintf(fpto, "</p>\n");
mdt.italic = mdt.bold = mdt.quote = mdt.headingone = mdt.headingtwo = mdt.headingthree = mdt.code = mdt.blockcode = 0;
} }
} }
@ -630,3 +655,4 @@ int main(int argc, char *argv[]) {
printf("salah perintah\n"); printf("salah perintah\n");
return 1; return 1;
} }

View File

@ -1,5 +1,5 @@
body { body {
background: #01242e; background: #000;
color: #fff; color: #fff;
font-family: sans-serif; font-family: sans-serif;
margin: auto; margin: auto;
@ -8,16 +8,16 @@ body {
} }
blockquote { blockquote {
background:#1A3440; background:#880808;
} }
a:link { a:link {
color: #EAE2C6; color: #880808;
} }
a:visited { a:visited {
color: #EAE2C6 color: #880808;
} }
a:hover { a:hover {
color: #01242e; color: #000;
background-color: #fff; background-color: #fff;
} }