diff options
author | Andy Green <andy@warmcat.com> | 2018-07-03 11:33:59 +0800 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2019-10-25 17:03:28 +0200 |
commit | bad1ca1ac1ac9109ea69daadc188b72357b89772 (patch) | |
tree | 92f5ca6339f887aa2c478735cc6ad31831f78aac | |
parent | 8fc0c81bbbed21ee30e8a48b2ab1066a029b7b32 (diff) | |
download | cgit-ch/css-list.tar.gz |
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.c | 3 | ||||
-rw-r--r-- | cgit.h | 2 | ||||
-rw-r--r-- | cgitrc.5.txt | 3 | ||||
-rw-r--r-- | ui-shared.c | 21 |
4 files changed, 22 insertions, 7 deletions
@@ -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; @@ -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); |