diff --git a/src/crate_info.rs b/src/crate_info.rs index ebf68a0..e3bc03c 100644 --- a/src/crate_info.rs +++ b/src/crate_info.rs @@ -4,7 +4,7 @@ use serde::Serialize; #[derive(Serialize, Debug, Clone)] pub struct CrateInfo { pub name: String, - pub description: String, + pub description: Option, pub owner: String, pub latest_version: Version, pub versions: Vec, diff --git a/src/scraper.rs b/src/scraper.rs index 73de55f..0cccaf9 100644 --- a/src/scraper.rs +++ b/src/scraper.rs @@ -106,11 +106,7 @@ pub fn search_crate(crate_name: String) -> Option { } else { let description = resp .css_once(".desc") - .unwrap() - .content() - .trim() - .replace('\n', " ") - .into(); + .map(|desc| desc.content().trim().replace("\n", " ").into()); let owner = resp .css("a.owner") .iter() diff --git a/templates/crate.gmi.tera b/templates/crate.gmi.tera index 542fdff..6180f95 100644 --- a/templates/crate.gmi.tera +++ b/templates/crate.gmi.tera @@ -7,7 +7,9 @@ {%- if item -%} ## {{ item.name }} v{{ item.latest_version.version }} +{% if item.description -%} > {{ item.description }} +{%- endif %} by {{ item.owner }} {% if item.license %}[{{ item.license }}]{% endif %} ### Install by: