diff options
| -rw-r--r-- | cgit.c | 4 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | cgitrc.5.txt | 10 | ||||
| -rw-r--r-- | shared.c | 1 | ||||
| -rw-r--r-- | ui-repolist.c | 9 | ||||
| -rw-r--r-- | ui-summary.c | 4 | 
6 files changed, 28 insertions, 2 deletions
| @@ -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")) @@ -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;  }; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index ffb3e0f..d8e4b97 100644 --- a/cgitrc.5.txt +++ b/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. @@ -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; diff --git a/ui-repolist.c b/ui-repolist.c index 2c13d50..25f076f 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -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);  } diff --git a/ui-summary.c b/ui-summary.c index f2a9b46..a2c018e 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -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>");  } | 
