pub path: PathBuf,
pub name: Option<String>,
pub description: Option<String>,
+ pub clone_url: Option<String>,
pub website: Option<String>,
pub branch: Option<String>,
pub asset_files: Option<Vec<String>>,
pub site_name: Option<String>,
pub site_url: Option<String>,
pub site_description: Option<String>,
+ pub clone_url: Option<String>,
pub asset_files: Option<Vec<String>>,
pub branch: Option<String>,
#[serde(rename(deserialize = "gitsy_templates"))]
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);
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(),
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(),
<div class="banner">
{% if name -%}
<div class="site-title">{{name | default(value="unnamed repository") }}</div>
- {% else -%}
- <div class="site-title">{{site_name | default(value="Itsy-Gitsy") }}</div>
- {% endif -%}
-
- {% if name -%}
<div class="site-description">{{metadata.description | default(value="") }}</div>
{% else -%}
+ <div class="site-title">{{site_name | default(value="Itsy-Gitsy") }}</div>
<div class="site-description">{{site_description | default(value="A collection of Git repositories")}}</div>
{% endif -%}
</div>
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;
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;
+}
{% block tab_summary_selected -%}selected{% endblock -%}
{% block content %}
+<table class="clone-url">
+ <colgroup>
+ <col class="field" />
+ <col class="value" />
+ </colgroup>
+ <tr class="website">
+ <td class="field website">Website:</td>
+ <td class="value website">{{metadata.website | default(value="[none]")}}</td>
+ </tr>
+ <tr class="clone">
+ <td class="field clone">Clone URL:</td>
+ <td class="value clone">{{metadata.clone | default(value="[none]")}}</td>
+ </tr>
+</table>
+
<div class="summary-header commit">Recent history</div>
<table class="summary-table commits">
<colgroup>