aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Green <andy@warmcat.com>2018-07-03 11:33:59 +0800
committerChristian Hesse <mail@eworm.de>2019-10-25 17:03:28 +0200
commitbad1ca1ac1ac9109ea69daadc188b72357b89772 (patch)
tree92f5ca6339f887aa2c478735cc6ad31831f78aac
parentgit: update to v2.23.0 (diff)
downloadcgit-bad1ca1ac1ac9109ea69daadc188b72357b89772.tar.xz
cgit-bad1ca1ac1ac9109ea69daadc188b72357b89772.zip
css: change to be a listch/css-list
Without changing the default behaviour of including /cgit.css if nothing declared, allow the "css" config to be given multiple times listing one or more alternative URL paths to be included in the document head area. Signed-off-by: Andy Green <andy@warmcat.com> Signed-off-by: Christian Hesse <mail@eworm.de>
-rw-r--r--cgit.c3
-rw-r--r--cgit.h2
-rw-r--r--cgitrc.5.txt3
-rw-r--r--ui-shared.c21
4 files changed, 22 insertions, 7 deletions
diff --git a/cgit.c b/cgit.c
index ac8c641..c6111dd 100644
--- a/cgit.c
+++ b/cgit.c
@@ -142,7 +142,7 @@ static void config_cb(const char *name, const char *value)
else if (!strcmp(name, "root-readme"))
ctx.cfg.root_readme = xstrdup(value);
else if (!strcmp(name, "css"))
- ctx.cfg.css = xstrdup(value);
+ string_list_append(&ctx.cfg.css, xstrdup(value));
else if (!strcmp(name, "favicon"))
ctx.cfg.favicon = xstrdup(value);
else if (!strcmp(name, "footer"))
@@ -376,7 +376,6 @@ static void prepare_context(void)
ctx.cfg.case_sensitive_sort = 1;
ctx.cfg.branch_sort = 0;
ctx.cfg.commit_sort = 0;
- ctx.cfg.css = "/cgit.css";
ctx.cfg.logo = "/cgit.png";
ctx.cfg.favicon = "/favicon.ico";
ctx.cfg.local_time = 0;
diff --git a/cgit.h b/cgit.h
index 7ec46b4..9a5ca57 100644
--- a/cgit.h
+++ b/cgit.h
@@ -195,7 +195,6 @@ struct cgit_config {
char *cache_root;
char *clone_prefix;
char *clone_url;
- char *css;
char *favicon;
char *footer;
char *head_include;
@@ -206,6 +205,7 @@ struct cgit_config {
char *module_link;
char *project_list;
struct string_list readme;
+ struct string_list css;
char *robots;
char *root_title;
char *root_desc;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index ba77826..7a3a81c 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -126,7 +126,8 @@ commit-sort::
css::
Url which specifies the css document to include in all cgit pages.
- Default value: "/cgit.css".
+ Default value: "/cgit.css". May be given multiple times, each
+ css URL path is added in the head section of the document in turn.
email-filter::
Specifies a command which will be invoked to format names and email
diff --git a/ui-shared.c b/ui-shared.c
index d2358f2..8b378c9 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -767,6 +767,18 @@ static void print_rel_vcs_link(const char *url)
html(" Git repository'/>\n");
}
+static int emit_css_link(struct string_list_item *s, void *arg)
+{
+ html("<link rel='stylesheet' type='text/css' href='");
+ if (s)
+ html_attr(s->string);
+ else
+ html_attr((const char *)arg);
+ html("'/>\n");
+
+ return 0;
+}
+
void cgit_print_docstart(void)
{
char *host = cgit_hosturl();
@@ -786,9 +798,12 @@ void cgit_print_docstart(void)
htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version);
if (ctx.cfg.robots && *ctx.cfg.robots)
htmlf("<meta name='robots' content='%s'/>\n", ctx.cfg.robots);
- html("<link rel='stylesheet' type='text/css' href='");
- html_attr(ctx.cfg.css);
- html("'/>\n");
+
+ if (ctx.cfg.css.items)
+ for_each_string_list(&ctx.cfg.css, emit_css_link, NULL);
+ else
+ emit_css_link(NULL, "/cgit.css");
+
if (ctx.cfg.favicon) {
html("<link rel='shortcut icon' href='");
html_attr(ctx.cfg.favicon);