diff --git a/src/generate.rs b/src/generate.rs index e6826f6..b81e2a4 100644 --- a/src/generate.rs +++ b/src/generate.rs @@ -889,6 +889,23 @@ impl GitsyGenerator { local_bytes = self.write_rendered(&out_path, &rendered); atomic_repo_bytes.fetch_add(local_bytes, Ordering::SeqCst); atomic_bytes.fetch_add(local_bytes, Ordering::SeqCst); + + // Copy readme files to their real filename, so links to readme files remain valid + // across file changes. + if let Some(readmes) = &repo_desc.readme_files { + for readme in readmes { + if &file.path == readme { + let mut pretty_path = PathBuf::from(out_path); + pretty_path.pop(); + pretty_path.push(&file.path); + match std::fs::copy(&out_path, &pretty_path) { + Ok(_) => louder!(" - wrote readme file: {}", pretty_path.to_string_lossy()), + Err(e) => error!("ERROR: {:?}", e), + } + } + } + }; + } Err(x) => match x.kind { _ => error!("ERROR: {:?}", x), diff --git a/templates/default_dark/summary.html b/templates/default_dark/summary.html index a8ac5ce..6cffc6a 100644 --- a/templates/default_dark/summary.html +++ b/templates/default_dark/summary.html @@ -11,7 +11,7 @@ Documentation: {% if readme and readme.id in file_ids -%} - {{readme.name | default(value="[none]")}} + {{readme.name | default(value="[none]")}} {% else -%} {{readme.name | default(value="[none]")}} {% endif -%} @@ -19,7 +19,7 @@ Website: {% if metadata.website -%} - {{metadata.website | default(value="[none]")}} + {{metadata.website | default(value="[none]")}} {% else -%} {{metadata.website | default(value="[none]")}} {% endif-%} diff --git a/templates/default_light/summary.html b/templates/default_light/summary.html index a8ac5ce..41172aa 100644 --- a/templates/default_light/summary.html +++ b/templates/default_light/summary.html @@ -11,7 +11,7 @@ Documentation: {% if readme and readme.id in file_ids -%} - {{readme.name | default(value="[none]")}} + {{readme.name | default(value="[none]")}} {% else -%} {{readme.name | default(value="[none]")}} {% endif -%} @@ -19,7 +19,7 @@ Website: {% if metadata.website -%} - {{metadata.website | default(value="[none]")}} + {{metadata.website | default(value="[none]")}} {% else -%} {{metadata.website | default(value="[none]")}} {% endif-%}