diff options
| -rw-r--r-- | cgitrc.5.txt | 15 | ||||
| -rw-r--r-- | filter.c | 3 | ||||
| -rw-r--r-- | filters/email-gravatar.lua | 2 | ||||
| -rwxr-xr-x | filters/email-gravatar.py | 2 | ||||
| -rw-r--r-- | ui-commit.c | 4 | ||||
| -rw-r--r-- | ui-log.c | 2 | ||||
| -rw-r--r-- | ui-refs.c | 6 | ||||
| -rw-r--r-- | ui-tag.c | 2 |
8 files changed, 21 insertions, 15 deletions
diff --git a/cgitrc.5.txt b/cgitrc.5.txt index b7dc5a4..6a926aa 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt | |||
| @@ -121,9 +121,9 @@ email-filter:: | |||
| 121 | Specifies a command which will be invoked to format names and email | 121 | Specifies a command which will be invoked to format names and email |
| 122 | address of committers, authors, and taggers, as represented in various | 122 | address of committers, authors, and taggers, as represented in various |
| 123 | places throughout the cgit interface. This command will receive an | 123 | places throughout the cgit interface. This command will receive an |
| 124 | email address as its only command line argument, and the text to | 124 | email address and an origin page string as its command line arguments, |
| 125 | format on STDIN. It is to write the formatted text back out onto | 125 | and the text to format on STDIN. It is to write the formatted text back |
| 126 | STDOUT. Default value: none. See also: "FILTER API". | 126 | out onto STDOUT. Default value: none. See also: "FILTER API". |
| 127 | 127 | ||
| 128 | embedded:: | 128 | embedded:: |
| 129 | Flag which, when set to "1", will make cgit generate a html fragment | 129 | Flag which, when set to "1", will make cgit generate a html fragment |
| @@ -620,10 +620,11 @@ commit filter:: | |||
| 620 | expected on standard output. | 620 | expected on standard output. |
| 621 | 621 | ||
| 622 | email filter:: | 622 | email filter:: |
| 623 | This filter is given a single parameter: the email address of the | 623 | This filter is given two parameters: the email address of the relevent |
| 624 | relevent user. The filter will then receive the text string to format | 624 | author and a string indicating the originating page. The filter will |
| 625 | on standard input and is expected to write to standard output the | 625 | then receive the text string to format on standard input and is |
| 626 | formatted text to be included in the page. | 626 | expected to write to standard output the formatted text to be included |
| 627 | in the page. | ||
| 627 | 628 | ||
| 628 | source filter:: | 629 | source filter:: |
| 629 | This filter is given a single parameter: the filename of the source | 630 | This filter is given a single parameter: the filename of the source |
| @@ -406,6 +406,9 @@ struct cgit_filter *cgit_new_filter(const char *cmd, filter_type filtertype) | |||
| 406 | 406 | ||
| 407 | switch (filtertype) { | 407 | switch (filtertype) { |
| 408 | case EMAIL: | 408 | case EMAIL: |
| 409 | argument_count = 2; | ||
| 410 | break; | ||
| 411 | |||
| 409 | case SOURCE: | 412 | case SOURCE: |
| 410 | case ABOUT: | 413 | case ABOUT: |
| 411 | argument_count = 1; | 414 | argument_count = 1; |
diff --git a/filters/email-gravatar.lua b/filters/email-gravatar.lua index 8a53447..982e030 100644 --- a/filters/email-gravatar.lua +++ b/filters/email-gravatar.lua | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | require("crypto") | 10 | require("crypto") |
| 11 | 11 | ||
| 12 | function filter_open(email) | 12 | function filter_open(email, page) |
| 13 | buffer = "" | 13 | buffer = "" |
| 14 | md5 = crypto.digest("md5", email:sub(2, -2):lower()) | 14 | md5 = crypto.digest("md5", email:sub(2, -2):lower()) |
| 15 | end | 15 | end |
diff --git a/filters/email-gravatar.py b/filters/email-gravatar.py index 4445615..f90b87d 100755 --- a/filters/email-gravatar.py +++ b/filters/email-gravatar.py | |||
| @@ -27,6 +27,8 @@ if email[0] == '<': | |||
| 27 | if email[-1] == '>': | 27 | if email[-1] == '>': |
| 28 | email = email[0:-1] | 28 | email = email[0:-1] |
| 29 | 29 | ||
| 30 | page = sys.argv[2] | ||
| 31 | |||
| 30 | md5 = hashlib.md5(email.encode()).hexdigest() | 32 | md5 = hashlib.md5(email.encode()).hexdigest() |
| 31 | text = sys.stdin.read().strip() | 33 | text = sys.stdin.read().strip() |
| 32 | 34 | ||
diff --git a/ui-commit.c b/ui-commit.c index bd14ef0..c48bfe8 100644 --- a/ui-commit.c +++ b/ui-commit.c | |||
| @@ -44,7 +44,7 @@ void cgit_print_commit(char *hex, const char *prefix) | |||
| 44 | cgit_print_diff_ctrls(); | 44 | cgit_print_diff_ctrls(); |
| 45 | html("<table summary='commit info' class='commit-info'>\n"); | 45 | html("<table summary='commit info' class='commit-info'>\n"); |
| 46 | html("<tr><th>author</th><td>"); | 46 | html("<tr><th>author</th><td>"); |
| 47 | cgit_open_filter(ctx.repo->email_filter, info->author_email); | 47 | cgit_open_filter(ctx.repo->email_filter, info->author_email, "commit"); |
| 48 | html_txt(info->author); | 48 | html_txt(info->author); |
| 49 | if (!ctx.cfg.noplainemail) { | 49 | if (!ctx.cfg.noplainemail) { |
| 50 | html(" "); | 50 | html(" "); |
| @@ -55,7 +55,7 @@ void cgit_print_commit(char *hex, const char *prefix) | |||
| 55 | cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time); | 55 | cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time); |
| 56 | html("</td></tr>\n"); | 56 | html("</td></tr>\n"); |
| 57 | html("<tr><th>committer</th><td>"); | 57 | html("<tr><th>committer</th><td>"); |
| 58 | cgit_open_filter(ctx.repo->email_filter, info->committer_email); | 58 | cgit_open_filter(ctx.repo->email_filter, info->committer_email, "commit"); |
| 59 | html_txt(info->committer); | 59 | html_txt(info->committer); |
| 60 | if (!ctx.cfg.noplainemail) { | 60 | if (!ctx.cfg.noplainemail) { |
| 61 | html(" "); | 61 | html(" "); |
| @@ -168,7 +168,7 @@ static void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 168 | sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0); | 168 | sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0); |
| 169 | show_commit_decorations(commit); | 169 | show_commit_decorations(commit); |
| 170 | html("</td><td>"); | 170 | html("</td><td>"); |
| 171 | cgit_open_filter(ctx.repo->email_filter, info->author_email); | 171 | cgit_open_filter(ctx.repo->email_filter, info->author_email, "log"); |
| 172 | html_txt(info->author); | 172 | html_txt(info->author); |
| 173 | cgit_close_filter(ctx.repo->email_filter); | 173 | cgit_close_filter(ctx.repo->email_filter); |
| 174 | 174 | ||
| @@ -77,7 +77,7 @@ static int print_branch(struct refinfo *ref) | |||
| 77 | if (ref->object->type == OBJ_COMMIT) { | 77 | if (ref->object->type == OBJ_COMMIT) { |
| 78 | cgit_commit_link(info->subject, NULL, NULL, name, NULL, NULL, 0); | 78 | cgit_commit_link(info->subject, NULL, NULL, name, NULL, NULL, 0); |
| 79 | html("</td><td>"); | 79 | html("</td><td>"); |
| 80 | cgit_open_filter(ctx.repo->email_filter, info->author_email); | 80 | cgit_open_filter(ctx.repo->email_filter, info->author_email, "refs"); |
| 81 | html_txt(info->author); | 81 | html_txt(info->author); |
| 82 | cgit_close_filter(ctx.repo->email_filter); | 82 | cgit_close_filter(ctx.repo->email_filter); |
| 83 | html("</td><td colspan='2'>"); | 83 | html("</td><td colspan='2'>"); |
| @@ -157,12 +157,12 @@ static int print_tag(struct refinfo *ref) | |||
| 157 | html("</td><td>"); | 157 | html("</td><td>"); |
| 158 | if (info) { | 158 | if (info) { |
| 159 | if (info->tagger) { | 159 | if (info->tagger) { |
| 160 | cgit_open_filter(ctx.repo->email_filter, info->tagger_email); | 160 | cgit_open_filter(ctx.repo->email_filter, info->tagger_email, "refs"); |
| 161 | html_txt(info->tagger); | 161 | html_txt(info->tagger); |
| 162 | cgit_close_filter(ctx.repo->email_filter); | 162 | cgit_close_filter(ctx.repo->email_filter); |
| 163 | } | 163 | } |
| 164 | } else if (ref->object->type == OBJ_COMMIT) { | 164 | } else if (ref->object->type == OBJ_COMMIT) { |
| 165 | cgit_open_filter(ctx.repo->email_filter, ref->commit->author_email); | 165 | cgit_open_filter(ctx.repo->email_filter, ref->commit->author_email, "refs"); |
| 166 | html_txt(ref->commit->author); | 166 | html_txt(ref->commit->author); |
| 167 | cgit_close_filter(ctx.repo->email_filter); | 167 | cgit_close_filter(ctx.repo->email_filter); |
| 168 | } | 168 | } |
| @@ -77,7 +77,7 @@ void cgit_print_tag(char *revname) | |||
| 77 | } | 77 | } |
| 78 | if (info->tagger) { | 78 | if (info->tagger) { |
| 79 | html("<tr><td>tagged by</td><td>"); | 79 | html("<tr><td>tagged by</td><td>"); |
| 80 | cgit_open_filter(ctx.repo->email_filter, info->tagger_email); | 80 | cgit_open_filter(ctx.repo->email_filter, info->tagger_email, "tag"); |
| 81 | html_txt(info->tagger); | 81 | html_txt(info->tagger); |
| 82 | if (info->tagger_email && !ctx.cfg.noplainemail) { | 82 | if (info->tagger_email && !ctx.cfg.noplainemail) { |
| 83 | html(" "); | 83 | html(" "); |
