diff --git a/config.toml b/config.toml index da788dd..0c976f1 100644 --- a/config.toml +++ b/config.toml @@ -19,6 +19,13 @@ # This is accessible in all templates. #site_description = "" +# URL where the repositories can be cloned from. +# +# Use the "%REPO%" variable to substitute the repository name. +# +# This can also be set per-repository. +#clone_url = "https://github.com/your_user/%REPO%" + # Which branch to use for generating history. # # Itsy-Gitsy currently only supports traversing the history of a single branch, @@ -509,6 +516,7 @@ generated_by = "Itsy-Gitsy" # Per-repository settings, same as the global versions described above: +#clone_url = "https://github.com/your_user/%REPO%" #branch = "master" #render_markdown = false #syntax_highlighting = false diff --git a/src/generate.rs b/src/generate.rs index 16019c1..1cc6611 100644 --- a/src/generate.rs +++ b/src/generate.rs @@ -319,7 +319,7 @@ impl GitsyGenerator { full_name: repo_desc.name.clone(), description: repo_desc.description.clone(), website: repo_desc.website.clone(), - clone: None, + clone: repo_desc.clone_url.clone(), attributes: repo_desc.attributes.clone().unwrap_or_default(), }; let parsed_repo = parse_repo(&repo, &name, &repo_desc, metadata).expect("Failed to analyze repo HEAD."); diff --git a/src/settings.rs b/src/settings.rs index 5991b17..5133fc8 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -228,6 +228,7 @@ pub struct GitsySettingsRepo { pub path: PathBuf, pub name: Option, pub description: Option, + pub clone_url: Option, pub website: Option, pub branch: Option, pub asset_files: Option>, @@ -271,6 +272,7 @@ pub struct GitsySettings { pub site_name: Option, pub site_url: Option, pub site_description: Option, + pub clone_url: Option, pub asset_files: Option>, pub branch: Option, #[serde(rename(deserialize = "gitsy_templates"))] @@ -347,6 +349,12 @@ impl GitsySettings { if repo.name.is_none() { repo.name = Some(k.clone()); } + if repo.clone_url.is_none() { + repo.clone_url = match settings.clone_url.as_ref() { + Some(url) => Some(url.replace("%REPO%", repo.name.as_deref().unwrap_or_default())), + _ => None, + }; + } global_to_repo!(settings, repo, branch); global_to_repo!(settings, repo, render_markdown); global_to_repo!(settings, repo, syntax_highlight); @@ -379,9 +387,14 @@ impl GitsySettings { for dir in read_dir(parent).expect("Repo directory not found.") { let dir = dir.expect("Repo contains invalid entries"); let name: String = dir.file_name().to_string_lossy().to_string(); + let clone_url = match settings.clone_url.as_ref() { + Some(url) => Some(url.replace("%REPO%", &name)), + _ => None, + }; repo_descriptions.insert(GitsySettingsRepo { path: dir.path().clone(), name: Some(name), + clone_url, branch: settings.branch.clone(), render_markdown: settings.render_markdown.clone(), syntax_highlight: settings.syntax_highlight.clone(), @@ -413,9 +426,14 @@ impl GitsySettings { let name: String = dir.file_name() .expect(&format!("Invalid repository path: {}", dir.display())) .to_string_lossy().to_string(); + let clone_url = match settings.clone_url.as_ref() { + Some(url) => Some(url.replace("%REPO%", &name)), + _ => None, + }; repo_descriptions.insert(GitsySettingsRepo { path: dir.clone(), name: Some(name), + clone_url, branch: settings.branch.clone(), render_markdown: settings.render_markdown.clone(), syntax_highlight: settings.syntax_highlight.clone(), diff --git a/templates/header.html b/templates/header.html index bf761ea..08d1fb1 100644 --- a/templates/header.html +++ b/templates/header.html @@ -1,13 +1,9 @@ diff --git a/templates/style.css b/templates/style.css index aa541f6..00ad563 100644 --- a/templates/style.css +++ b/templates/style.css @@ -218,9 +218,6 @@ div.summary-header { border-bottom: solid 1px var(--borderdark); border-radius: 10px 10px 0 0; } -div.summary-header.commit { - margin-top: 0rem; -} div.full-header { color: var(--offwhite); letter-spacing: 0.05em; @@ -337,3 +334,13 @@ div.commit-page span.del { font-size: 0.9rem; } } +table.clone-url { + width: 100%; +} +table.clone-url td.field { + font-weight: bold; + width: 8rem; +} +table.clone-url td.value { + text-align: left; +} diff --git a/templates/summary.html b/templates/summary.html index 309a6af..5af5c59 100644 --- a/templates/summary.html +++ b/templates/summary.html @@ -3,6 +3,21 @@ {% block tab_summary_selected -%}selected{% endblock -%} {% block content %} + + + + + + + + + + + + + +
Website:{{metadata.website | default(value="[none]")}}
Clone URL:{{metadata.clone | default(value="[none]")}}
+
Recent history