chiark / gitweb /
shapelib: Support desc_template
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Mar 2021 20:29:02 +0000 (20:29 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Mar 2021 20:55:09 +0000 (20:55 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib-toml.rs
src/shapelib.rs

index f9f619fa4e83c80b28d0ce37bd2c6259c682a978..d5042bd65920dc5ad1c6beb48b34dcb519cce272 100644 (file)
@@ -134,6 +134,11 @@ pub struct GroupDetails {
   #[serde(default)]
   pub colours: HashMap<String, RecolourData>,
 
+  /// If specified, provides a template for the description.  The
+  /// description previously calculated replaces `_desc` in this
+  /// string.
+  pub desc_template: Option<String>,
+
   /// If specified, pieces in this group can be occulted.
   pub occulted: Option<OccultationMethod>,
 
index 399c2a8ca1d4ae5011ee472d35543c3535c8712d..708d48a92576bfd81b130ae25ba9c8efb24ddff2 100644 (file)
@@ -491,7 +491,12 @@ fn load_catalogue(libname: &str, dirname: &str, toml_path: &str) -> Contents {
         },
       };
 
-      let mut add1 = |item_name: &str, desc| {
+      let mut add1 = |item_name: &str, desc: Html| {
+        let desc = if let Some(desc_template) = &group.d.desc_template {
+          Html(subst(desc_template, "_desc", &desc.0)?)
+        } else {
+          desc
+        };
         let idata = ItemData {
           group: group.clone(),
           occ: occ.clone(),