]> git.huck.website - metaforge.git/commitdiff
added: minify header and flag
authorHuck Boles <huck@huck.website>
Fri, 2 Jun 2023 22:55:44 +0000 (17:55 -0500)
committerHuck Boles <huck@huck.website>
Fri, 2 Jun 2023 22:55:44 +0000 (17:55 -0500)
files/README/source/docs/header.meta
src/metafile/dir/node.rs
src/metafile/header.rs
src/options.rs

index 48dca529078b89feee5146287654797281c27f94..1bda89c541a2fb9674a58debdd21e9f67f937192 100644 (file)
@@ -41,6 +41,7 @@ normal definition blocks.
 - filetype = **STRING** - change the filetype of the output file
 - equal_arrays = **BOOL** - if true, panics if arrays in the same pattern have different sizes
 - pandoc = **BOOL** - toggles if pandoc is ran on this file to convert between filetypes, defaults to *true* in **source** dir, and *false* in **pattern** dir.
+- minify = **BOOL** - toggles html minification
 
 ### source
 
index 40e3d0c9598f8f1681bf0d4ee260f3a831c79989..d9b2a052980a1c61a25c73a9f4319f6d309826f3 100644 (file)
@@ -86,7 +86,11 @@ impl<'a> DirNode<'a> {
             file.merge(&self.global);
             match file.construct() {
                 Ok(str) => {
-                    fs::write(file.dest()?, minify(str.as_bytes(), &HTML_CFG))?;
+                    if file.header.minify && self.opts.minify {
+                        fs::write(file.dest()?, minify(str.as_bytes(), &HTML_CFG))?;
+                    } else {
+                        fs::write(file.dest()?, str)?;
+                    }
                 }
                 Err(e) => {
                     // print a line to stderr about failure but continue with other files
index d99d5c4ae4f8c0780f1512107e1580c0d30accad..a895ac3492db11cd545f2025d9fdf78ac2383362 100644 (file)
@@ -11,6 +11,7 @@ pub struct Header {
     pub pandoc: Option<bool>,
     pub ignore: bool,
     pub copy_only: bool,
+    pub minify: bool,
 }
 
 impl Header {
@@ -25,6 +26,7 @@ impl Header {
             pandoc: None,
             ignore: false,
             copy_only: false,
+            minify: true,
         }
     }
 }
@@ -43,6 +45,7 @@ impl From<HashMap<String, String>> for Header {
                 "source" => header.source = val.to_string(),
                 "ignore" => header.ignore = val == "true",
                 "copy_only" => header.copy_only = val == "true",
+                "minify" => header.copy_only = val == "true",
                 _ => continue,
             }
         }
index 704d2cbc8404d9c659afbe38c75c511f17fdb288..11e8a2ca21987e17c39cfb5fb4036b95061f1b7c 100644 (file)
@@ -53,6 +53,9 @@ pub struct Opts {
     /// don't call pandoc on source files
     #[arg(long, default_value_t = false)]
     pub no_pandoc: bool,
+    /// don't minify resulting html
+    #[arg(long, default_value_t = false)]
+    pub no_minify: bool,
 }
 
 #[derive(Debug, Clone, Default)]
@@ -72,6 +75,7 @@ pub struct Options {
     pub clean: bool,
     pub no_pandoc: bool,
     pub new: bool,
+    pub minify: bool,
 }
 
 impl Options {
@@ -92,6 +96,7 @@ impl Options {
             clean: false,
             no_pandoc: false,
             new: false,
+            minify: true,
         }
     }
 }
@@ -109,6 +114,7 @@ impl TryFrom<crate::Opts> for Options {
         opts.no_pandoc = value.no_pandoc;
         opts.new = value.new;
         opts.parallel = value.parallel;
+        opts.minify = !value.no_minify;
 
         opts.root = if let Some(root) = value.root.as_deref() {
             PathBuf::from(root).canonicalize()