diff --git a/site/content/assets.md b/site/content/assets.md index 77084535..6bf2623a 100644 --- a/site/content/assets.md +++ b/site/content/assets.md @@ -69,6 +69,7 @@ This will typically look like: `, } impl Icon { @@ -42,11 +45,17 @@ impl Icon { let integrity = IntegrityType::from_attrs(&attrs, &cfg)?; + let target_path = attrs + .get("data-target-path") + .map(|val| val.parse()) + .transpose()?; + Ok(Self { id, cfg, asset, integrity, + target_path, }) } @@ -66,17 +75,21 @@ impl Icon { "image/png" => ImageType::Png, _ => ImageType::Other, }; + + let result_dir = + target_path(&self.cfg.staging_dist, self.target_path.as_deref(), None).await?; + let file = self .asset .copy( - &self.cfg.staging_dist, + &result_dir, self.cfg.filehash, self.cfg.release && !self.cfg.no_minification, AssetFileType::Icon(image_type), ) .await?; - let result_file = self.cfg.staging_dist.join(&file); + let result_file = result_dir.join(&file); let integrity = OutputDigest::generate(self.integrity, || std::fs::read(&result_file)) .with_context(|| { format!(