From 4eaf5080ce8f2bbece3110b196c6e4fa83f4e0d7 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 8 Jun 2020 06:08:32 +0300 Subject: feat(sp-meta): list names of embedded files in output --- src/bin/sp-meta.rs | 8 ++++++++ subplot.md | 25 +++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/bin/sp-meta.rs b/src/bin/sp-meta.rs index 49f6173..b693d26 100644 --- a/src/bin/sp-meta.rs +++ b/src/bin/sp-meta.rs @@ -45,6 +45,7 @@ struct Metadata { function_files: Vec, bibliographies: Vec, scenarios: Vec, + files: Vec, } impl TryFrom<&mut Document> for Metadata { @@ -79,6 +80,11 @@ impl TryFrom<&mut Document> for Metadata { .into_iter() .map(|s| s.title().to_owned()) .collect(); + let files = doc + .files() + .iter() + .map(|f| f.filename().to_owned()) + .collect(); Ok(Self { sources, title, @@ -86,6 +92,7 @@ impl TryFrom<&mut Document> for Metadata { function_files, bibliographies, scenarios, + files, }) } } @@ -101,6 +108,7 @@ impl Metadata { Self::write_list(&self.binding_files, "bindings"); Self::write_list(&self.function_files, "functions"); Self::write_list(&self.bibliographies, "bibliography"); + Self::write_list(&self.files, "file"); Self::write_list(&self.scenarios, "scenario"); } } diff --git a/subplot.md b/subplot.md index b2cdecf..bf8d651 100644 --- a/subplot.md +++ b/subplot.md @@ -1609,6 +1609,7 @@ bibliography: [foo.bib, bar.bib] "foo.bib", "bar.bib" ], + "files": [], "scenarios": [] } ~~~ @@ -1812,6 +1813,30 @@ This is another embedded file, and has the same name in uppercase. ~~~~ +### List embedded files + +The `sp-meta` command lists embedded files in its output. + +~~~scenario +given file two-embedded.md +when I run sp-meta two-embedded.md +then output matches /foo.txt/ +and output matches /bar.yaml/ +~~~ + +~~~~~~{#two-embedded.md .file .markdown .numberLines} +--- +title: Two embedded files +... + +~~~{#foo.txt .file} +~~~ + +~~~{#bar.yaml. .file} +~~~ +~~~~~~ + + ## Embedded graphs Subplot allows embedding markup to generate graphs into the Markdown document. -- cgit v1.2.1