Specifies a command which will be invoked to format names and email
address of committers, authors, and taggers, as represented in various
places throughout the cgit interface. This command will receive an
- email address as its only command line argument, and the text to
- format on STDIN. It is to write the formatted text back out onto
- STDOUT. Default value: none. See also: "FILTER API".
+ email address and an origin page string as its command line arguments,
+ and the text to format on STDIN. It is to write the formatted text back
+ out onto STDOUT. Default value: none. See also: "FILTER API".
embedded::
Flag which, when set to "1", will make cgit generate a html fragment
expected on standard output.
email filter::
- This filter is given a single parameter: the email address of the
- relevent user. The filter will then receive the text string to format
- on standard input and is expected to write to standard output the
- formatted text to be included in the page.
+ This filter is given two parameters: the email address of the relevent
+ author and a string indicating the originating page. The filter will
+ then receive the text string to format on standard input and is
+ expected to write to standard output the formatted text to be included
+ in the page.
source filter::
This filter is given a single parameter: the filename of the source
switch (filtertype) {
case EMAIL:
+ argument_count = 2;
+ break;
+
case SOURCE:
case ABOUT:
argument_count = 1;
require("crypto")
-function filter_open(email)
+function filter_open(email, page)
buffer = ""
md5 = crypto.digest("md5", email:sub(2, -2):lower())
end
if email[-1] == '>':
email = email[0:-1]
+page = sys.argv[2]
+
md5 = hashlib.md5(email.encode()).hexdigest()
text = sys.stdin.read().strip()
cgit_print_diff_ctrls();
html("<table summary='commit info' class='commit-info'>\n");
html("<tr><th>author</th><td>");
- cgit_open_filter(ctx.repo->email_filter, info->author_email);
+ cgit_open_filter(ctx.repo->email_filter, info->author_email, "commit");
html_txt(info->author);
if (!ctx.cfg.noplainemail) {
html(" ");
cgit_print_date(info->author_date, FMT_LONGDATE, ctx.cfg.local_time);
html("</td></tr>\n");
html("<tr><th>committer</th><td>");
- cgit_open_filter(ctx.repo->email_filter, info->committer_email);
+ cgit_open_filter(ctx.repo->email_filter, info->committer_email, "commit");
html_txt(info->committer);
if (!ctx.cfg.noplainemail) {
html(" ");
sha1_to_hex(commit->object.sha1), ctx.qry.vpath, 0);
show_commit_decorations(commit);
html("</td><td>");
- cgit_open_filter(ctx.repo->email_filter, info->author_email);
+ cgit_open_filter(ctx.repo->email_filter, info->author_email, "log");
html_txt(info->author);
cgit_close_filter(ctx.repo->email_filter);
if (ref->object->type == OBJ_COMMIT) {
cgit_commit_link(info->subject, NULL, NULL, name, NULL, NULL, 0);
html("</td><td>");
- cgit_open_filter(ctx.repo->email_filter, info->author_email);
+ cgit_open_filter(ctx.repo->email_filter, info->author_email, "refs");
html_txt(info->author);
cgit_close_filter(ctx.repo->email_filter);
html("</td><td colspan='2'>");
html("</td><td>");
if (info) {
if (info->tagger) {
- cgit_open_filter(ctx.repo->email_filter, info->tagger_email);
+ cgit_open_filter(ctx.repo->email_filter, info->tagger_email, "refs");
html_txt(info->tagger);
cgit_close_filter(ctx.repo->email_filter);
}
} else if (ref->object->type == OBJ_COMMIT) {
- cgit_open_filter(ctx.repo->email_filter, ref->commit->author_email);
+ cgit_open_filter(ctx.repo->email_filter, ref->commit->author_email, "refs");
html_txt(ref->commit->author);
cgit_close_filter(ctx.repo->email_filter);
}
}
if (info->tagger) {
html("<tr><td>tagged by</td><td>");
- cgit_open_filter(ctx.repo->email_filter, info->tagger_email);
+ cgit_open_filter(ctx.repo->email_filter, info->tagger_email, "tag");
html_txt(info->tagger);
if (info->tagger_email && !ctx.cfg.noplainemail) {
html(" ");