From: rep.dot.nop at gmail.com (Bernhard Reutner-Fischer)
Subject: [PATCH] Implement logo-alt
Date: Thu, 9 Jun 2016 17:27:15 +0200 [thread overview]
Message-ID: <CAC1BbcT6BAnnBwXxmpwe1GR9rDjkQEspDMqZeY+0ktEVwr=Hhg@mail.gmail.com> (raw)
In-Reply-To: <1434710239-31077-1-git-send-email-rep.dot.nop@gmail.com>
ping
On 19 June 2015 at 12:37, Bernhard Reutner-Fischer
<rep.dot.nop at gmail.com> wrote:
> From: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
>
> Allow to specify an alternative text for the logo image.
> Fix empty logo-link while at it.
>
> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
> ---
> cgit.c | 15 +++++++++++++--
> cgit.h | 2 ++
> cgitrc.5.txt | 18 +++++++++++++-----
> ui-shared.c | 31 +++++++++++++++++++++++--------
> 4 files changed, 51 insertions(+), 15 deletions(-)
>
> diff --git a/cgit.c b/cgit.c
> index ae413c6..718b531 100644
> --- a/cgit.c
> +++ b/cgit.c
> @@ -80,6 +80,8 @@ static void repo_config(struct cgit_repo *repo, const char *name, const char *va
> string_list_append(&repo->readme, xstrdup(value));
> } else if (!strcmp(name, "logo") && value != NULL)
> repo->logo = xstrdup(value);
> + else if (!strcmp(name, "logo-alt") && value != NULL)
> + repo->logo_alt = xstrdup(value);
> else if (!strcmp(name, "logo-link") && value != NULL)
> repo->logo_link = xstrdup(value);
> else if (ctx.cfg.enable_filter_overrides) {
> @@ -128,12 +130,14 @@ static void config_cb(const char *name, const char *value)
> ctx.cfg.head_include = xstrdup(value);
> else if (!strcmp(name, "header"))
> ctx.cfg.header = xstrdup(value);
> - else if (!strcmp(name, "logo"))
> - ctx.cfg.logo = xstrdup(value);
> else if (!strcmp(name, "index-header"))
> ctx.cfg.index_header = xstrdup(value);
> else if (!strcmp(name, "index-info"))
> ctx.cfg.index_info = xstrdup(value);
> + else if (!strcmp(name, "logo"))
> + ctx.cfg.logo = xstrdup(value);
> + else if (!strcmp(name, "logo-alt"))
> + ctx.cfg.logo_alt = xstrdup(value);
> else if (!strcmp(name, "logo-link"))
> ctx.cfg.logo_link = xstrdup(value);
> else if (!strcmp(name, "module-link"))
> @@ -356,6 +360,7 @@ static void prepare_context(void)
> ctx.cfg.commit_sort = 0;
> ctx.cfg.css = "/cgit.css";
> ctx.cfg.logo = "/cgit.png";
> + ctx.cfg.logo_alt = "cgit logo";
> ctx.cfg.favicon = "/favicon.ico";
> ctx.cfg.local_time = 0;
> ctx.cfg.enable_http_clone = 1;
> @@ -837,6 +842,8 @@ static void print_repo(FILE *f, struct cgit_repo *repo)
> cgit_find_stats_periodname(repo->max_stats));
> if (repo->logo)
> fprintf(f, "repo.logo=%s\n", repo->logo);
> + if (repo->logo_alt)
> + fprintf(f, "repo.logo-alt=%s\n", repo->logo_alt);
> if (repo->logo_link)
> fprintf(f, "repo.logo-link=%s\n", repo->logo_link);
> fprintf(f, "repo.enable-remote-branches=%d\n", repo->enable_remote_branches);
> @@ -1062,6 +1069,10 @@ int main(int argc, const char **argv)
> if (!ctx.cfg.virtual_root && ctx.cfg.script_name)
> ctx.cfg.virtual_root = ensure_end(ctx.cfg.script_name, '/');
>
> + /* Now we can set the default global logo-link unless specified */
> + if (!ctx.cfg.logo_link)
> + ctx.cfg.logo_link = (char *)cgit_rooturl();
> +
> /* If no url parameter is specified on the querystring, lets
> * use PATH_INFO as url. This allows cgit to work with virtual
> * urls without the need for rewriterules in the webserver (as
> diff --git a/cgit.h b/cgit.h
> index 16f8092..27167bb 100644
> --- a/cgit.h
> +++ b/cgit.h
> @@ -89,6 +89,7 @@ struct cgit_repo {
> char *section;
> char *clone_url;
> char *logo;
> + char *logo_alt;
> char *logo_link;
> int snapshots;
> int enable_commit_graph;
> @@ -195,6 +196,7 @@ struct cgit_config {
> char *index_header;
> char *index_info;
> char *logo;
> + char *logo_alt;
> char *logo_link;
> char *mimetype_file;
> char *module_link;
> diff --git a/cgitrc.5.txt b/cgitrc.5.txt
> index 0a2a402..4a9c68f 100644
> --- a/cgitrc.5.txt
> +++ b/cgitrc.5.txt
> @@ -242,10 +242,14 @@ logo::
> Url which specifies the source of an image which will be used as a logo
> on all cgit pages. Default value: "/cgit.png".
>
> +logo-alt::
> + Alternate text of the logo image. Default value: "cgit logo".
> +
> logo-link::
> Url loaded when clicking on the cgit logo image. If unspecified the
> - calculated url of the repository index page will be used. Default
> - value: none.
> + calculated url of the repository index page will be used.
> + If empty, no URL is emitted.
> + Default value: none.
>
> owner-filter::
> Specifies a command which will be invoked to format the Owner
> @@ -524,10 +528,14 @@ repo.logo::
> Url which specifies the source of an image which will be used as a logo
> on this repo's pages. Default value: global logo.
>
> +repo.logo-alt::
> + Alternate text of the logo image. Default value: global logo-alt.
> +
> repo.logo-link::
> Url loaded when clicking on the cgit logo image. If unspecified the
> - calculated url of the repository index page will be used. Default
> - value: global logo-link.
> + calculated url of the repository index page will be used.
> + If empty, no URL is emitted.
> + Default value: global logo-link.
>
> repo.owner-filter::
> Override the default owner-filter. Default value: none. See also:
> @@ -804,7 +812,7 @@ favicon=/favicon.ico
>
> # Use a custom logo
> logo=/img/mylogo.png
> -
> +logo-alt=my img alt text
>
> # Enable statistics per week, month and quarter
> max-stats=quarter
> diff --git a/ui-shared.c b/ui-shared.c
> index ac5a287..8334739 100644
> --- a/ui-shared.c
> +++ b/ui-shared.c
> @@ -860,7 +860,8 @@ static void cgit_print_path_crumbs(char *path)
>
> static void print_header(void)
> {
> - char *logo = NULL, *logo_link = NULL;
> + char *logo = NULL, *logo_alt = NULL, *logo_link = NULL;
> + unsigned int any_logo_link;
>
> html("<table id='header'>\n");
> html("<tr>\n");
> @@ -869,19 +870,33 @@ static void print_header(void)
> logo = ctx.repo->logo;
> else
> logo = ctx.cfg.logo;
> - if (ctx.repo && ctx.repo->logo_link && *ctx.repo->logo_link)
> + if (ctx.repo && ctx.repo->logo_alt && *ctx.repo->logo_alt)
> + logo_alt = ctx.repo->logo_alt;
> + else
> + logo_alt = ctx.cfg.logo_alt;
> + if (ctx.repo && ctx.repo->logo_link)
> logo_link = ctx.repo->logo_link;
> else
> logo_link = ctx.cfg.logo_link;
> + any_logo_link = logo_link && *logo_link;
> +
> if (logo && *logo) {
> - html("<td class='logo' rowspan='2'><a href='");
> - if (logo_link && *logo_link)
> + html("<td class='logo' rowspan='2'>");
> + if (any_logo_link) {
> + html("<a href='");
> html_attr(logo_link);
> - else
> - html_attr(cgit_rooturl());
> - html("'><img src='");
> + html("'>");
> + }
> + html("<img src='");
> html_attr(logo);
> - html("' alt='cgit logo'/></a></td>\n");
> + if (logo_alt && *logo_alt) {
> + html("' alt='");
> + html_attr(logo_alt);
> + }
> + html("'/>");
> + if (any_logo_link)
> + html("</a>");
> + html("</td>\n");
> }
>
> html("<td class='main'>");
> --
> 1.7.10.4
>
prev parent reply other threads:[~2016-06-09 15:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-18 14:38 disable logo-link ? rep.dot.nop
2015-06-18 14:48 ` john
2015-06-18 15:03 ` rep.dot.nop
2015-06-18 15:07 ` john
2015-06-18 15:13 ` rep.dot.nop
2015-06-19 10:37 ` [PATCH] Implement logo-alt rep.dot.nop
2016-06-09 15:27 ` rep.dot.nop [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAC1BbcT6BAnnBwXxmpwe1GR9rDjkQEspDMqZeY+0ktEVwr=Hhg@mail.gmail.com' \
--to=cgit@lists.zx2c4.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).