repos/stagit

fork of stagit, a static git page generator
Commits Files Refs README LICENSE
commit f5cad2e5b0f3511851f550c508e1e896252a4550
parent df30ea8e2b90ad1b83ca0431f89596873ab9e2e2
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Wed,  2 Sep 2026 17:51:30 -0300

append 'raw/' to locally referenced readme images using js at the end of
the generated html

Diffstat:
Mstagit.c | 21+++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/stagit.c b/stagit.c
@@ -1653,10 +1653,20 @@ main(int argc, char *argv[])
         if (r == 1) {
             git_off_t len = git_blob_rawsize((git_blob *)obj);
             fputs("<div id=\"readme\">", fp);
-            if (md_html(s, len, process_output_md, fp, MD_FLAG_TABLES | MD_FLAG_TASKLISTS |
-                MD_FLAG_PERMISSIVEEMAILAUTOLINKS | MD_FLAG_PERMISSIVEURLAUTOLINKS, 0))
+            if (md_html(s, len, process_output_md, fp,
+                        MD_FLAG_TABLES |
+                        MD_FLAG_TASKLISTS |
+                        MD_FLAG_PERMISSIVEEMAILAUTOLINKS |
+                        MD_FLAG_PERMISSIVEURLAUTOLINKS, 0))
                 err(1, "error parsing markdown");
             fputs("</div>\n", fp);
+            fputs("<script>"
+                    "document.querySelectorAll('#readme img').forEach(img => {"
+                    "const src = img.getAttribute('src');"
+                    "if (src && !src.startsWith('/') && !src.startsWith('http'))"
+                    "img.src = 'raw/' + src;"
+                    "});"
+                    "</script>\n", fp);
         } else {
             fputs("<pre id=\"readme\">", fp);
             xmlencode(fp, s, strlen(s));
@@ -1741,6 +1751,13 @@ main(int argc, char *argv[])
                 MD_FLAG_PERMISSIVEEMAILAUTOLINKS | MD_FLAG_PERMISSIVEURLAUTOLINKS, 0))
                 err(1, "error parsing markdown");
             fputs("</div>\n", fp);
+            fputs("<script>"
+                    "document.querySelectorAll('#readme img').forEach(img => {"
+                    "const src = img.getAttribute('src');"
+                    "if (src && !src.startsWith('/') && !src.startsWith('http'))"
+                    "img.src = 'raw/' + src;"
+                    "});"
+                    "</script>\n", fp);
         } else {
             fputs("<pre id=\"readme\">", fp);
             xmlencode(fp, s, strlen(s));