From e9192145cdf1294c249c7e6d7098dd88ca4cfa49 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 21 Mar 2021 20:29:02 +0000 Subject: [PATCH] shapelib: Support desc_template Signed-off-by: Ian Jackson --- src/shapelib-toml.rs | 5 +++++ src/shapelib.rs | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/shapelib-toml.rs b/src/shapelib-toml.rs index f9f619fa..d5042bd6 100644 --- a/src/shapelib-toml.rs +++ b/src/shapelib-toml.rs @@ -134,6 +134,11 @@ pub struct GroupDetails { #[serde(default)] pub colours: HashMap, + /// If specified, provides a template for the description. The + /// description previously calculated replaces `_desc` in this + /// string. + pub desc_template: Option, + /// If specified, pieces in this group can be occulted. pub occulted: Option, diff --git a/src/shapelib.rs b/src/shapelib.rs index 399c2a8c..708d48a9 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -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(), -- 2.30.2