commit 56130574e5a450a9fbeccb4045a2eea12dd06b5e
parent c473d24e507aa81e26702c69abe04ac9ee717340
Author: Ibrahim Muftee <ibrahim@muftee.net>
Date: Thu, 3 Sep 2026 10:39:18 +0000
actually add the togggle
Diffstat:
2 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/stagit-index.c b/stagit-index.c
@@ -146,17 +146,26 @@ writeheader(FILE *fp)
fprintf(fp, "</title>\n<link rel=\"icon\" type=\"image/png\" href=\"%sfavicon.png\" />\n", relpath);
fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"%sstyle.css\" />\n", relpath);
fputs("</head>\n<body>\n", fp);
- fprintf(fp, "<table>\n<tr><td><img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" /></td>\n"
- "<td><span class=\"desc\">", relpath);
+ fputs("<table style=\"width: 100%;\">\n", fp);
+ fputs("<tr>\n", fp);
+ fputs(" <td style=\"width: 50%;\">\n", fp);
+ fprintf(fp, " <img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" />\n", relpath);
+ fputs(" </td>\n", fp);
+ fputs(" <td style=\"width: 50%; text-align: right;\">\n", fp);
+ fputs(" <button id=\"theme-toggle\" style=\"background: none; border: 1px solid #888; border-radius: 4px; padding: 4px 8px; cursor: pointer;\">\n", fp);
+ fputs(" <span id=\"theme-icon\">🌙</span> <span id=\"theme-label\">Dark</span>\n", fp);
+ fputs(" </button>\n", fp);
+ fputs(" </td>\n", fp);
+ fputs("</tr>\n", fp);
+ fputs("<tr><td colspan=\"2\"><span class=\"desc\">", fp);
xmlencode(fp, description, strlen(description));
- fputs("</span></td></tr><tr><td></td><td>\n"
- "</td></tr>\n</table>\n<hr/>\n<div id=\"content\">\n"
+ fputs("</span></td></tr>\n</table>\n<hr/>\n<div id=\"content\">\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);
-
- writejavascript(fp);
+
+ writejavascript(fp);
}
void
diff --git a/stagit.c b/stagit.c
@@ -561,22 +561,32 @@ writeheader(FILE *fp, const char *title)
xmlencode(fp, name, strlen(name));
fprintf(fp, " Atom Feed (tags)\" href=\"%stags.xml\" />\n", relpath);
fprintf(fp, "<link rel=\"stylesheet\" type=\"text/css\" href=\"%sstyle.css\" />\n", relpath);
- fputs("</head>\n<body>\n<table><tr><td>", fp);
- fprintf(fp, "<a href=\"../%s\"><img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" /></a>",
+ fputs("</head>\n<body>\n", fp);
+ fputs("<table style=\"width: 100%;\">\n", fp);
+ fputs("<tr>\n", fp);
+ fputs(" <td style=\"width: 50%;\">\n", fp);
+ fprintf(fp, " <a href=\"../%s\"><img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" /></a>\n",
relpath, relpath);
- fputs("</td><td><h1>", fp);
+ fputs(" </td>\n", fp);
+ fputs(" <td style=\"width: 50%; text-align: right;\">\n", fp);
+ fputs(" <button id=\"theme-toggle\" style=\"background: none; border: 1px solid #888; border-radius: 4px; padding: 4px 8px; cursor: pointer;\">\n", fp);
+ fputs(" <span id=\"theme-icon\">🌙</span> <span id=\"theme-label\">Dark</span>\n", fp);
+ fputs(" </button>\n", fp);
+ fputs(" </td>\n", fp);
+ fputs("</tr>\n", fp);
+ fputs("<tr><td colspan=\"2\"><h1>", fp);
xmlencode(fp, strippedname, strlen(strippedname));
fputs("</h1><span class=\"desc\">", fp);
xmlencode(fp, description, strlen(description));
fputs("</span></td></tr>", fp);
if (cloneurl[0]) {
- fputs("<tr class=\"url\"><td></td><td>git clone <a href=\"", fp);
- xmlencode(fp, cloneurl, strlen(cloneurl)); /* not percent-encoded */
+ fputs("<tr class=\"url\"><td colspan=\"2\">git clone <a href=\"", fp);
+ xmlencode(fp, cloneurl, strlen(cloneurl));
fputs("\">", fp);
xmlencode(fp, cloneurl, strlen(cloneurl));
fputs("</a></td></tr>", fp);
}
- fputs("<tr><td></td><td>\n", fp);
+ fputs("<tr><td colspan=\"2\">\n", fp);
fprintf(fp, "<a href=\"%slog.html\">Log</a> | ", relpath);
fprintf(fp, "<a href=\"%sfiles.html\">Files</a> | ", relpath);
fprintf(fp, "<a href=\"%srefs.html\">Refs</a>", relpath);
@@ -590,8 +600,8 @@ writeheader(FILE *fp, const char *title)
fprintf(fp, " | <a href=\"%sfile/%s.html\">LICENSE</a>",
relpath, license);
fputs("</td></tr></table>\n<hr/>\n<div id=\"content\">\n", fp);
-
- writejavascript(fp);
+
+ writejavascript(fp);
}
void