summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2022-12-28 17:57:45 +0000
committerDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2022-12-28 17:57:45 +0000
commit4a8f87b12aa73b17c88dae2a4a4ba16dd21947af (patch)
treec06fb243de17c54bbb5adf748a5c3a5afc6cbc04
parente9cb02bbfc6c1ff5321abfaaf1275dd301423b75 (diff)
parent5906a497322277da04e6b4a3f7dc8b558b45e38a (diff)
downloadsubplot-4a8f87b12aa73b17c88dae2a4a4ba16dd21947af.tar.gz
Merge branch 'liw/drop-extract-yaml-from-markdown' into 'main'
refactor: drop unused extract_metadata function See merge request subplot/subplot!304
-rw-r--r--src/ast.rs45
-rw-r--r--src/lib.rs2
2 files changed, 1 insertions, 46 deletions
diff --git a/src/ast.rs b/src/ast.rs
index 14a57be..e638464 100644
--- a/src/ast.rs
+++ b/src/ast.rs
@@ -46,51 +46,6 @@ impl AbstractSyntaxTree {
}
}
-/// Extract YAML metadata from a Markdown document.
-pub fn extract_metadata(markdown: &str) -> Result<(YamlMetadata, &str), Error> {
- trace!("Extracting YAML from Markdown");
- let (yaml, md) = if let Some((yaml, markdown)) = get_yaml(&LEADING_YAML_PATTERN, markdown) {
- trace!("Found leading YAML: {:?}", yaml);
- (yaml, markdown)
- } else if let Some((yaml, _markdown)) = get_yaml(&TRAILING_YAML_PATTERN, markdown) {
- trace!("Found trailing YAML: {:?}", yaml);
- (yaml, markdown)
- } else {
- trace!("No YAML to be found");
- return Err(Error::NoMetadata);
- };
- let meta = YamlMetadata::new(yaml)?;
- trace!("Parsing markdown: OK");
- Ok((meta, md))
-}
-
-// Extract a YAML metadata block using a given regex.
-fn get_yaml<'a>(pat: &Regex, markdown: &'a str) -> Option<(&'a str, &'a str)> {
- trace!("Markdown: {:?}", markdown);
- if let Some(c) = pat.captures(markdown) {
- trace!("YAML regex matches: {:?}", c);
- let yaml = c.name("yaml");
- let text = c.name("text");
- trace!("YAML metadata: {:?}", yaml);
- trace!("markdown: {:?}", text);
- if yaml.is_some() && text.is_some() {
- trace!("YAML regex captures YAML and text");
- let yaml = yaml?;
- let text = text?;
- let yaml = &markdown[yaml.start()..yaml.end()];
- let text = &markdown[text.start()..text.end()];
- assert!(yaml.starts_with("---"));
- assert!(yaml.ends_with("...\n"));
- return Some((yaml, text));
- } else {
- trace!("YAML regex fails to capture YAML");
- }
- } else {
- trace!("YAML regex does not match");
- }
- None
-}
-
// Parse Markdown into a sequence of Blocks.
fn parse_blocks(markdown: &str) -> Vec<Block> {
trace!("Parsing blocks");
diff --git a/src/lib.rs b/src/lib.rs
index 725e49c..4a3ae81 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -73,4 +73,4 @@ mod codegen;
pub use codegen::generate_test_program;
mod ast;
-pub use ast::{extract_metadata, AbstractSyntaxTree, YamlMetadata};
+pub use ast::{AbstractSyntaxTree, YamlMetadata};