diff --git a/stagit-index.c b/stagit-index.c
@@ -64,7 +64,20 @@ void printtimeshort(FILE *fp, const git_time *intime)
t = (time_t)intime->time;
if (!(intm = gmtime(&t)))
return;
- strftime(out, sizeof(out), "%Y-%m-%d %H:%M", intm);
+ strftime(out, sizeof(out), "%Y-%m-%d", intm);
+ fputs(out, fp);
+}
+
+void printtimehuman(FILE *fp, const git_time *intime)
+{
+ struct tm *intm;
+ time_t t;
+ char out[32];
+
+ t = (time_t)intime->time;
+ if (!(intm = gmtime(&t)))
+ return;
+ strftime(out, sizeof(out), "%d/%m/%Y", intm);
fputs(out, fp);
}
@@ -77,37 +90,22 @@ void writeheader(FILE *fp)
"<title>", fp);
xmlencode(fp, description, strlen(description));
fprintf(fp, "</title>\n<link rel=\"icon\" type=\"image/svg\" href=\"/icons/favicon.svg\" />\n");
- fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/styles.css\" />\n", relpath);
+ fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/styles.css\" />\n", relpath);
fputs("</head>\n<body>\n", fp);
// The navigation bar
- fputs("<nav id=\"site-map\">\n", fp);
- fputs("<ul>\n", fp);
- fputs("<li><strong><a href=\"https://pablopie.xyz\">@pablo 🚭</a></strong></li>\n",
- fp);
- fputs("<li><a href=\"https://pablopie.xyz/contact.html\">contact ☎️</a></li>\n",
- fp);
- fputs("<li><a href=\"https://linux.ime.usp.br/~pablo/\">maths 📔</a></li>\n",
- fp);
- fputs("<li><a href=\"https://git.pablopie.xyz\">repos 🙀️</a></li>\n", fp);
- fputs("</ul>\n", fp);
+ fputs("<nav>\n", fp);
+ fputs("<a href=\"https://git.pablopie.xyz\">git.pablopie.xyz</a>\n", fp);
fputs("</nav>\n", fp);
- fputs("<main>\n<h1>", fp);
- xmlencode(fp, description, strlen(description));
- fputs("</h1>\n", fp);
- fputs("<p>My personal repositories</p>\n", fp);
- fputs("<div class=\"table-container\">\n"
- "<table id=\"index\"><thead>\n"
- "<tr><td><b>Name</b></td><td><b>Description</b></td><td><b>Owner</b></td>"
- "<td><b>Last commit</b></td></tr>"
- "</thead><tbody>\n", fp);
+ fputs("<main>\n", fp);
+ fputs("<div id=\"index\">\n", fp);
}
void writefooter(FILE *fp)
{
- fputs("</tbody>\n</table>\n</div>\n</main>\n", fp);
- fputs("<footer>Pablo © 2022</footer>\n", fp);
+ fputs("</div>\n</main>\n", fp);
+ fputs("<footer>mode with ❤️ by <a href=\"https://pablopie.xyz/\">@pablo</a></footer>\n", fp);
fputs("</body>\n</html>\n", fp);
}
@@ -139,7 +137,7 @@ int writelog(FILE *fp)
if (!strcmp(p, ".git"))
*p = '\0';
- fputs("<tr><td><a href=\"", fp);
+ fputs("<article>\n<h4>\n<a href=\"", fp);
xmlencode(fp, stripped_name, strlen(stripped_name));
if (has_markdown_readme(repo))
@@ -148,20 +146,23 @@ int writelog(FILE *fp)
fputs("/log.html\">", fp);
xmlencode(fp, stripped_name, strlen(stripped_name));
- fputs("</a></td><td>", fp);
- xmlencode(fp, description, strlen(description));
- fputs("</td><td>", fp);
+ fputs("</a>\n</h4>\n", fp);
+
+ fputs("<div>\n<span>", fp);
xmlencode(fp, owner, strlen(owner));
- fputs("</td><td>", fp);
+ fputs("</span>\n", fp);
if (author)
{
fputs("<time datetime=\"", fp);
printtimeshort(fp, &(author->when));
fputs("\">", fp);
- printtimeshort(fp, &(author->when));
- fputs("</time>", fp);
+ printtimehuman(fp, &(author->when));
+ fputs("</time>\n", fp);
}
- fputs("</td></tr>", fp);
+ fputs("</div>\n<p>\n", fp);
+
+ xmlencode(fp, description, strlen(description));
+ fputs("\n</p>\n</article>\n", fp);
git_commit_free(commit);
err:
diff --git a/stagit.c b/stagit.c
@@ -439,43 +439,27 @@ void printtimeshort(FILE *fp, const git_time *intime)
void writeheader(FILE *fp, const char *title)
{
fputs("<!DOCTYPE html>\n"
- "<html>\n<head>\n"
- "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n"
- "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n"
- "<title>", fp);
- xmlencode(fp, title, strlen(title));
- if (title[0] && strippedname[0])
- fputs(" - ", fp);
- xmlencode(fp, strippedname, strlen(strippedname));
- if (description[0])
- fputs(" - ", fp);
+ "<html>\n<head>\n"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n"
+ "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n"
+ "<title>", fp);
xmlencode(fp, description, strlen(description));
- fprintf(fp, "</title>\n<link rel=\"icon\" type=\"image/svg\" href=\"/icons/favicon.svg\"/>\n");
- fprintf(fp, "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"%s Atom Feed\" href=\"%satom.xml\" />\n",
- name, relpath);
- fprintf(fp, "<link rel=\"alternate\" type=\"application/atom+xml\" title=\"%s Atom Feed (tags)\" href=\"%stags.xml\" />\n",
- name, relpath);
- fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/css/styles.css\" />\n", relpath);
+ fprintf(fp, "</title>\n<link rel=\"icon\" type=\"image/svg\" href=\"/icons/favicon.svg\" />\n");
+ fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"/styles.css\" />\n", relpath);
fputs("</head>\n<body>\n", fp);
// The navigation bar
- fputs("<nav id=\"site-map\">\n", fp);
- fputs("<ul>\n", fp);
- fputs("<li><strong><a href=\"https://pablopie.xyz\">@pablo 🚭</a></strong></li>\n",
- fp);
- fputs("<li><a href=\"https://pablopie.xyz/contact.html\">contact ☎️</a></li>\n",
- fp);
- fputs("<li><a href=\"https://linux.ime.usp.br/~pablo/\">maths 📔</a></li>\n",
- fp);
- fputs("<li><a href=\"https://git.pablopie.xyz\">repos 🙀️</a></li>\n", fp);
- fputs("</ul>\n", fp);
+ fputs("<nav>\n", fp);
+ fputs("<a href=\"https://git.pablopie.xyz\">git.pablopie.xyz</a>\n", fp);
fputs("</nav>\n", fp);
+ fputs("<main>\n", fp);
+
fputs("<main>\n<h1>", fp);
xmlencode(fp, strippedname, strlen(strippedname));
fputs("</h1>\n<p>", fp);
xmlencode(fp, description, strlen(description));
- fputs("</p>\n<ul>", fp);
+ fputs("</p>\n<ul>\n", fp);
if (cloneurl[0]) {
fputs("<li>git clone: <a href=\"", fp);
xmlencode(fp, cloneurl, strlen(cloneurl));
@@ -483,9 +467,9 @@ void writeheader(FILE *fp, const char *title)
xmlencode(fp, cloneurl, strlen(cloneurl));
fputs("</a></li>\n", fp);
}
- fprintf(fp, "<li><a href=\"%slog.html\">Log</a></li>", relpath);
- fprintf(fp, "<li><a href=\"%sfiles.html\">Files</a></li>", relpath);
- fprintf(fp, "<li><a href=\"%srefs.html\">Refs</a></li>", relpath);
+ fprintf(fp, "<li><a href=\"%slog.html\">Log</a></li>\n", relpath);
+ fprintf(fp, "<li><a href=\"%sfiles.html\">Files</a></li>\n", relpath);
+ fprintf(fp, "<li><a href=\"%srefs.html\">Refs</a></li>\n", relpath);
if (submodules)
fprintf(fp, "<li><a href=\"%sfile/%s.html\">Submodules</a></li>\n",
relpath, submodules);
@@ -498,8 +482,8 @@ void writeheader(FILE *fp, const char *title)
void writefooter(FILE *fp)
{
- fputs("</main>\n", fp);
- fputs("<footer>Pablo © 2022</footer>\n", fp);
+ fputs("</div>\n</main>\n", fp);
+ fputs("<footer>mode with ❤️ by <a href=\"https://pablopie.xyz/\">@pablo</a></footer>\n", fp);
fputs("</body>\n</html>\n", fp);
}
@@ -941,10 +925,10 @@ size_t writeblob(git_object *obj, const char *fpath, const char *blobpath, const
writeheader(fp, filename);
fprintf(fp, "<li><a href=\"%s%s\">raw file (blob)</a></li>", relpath, blobpath);
fputs("</ul>\n", fp);
- fputs("<div class=\"titled-block\">\n<h1>", fp);
+ fputs("<h2>", fp);
xmlencode(fp, filename, strlen(filename));
fprintf(fp, " (%zuB)", filesize);
- fputs("</h1>\n<div class=\"codeblock\">", fp);
+ fputs("</h2>\n<div class=\"codeblock\">\n", fp);
if (git_blob_is_binary((git_blob *)obj)) {
fputs("<pre>Binary file</pre>\n", fp);
@@ -954,7 +938,7 @@ size_t writeblob(git_object *obj, const char *fpath, const char *blobpath, const
err(1, "fwrite");
}
- fputs("</div>\n</div>\n", fp);
+ fputs("</div>\n", fp);
writefooter(fp);
fclose(fp);