about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2007-05-23 22:46:54 +0200
committerLars Hjemli <hjemli@gmail.com>2007-05-23 22:46:54 +0200
commitbbcdc290c6c0b8121e57dbca4bd66c9e5e729959 (patch)
treefb762f2153b60cc4f997095626af70baa16ce7b1
parentRemove unused variable from ui-repolist.c:read_agefile() (diff)
downloadcgit-pink-bbcdc290c6c0b8121e57dbca4bd66c9e5e729959.tar.gz
cgit-pink-bbcdc290c6c0b8121e57dbca4bd66c9e5e729959.zip
Add repo.readme parameter
This parameter can be used to specify a repo-specific includefile, which will
then be printed on the summary page for the repo.

If the parametervalue is a not an absolute path, it is taken to be relative
to repo.path.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cgit.css14
-rw-r--r--cgit.h1
-rw-r--r--cgitrc1
-rw-r--r--shared.c8
-rw-r--r--ui-summary.c14
5 files changed, 23 insertions, 15 deletions
diff --git a/cgit.css b/cgit.css
index 327eaba..8977533 100644
--- a/cgit.css
+++ b/cgit.css
@@ -140,22 +140,20 @@ td#search input {
 	background-color: #fff;
 }
 
-td#summary {
+div#summary {
 	vertical-align: top;
-	padding-bottom: 1em;
+	margin-bottom: 1em;
 }
 
-td#archivelist {
-	padding-bottom: 1em;
-}
-
-td#archivelist table {
+table#downloads {
 	float: right;
 	border-collapse: collapse;
 	border: solid 1px #777;
+	margin-left: 0.5em;
+	margin-bottom: 0.5em;
 }
 
-td#archivelist table th {
+table#downloads th {
 	background-color: #ccc;
 }
 
diff --git a/cgit.h b/cgit.h
index 3938633..5c55bec 100644
--- a/cgit.h
+++ b/cgit.h
@@ -68,6 +68,7 @@ struct repoinfo {
 	char *defbranch;
 	char *group;
 	char *module_link;
+	char *readme;
 	int snapshots;
 	int enable_log_filecount;
 	int enable_log_linecount;
diff --git a/cgitrc b/cgitrc
index eaa9ce3..054a708 100644
--- a/cgitrc
+++ b/cgitrc
@@ -108,3 +108,4 @@
 #repo.enable-log-filecount=0			# override the default filecount setting
 #repo.enable-log-linecount=0			# override the default linecount setting
 #repo.module-link=/git/%s/commit/?id=%s		# override the standard module-link
+#repo.readme=info/web/readme			# specify a file to include on summary page
diff --git a/shared.c b/shared.c
index ce3ca4f..e3123a8 100644
--- a/shared.c
+++ b/shared.c
@@ -107,6 +107,7 @@ struct repoinfo *add_repo(const char *url)
 	ret->enable_log_filecount = cgit_enable_log_filecount;
 	ret->enable_log_linecount = cgit_enable_log_linecount;
 	ret->module_link = cgit_module_link;
+	ret->readme = NULL;
 	return ret;
 }
 
@@ -187,7 +188,12 @@ void cgit_global_config_cb(const char *name, const char *value)
 		cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value);
 	else if (cgit_repo && !strcmp(name, "repo.module-link"))
 		cgit_repo->module_link= xstrdup(value);
-	else if (!strcmp(name, "include"))
+	else if (cgit_repo && !strcmp(name, "repo.readme") && value != NULL) {
+		if (*value == '/')
+			cgit_repo->readme = xstrdup(value);
+		else
+			cgit_repo->readme = xstrdup(fmt("%s/%s", cgit_repo->path, value));
+	} else if (!strcmp(name, "include"))
 		cgit_read_config(value, cgit_global_config_cb);
 }
 
diff --git a/ui-summary.c b/ui-summary.c
index 5799773..5c1fc33 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -153,7 +153,7 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
 		hashcpy(fileid, sha1);
 	}
 	if (!header) {
-		html("<table>");
+		html("<table id='downloads'>");
 		html("<tr><th>Downloads</th></tr>");
 		header = 1;
 	}
@@ -193,16 +193,18 @@ static void cgit_print_archives()
 
 void cgit_print_summary()
 {
-	html("<table class='list nowrap'>");
-	html("<tr class='nohover'><td id='summary' colspan='3'>");
+	html("<div id='summary'>");
+	cgit_print_archives();
 	html("<h2>");
 	html_txt(cgit_repo->name);
 	html(" - ");
 	html_txt(cgit_repo->desc);
 	html("</h2>");
-	html("</td><td id='archivelist'>");
-	cgit_print_archives();
-	html("</td></tr>");
+	if (cgit_repo->readme)
+		html_include(cgit_repo->readme);
+	html("</div>");
+
+	html("<table class='list nowrap'>");
 	cgit_print_branches();
 	html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
 	cgit_print_tags();