From 61e4ad6bbafaa97b965a206ad06af65a0805be7e Mon Sep 17 00:00:00 2001 From: Wenzhuo Liu Date: Tue, 8 Aug 2023 18:54:13 +0800 Subject: Add SVG export (#1729) --- tests/src/tests.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/src/tests.rs b/tests/src/tests.rs index 51823361..b5f80663 100644 --- a/tests/src/tests.rs +++ b/tests/src/tests.rs @@ -35,6 +35,7 @@ const TYP_DIR: &str = "typ"; const REF_DIR: &str = "ref"; const PNG_DIR: &str = "png"; const PDF_DIR: &str = "pdf"; +const SVG_DIR: &str = "svg"; const FONT_DIR: &str = "../assets/fonts"; const ASSET_DIR: &str = "../assets"; @@ -116,11 +117,19 @@ fn main() { let path = src_path.strip_prefix(TYP_DIR).unwrap(); let png_path = Path::new(PNG_DIR).join(path).with_extension("png"); let ref_path = Path::new(REF_DIR).join(path).with_extension("png"); + let svg_path = Path::new(SVG_DIR).join(path).with_extension("svg"); let pdf_path = args.pdf.then(|| Path::new(PDF_DIR).join(path).with_extension("pdf")); - test(world, &src_path, &png_path, &ref_path, pdf_path.as_deref(), &args) - as usize + test( + world, + &src_path, + &png_path, + &ref_path, + pdf_path.as_deref(), + &svg_path, + &args, + ) as usize }) .collect::>(); @@ -328,6 +337,7 @@ fn test( png_path: &Path, ref_path: &Path, pdf_path: Option<&Path>, + svg_path: &Path, args: &Args, ) -> bool { struct PanicGuard<'a>(&'a Path); @@ -419,6 +429,10 @@ fn test( fs::create_dir_all(png_path.parent().unwrap()).unwrap(); canvas.save_png(png_path).unwrap(); + let svg = typst::export::svg(&document); + fs::create_dir_all(svg_path.parent().unwrap()).unwrap(); + std::fs::write(svg_path, svg).unwrap(); + if let Ok(ref_pixmap) = sk::Pixmap::load_png(ref_path) { if canvas.width() != ref_pixmap.width() || canvas.height() != ref_pixmap.height() -- cgit v1.2.3