commit: | 276b8a01e78f59c6fec9e28584c678ddc335736e |
author: | Trevor Bentley |
committer: | Trevor Bentley |
date: | Sun Jan 15 00:38:43 2023 +0100 |
parents: | 8185721f944ab5897b51cc69867f71c3cd7365b6 |
diff --git a/config.toml b/config.toml line changes: +11/-0 index 0c976f1..d059453 --- a/config.toml +++ b/config.toml
@@ -54,6 +54,16 @@ # file. #recursive_repo_dirs = [] +# List of files potentially containing repository documentation. +# +# Each repository root is searched for these files, in order. The +# first matching file is provided to the templates as a `readme` +# variable, with the file contents. Markdown files are rendered as +# HTML if the feature is enabled. +# +# This can also be set per-repository. +#readme_files = ["README.md", "README"] + # List of files to copy to the site's `global_assets` directory. # # The files in this list are copied unmodified, and with the same name, to the
@@ -535,6 +545,7 @@ generated_by = "Itsy-Gitsy" #limit_context = 200 #limit_diffs = 200 #asset_files = ["LICENSE"] +#readme_files = ["README.md", "README"] # An alternative way to specify the user-defined attributes. #
diff --git a/src/generate.rs b/src/generate.rs line changes: +12/-0 index 1cc6611..63f732f --- a/src/generate.rs +++ b/src/generate.rs
@@ -345,6 +345,18 @@ impl GitsyGenerator { local_ctx.insert("site_generated_ts", &generated_dt.timestamp()); local_ctx.insert("site_generated_offset", &generated_dt.offset().local_minus_utc()); + if let Some(readmes) = &repo_desc.readme_files { + for readme in readmes { + if let Some(file) = parsed_repo.root_files.iter().filter(|x| &x.name == readme).next() { + louder!(" - found readme file: {}", file.name); + let _ = GitsyGenerator::fill_file_contents(&repo, &file, &repo_desc) + .expect("Failed to parse file."); + local_ctx.insert("readme", &file); + break; + } + } + }; + if let Some(templ_file) = self.settings.templates.repo_summary.as_deref() { match tera.render(templ_file, &local_ctx) { Ok(rendered) => {
diff --git a/src/settings.rs b/src/settings.rs line changes: +5/-0 index 5133fc8..0a65025 --- a/src/settings.rs +++ b/src/settings.rs
@@ -231,6 +231,7 @@ pub struct GitsySettingsRepo { pub clone_url: Option<String>, pub website: Option<String>, pub branch: Option<String>, + pub readme_files: Option<Vec<String>>, pub asset_files: Option<Vec<String>>, pub render_markdown: Option<bool>, pub syntax_highlight: Option<bool>,
@@ -273,6 +274,7 @@ pub struct GitsySettings { pub site_url: Option<String>, pub site_description: Option<String>, pub clone_url: Option<String>, + pub readme_files: Option<Vec<String>>, pub asset_files: Option<Vec<String>>, pub branch: Option<String>, #[serde(rename(deserialize = "gitsy_templates"))]
@@ -356,6 +358,7 @@ impl GitsySettings { }; } global_to_repo!(settings, repo, branch); + global_to_repo!(settings, repo, readme_files); global_to_repo!(settings, repo, render_markdown); global_to_repo!(settings, repo, syntax_highlight); global_to_repo!(settings, repo, syntax_highlight_theme);
@@ -395,6 +398,7 @@ impl GitsySettings { path: dir.path().clone(), name: Some(name), clone_url, + readme_files: settings.readme_files.clone(), branch: settings.branch.clone(), render_markdown: settings.render_markdown.clone(), syntax_highlight: settings.syntax_highlight.clone(),
@@ -434,6 +438,7 @@ impl GitsySettings { path: dir.clone(), name: Some(name), clone_url, + readme_files: settings.readme_files.clone(), branch: settings.branch.clone(), render_markdown: settings.render_markdown.clone(), syntax_highlight: settings.syntax_highlight.clone(),
diff --git a/templates/style.css b/templates/style.css line changes: +4/-4 index 4769d8e..8d7ece1 --- a/templates/style.css +++ b/templates/style.css
@@ -335,14 +335,14 @@ div.commit-page span.del { font-size: 0.9rem; } } -table.clone-url { +table.links { width: 100%; } -table.clone-url td.field { +table.links td.field { font-weight: bold; - width: 8rem; + width: 10rem; } -table.clone-url td.value { +table.links td.value { text-align: left; } div.file-contents pre {
diff --git a/templates/summary.html b/templates/summary.html line changes: +9/-1 index 5af5c59..32ab63c --- a/templates/summary.html +++ b/templates/summary.html
@@ -3,11 +3,19 @@ {% block tab_summary_selected -%}selected{% endblock -%} {% block content %} -<table class="clone-url"> +<table class="links"> <colgroup> <col class="field" /> <col class="value" /> </colgroup> + <tr class="readme"> + <td class="field website">Documentation:</td> + {% if readme and readme.id in file_ids -%} + <td class="value website"><a href="{{repo_url | safe}}/{{readme.kind}}/{{readme.id}}.html">{{readme.name | default(value="[none]")}}</a></td> + {% else -%} + <td class="value website">{{readme.name | default(value="[none]")}}</td> + {% endif -%} + </tr> <tr class="website"> <td class="field website">Website:</td> <td class="value website">{{metadata.website | default(value="[none]")}}</td>