about summary refs log tree commit
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-02-12 23:10:06 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2018-07-03 20:37:00 +0200
commitb522a302c9c4fb9fd9e1ea829ee990afc74980ca (patch)
treeb1815354f08c1a16fb9d9c6d15dbe51bc3accbfd
parentc4fbb99cee30fa295e240b429b2dc7e8ad83d535 (diff)
downloadcgit-b522a302c9c4fb9fd9e1ea829ee990afc74980ca.tar.gz
extra-head-content: introduce another option for meta tags
This is to support things like go-import meta tags, which are on a
per-repo basis.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--cgit.c4
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt4
-rw-r--r--shared.c1
-rw-r--r--ui-shared.c2
5 files changed, 12 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 0c9f3e9..e2d7891 100644
--- a/cgit.c
+++ b/cgit.c
@@ -46,6 +46,8 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
                 repo->homepage = xstrdup(value);
         else if (!strcmp(name, "defbranch"))
                 repo->defbranch = xstrdup(value);
+        else if (!strcmp(name, "extra-head-content"))
+                repo->extra_head_content = xstrdup(value);
         else if (!strcmp(name, "snapshots"))
                 repo->snapshots = ctx.cfg.snapshots & cgit_parse_snapshots_mask(value);
         else if (!strcmp(name, "enable-commit-graph"))
@@ -797,6 +799,8 @@ static void print_repo(FILE *f, struct cgit_repo *repo)
         }
         if (repo->defbranch)
                 fprintf(f, "repo.defbranch=%s\n", repo->defbranch);
+        if (repo->extra_head_content)
+                fprintf(f, "repo.extra-head-content=%s\n", repo->extra_head_content);
         if (repo->module_link)
                 fprintf(f, "repo.module-link=%s\n", repo->module_link);
         if (repo->section)
diff --git a/cgit.h b/cgit.h
index 6feca68..32dfd7a 100644
--- a/cgit.h
+++ b/cgit.h
@@ -81,6 +81,7 @@ struct cgit_repo {
         char *name;
         char *path;
         char *desc;
+        char *extra_head_content;
         char *owner;
         char *homepage;
         char *defbranch;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index f6f6502..6f008cc 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -509,6 +509,10 @@ repo.enable-subject-links::
         A flag which can be used to override the global setting
         `enable-subject-links'. Default value: none.
 
+repo.extra-head-content::
+        This value will be added verbatim to the head section of each page
+        displayed for this repo. Default value: none.
+
 repo.hide::
         Flag which, when set to "1", hides the repository from the repository
         index. The repository can still be accessed by providing a direct path.
diff --git a/shared.c b/shared.c
index d7c7636..f7b64cf 100644
--- a/shared.c
+++ b/shared.c
@@ -53,6 +53,7 @@ struct cgit_repo *cgit_add_repo(const char *url)
         ret->name = ret->url;
         ret->path = NULL;
         ret->desc = cgit_default_repo_desc;
+        ret->extra_head_content = NULL;
         ret->owner = NULL;
         ret->homepage = NULL;
         ret->section = ctx.cfg.section;
diff --git a/ui-shared.c b/ui-shared.c
index a63dcb0..9a2e382 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -775,6 +775,8 @@ void cgit_print_docstart(void)
                 cgit_add_clone_urls(print_rel_vcs_link);
         if (ctx.cfg.head_include)
                 html_include(ctx.cfg.head_include);
+        if (ctx.repo && ctx.repo->extra_head_content)
+                html(ctx.repo->extra_head_content);
         html("</head>\n");
         html("<body>\n");
         if (ctx.cfg.header)