Author:
Hash:
Timestamp:
+18 -7 +/-2 browse
Kevin Schoon [me@kevinschoon.com]
19832f32176d5eb62c7d0ba30e741b9ec6716c1b
Sat, 06 Apr 2024 13:33:43 +0000 (1.2 years ago)
1 | diff --git a/ayllu/src/web2/routes/rss.rs b/ayllu/src/web2/routes/rss.rs |
2 | index ee16af4..cf80278 100644 |
3 | --- a/ayllu/src/web2/routes/rss.rs |
4 | +++ b/ayllu/src/web2/routes/rss.rs |
5 | @@ -17,7 +17,7 @@ use crate::web2::error::Error; |
6 | use crate::web2::middleware::repository::Preamble; |
7 | use crate::web2::middleware::template::Template; |
8 | use crate::web2::util; |
9 | - use ayllu_git::{Commit, Scanner, Tag, Wrapper}; |
10 | + use ayllu_git::{Commit, Scanner, Stats, Tag, Wrapper}; |
11 | |
12 | fn stylesheet_hack(input: String) -> String { |
13 | const ORIGINAL: &str = r#"<?xml version="1.0" encoding="utf-8"?>"#; |
14 | @@ -25,14 +25,24 @@ fn stylesheet_hack(input: String) -> String { |
15 | input.replacen(ORIGINAL, REPLACEMENT, 1) |
16 | } |
17 | |
18 | - fn html_commit(summary: String, message: String) -> String { |
19 | + fn html_commit(summary: String, message: String, stats: Option<Stats>) -> String { |
20 | + let mut stats_str = String::new(); |
21 | + if let Some(stats) = stats { |
22 | + stats_str = format!( |
23 | + "<h5>Stats</h5><p><span class=\"positive\">+{}</span><span class=\"negative\"> -{}<span> +/-{}</span></p>", |
24 | + stats.insertions, |
25 | + stats.deletions, |
26 | + stats.files_changed, |
27 | + ) |
28 | + } |
29 | if summary == message.trim_end() { |
30 | - message |
31 | + message + "</br></br>" + stats_str.as_str() |
32 | } else { |
33 | format!( |
34 | - "<pre>{}\n{}</pre>", |
35 | + "<pre>{}</br>{}</pre></br>{}", |
36 | summary, |
37 | - message.replacen(&summary, "", 1) |
38 | + message.replacen(&summary, "", 1), |
39 | + stats_str |
40 | ) |
41 | } |
42 | } |
43 | @@ -170,7 +180,8 @@ impl Builder { |
44 | permalink: true, |
45 | value: link, |
46 | })); |
47 | - item.set_description(html_commit(commit.summary, commit.message)); |
48 | + let stats = repository.stats(&commit.id)?; |
49 | + item.set_description(html_commit(commit.summary, commit.message, Some(stats))); |
50 | let pub_date = OffsetDateTime::from_unix_timestamp(commit.epoch).unwrap(); |
51 | item.set_pub_date(pub_date.format(&Rfc2822).unwrap()); |
52 | items.push((item, commit.epoch)) |
53 | diff --git a/ayllu/themes/default/assets/feed.xsl b/ayllu/themes/default/assets/feed.xsl |
54 | index 3d1cce4..530f31a 100644 |
55 | --- a/ayllu/themes/default/assets/feed.xsl |
56 | +++ b/ayllu/themes/default/assets/feed.xsl |
57 | @@ -43,7 +43,7 @@ |
58 | </header> |
59 | <xsl:value-of select="description" disable-output-escaping="yes"/> |
60 | <footer> |
61 | - <xsl:value-of select="pubDate"/> |
62 | + <b><xsl:value-of select="pubDate"/></b> |
63 | <span class="right"><xsl:value-of select="author" /></span> |
64 | </footer> |
65 | </article> |