mirror of
https://git.zx2c4.com/cgit
synced 2024-12-22 07:01:52 +00:00
Add 'about-filter' and 'repo.about-filter' options
These options can be used to execute a filter command on each about-page, both top-level and for each repository (repo.about-filter can be used to override the current about-filter). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
parent
e1782fff8a
commit
537c05f138
4
cgit.c
4
cgit.c
@ -90,6 +90,8 @@ void config_cb(const char *name, const char *value)
|
||||
ctx.cfg.cache_static_ttl = atoi(value);
|
||||
else if (!strcmp(name, "cache-dynamic-ttl"))
|
||||
ctx.cfg.cache_dynamic_ttl = atoi(value);
|
||||
else if (!strcmp(name, "about-filter"))
|
||||
ctx.cfg.about_filter = new_filter(value, 0);
|
||||
else if (!strcmp(name, "commit-filter"))
|
||||
ctx.cfg.commit_filter = new_filter(value, 0);
|
||||
else if (!strcmp(name, "embedded"))
|
||||
@ -146,6 +148,8 @@ void config_cb(const char *name, const char *value)
|
||||
ctx.repo->max_stats = cgit_find_stats_period(value, NULL);
|
||||
else if (ctx.repo && !strcmp(name, "repo.module-link"))
|
||||
ctx.repo->module_link= xstrdup(value);
|
||||
else if (ctx.repo && !strcmp(name, "repo.about-filter"))
|
||||
ctx.repo->about_filter = new_filter(value, 0);
|
||||
else if (ctx.repo && !strcmp(name, "repo.commit-filter"))
|
||||
ctx.repo->commit_filter = new_filter(value, 0);
|
||||
else if (ctx.repo && !strcmp(name, "repo.source-filter"))
|
||||
|
2
cgit.h
2
cgit.h
@ -73,6 +73,7 @@ struct cgit_repo {
|
||||
int enable_log_linecount;
|
||||
int max_stats;
|
||||
time_t mtime;
|
||||
struct cgit_filter *about_filter;
|
||||
struct cgit_filter *commit_filter;
|
||||
struct cgit_filter *source_filter;
|
||||
};
|
||||
@ -185,6 +186,7 @@ struct cgit_config {
|
||||
int summary_branches;
|
||||
int summary_log;
|
||||
int summary_tags;
|
||||
struct cgit_filter *about_filter;
|
||||
struct cgit_filter *commit_filter;
|
||||
struct cgit_filter *source_filter;
|
||||
};
|
||||
|
10
cgitrc.5.txt
10
cgitrc.5.txt
@ -16,6 +16,13 @@ lines, and lines starting with '#', are ignored.
|
||||
|
||||
GLOBAL SETTINGS
|
||||
---------------
|
||||
about-filter::
|
||||
Specifies a command which will be invoked to format the content of
|
||||
about pages (both top-level and for each repository). The command will
|
||||
get the content of the about-file on its STDIN, and the STDOUT from the
|
||||
command will be included verbatim on the about page. Default value:
|
||||
none.
|
||||
|
||||
agefile::
|
||||
Specifies a path, relative to each repository path, which can be used
|
||||
to specify the date and time of the youngest commit in the repository.
|
||||
@ -234,6 +241,9 @@ virtual-root::
|
||||
|
||||
REPOSITORY SETTINGS
|
||||
-------------------
|
||||
repo.about-filter::
|
||||
Override the default about-filter. Default value: <about-filter>.
|
||||
|
||||
repo.clone-url::
|
||||
A list of space-separated urls which can be used to clone this repo.
|
||||
Default value: none.
|
||||
|
1
shared.c
1
shared.c
@ -62,6 +62,7 @@ struct cgit_repo *cgit_add_repo(const char *url)
|
||||
ret->module_link = ctx.cfg.module_link;
|
||||
ret->readme = NULL;
|
||||
ret->mtime = -1;
|
||||
ret->about_filter = ctx.cfg.about_filter;
|
||||
ret->commit_filter = ctx.cfg.commit_filter;
|
||||
ret->source_filter = ctx.cfg.source_filter;
|
||||
return ret;
|
||||
|
@ -273,6 +273,11 @@ void cgit_print_repolist()
|
||||
|
||||
void cgit_print_site_readme()
|
||||
{
|
||||
if (ctx.cfg.root_readme)
|
||||
html_include(ctx.cfg.root_readme);
|
||||
if (!ctx.cfg.root_readme)
|
||||
return;
|
||||
if (ctx.cfg.about_filter)
|
||||
cgit_open_filter(ctx.cfg.about_filter);
|
||||
html_include(ctx.cfg.root_readme);
|
||||
if (ctx.cfg.about_filter)
|
||||
cgit_close_filter(ctx.cfg.about_filter);
|
||||
}
|
||||
|
@ -83,6 +83,10 @@ void cgit_print_repo_readme(char *path)
|
||||
} else
|
||||
tmp = ctx.repo->readme;
|
||||
html("<div id='summary'>");
|
||||
if (ctx.repo->about_filter)
|
||||
cgit_open_filter(ctx.repo->about_filter);
|
||||
html_include(tmp);
|
||||
if (ctx.repo->about_filter)
|
||||
cgit_close_filter(ctx.repo->about_filter);
|
||||
html("</div>");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user