diff options
-rw-r--r-- | config.h | 1 | ||||
-rw-r--r-- | pages.c | 57 | ||||
-rw-r--r-- | pages.h | 1 |
3 files changed, 47 insertions, 12 deletions
@@ -90,6 +90,7 @@ static const char *posts_title = "Daniel's posts"; static const char *posts_info = "<h1>Posts</h1>My posts about programming and things.<br>Date format is day/month/year because I'm sane.<br><br>"; static const char *posts_content = "content/blog/"; static const char *posts_output_dir = "posts/"; +static const char *direct_output_dir = "posts/direct/"; static const int posts_per_page = 10; static const int ignore[] = {}; /* ignore these posts */ @@ -467,6 +467,47 @@ postscompare(const void *a, const void *b) } int +createdirectpages(int *posts, size_t totalposts) +{ + /* + * create direct post files for each post + */ + + char file[512]; + char source[512]; + char buff[128]; + for (int x = 1; x < totalposts; x++) + { + memset(source, 0, 1); + memset(file, 0, 1); + memset(buff, 0, 1); + /* output file */ + strcat(file, direct_output_dir); + sprintf(buff, "%d.html", posts[x]); + strcat(file, buff); + + /* source file */ + strcat(source, posts_content); + sprintf(buff, "%d.txt", posts[x]); + strcat(source, buff); + + if (!createfile(file)) + { + fprintf(stderr, "unable to create file '%s', unrecoverable failure\n", file); + return 0; + } + + if (!genericpage(NONE, file, source, posts_title, posts_info)) + { + fprintf(stderr, "unable to generate direct post page '%s', unrecoverable failure\n", file); + return 0; + } + //printf("%d\n", posts[x]); + } + return 1; +} + +int postspage(int flags) { /* @@ -512,19 +553,11 @@ postspage(int flags) /* sort posts */ qsort(posts, totalposts, sizeof(int), postscompare); - char file[512]; - char buff[128]; - for (int x = 1; x < totalposts; x++) + + if (!createdirectpages(posts, totalposts)) { - memset(file, 0, 1); - memset(buff, 0, 1); - strcat(file, posts_output_dir); - sprintf(buff, "%d", posts[x]); - strcat(file, buff); - strcat(file, ".txt"); - //puts(file); - createfile(file); - //printf("%d\n", posts[x]); + fprintf(stderr, "unable to create direct post pages, unrecoverable failure\n"); + return 0; } return 1; @@ -42,6 +42,7 @@ int createtmpfile(const char *name, const char *content, size_t size); int makedirectories(const char *basedir, const char *file); int postscompare(const void *a, const void *b); int genericpage(int flags, const char *ind, const char *out, const char *tit, const char *inf); +int createdirectpages(int *posts, size_t totalposts); /* generators (to be put into the pages array) */ int frontpage(int flags); |