diff options
| author | Philipp A | 2019-03-31 19:48:39 +0200 | 
|---|---|---|
| committer | Philipp A | 2019-03-31 19:48:39 +0200 | 
| commit | 33f1186bfb5deb0db5ae29d26daf18dbe38fd21a (patch) | |
| tree | 642197d9414ff170f5786ec61845a3f1c9e933f7 /src/bin.rs | |
| parent | 626cc2d747f198ba94bac241a872927968f50431 (diff) | |
| download | rust-rst-33f1186bfb5deb0db5ae29d26daf18dbe38fd21a.tar.bz2 | |
Implement WIP HTML rendering
Diffstat (limited to 'src/bin.rs')
| -rw-r--r-- | src/bin.rs | 19 | 
1 files changed, 12 insertions, 7 deletions
| @@ -2,6 +2,7 @@  pub mod document_tree;  pub mod parser; +pub mod renderer;  pub mod target; @@ -12,22 +13,24 @@ use quicli::{      prelude::{CliResult,Verbosity},  }; -use self::parser::{ -    serialize_json, -    serialize_xml, +use self::parser::parse; +use self::renderer::{ +    render_json, +    render_xml, +    render_html,  };  arg_enum! {      #[derive(Debug)]      #[allow(non_camel_case_types)] -    enum Format { json, xml } +    enum Format { json, xml, html }  }  #[derive(Debug, StructOpt)]  #[structopt(raw(setting = "structopt::clap::AppSettings::ColoredHelp"))]  struct Cli {      #[structopt( -        long = "format", short = "f", default_value = "json",  // xml is pretty defunct… +        long = "format", short = "f", default_value = "html",  // xml is pretty defunct…          raw(possible_values = "&Format::variants()", case_insensitive = "true"),      )]      format: Format, @@ -41,10 +44,12 @@ fn main() -> CliResult {      args.verbosity.setup_env_logger("rst")?;      let content = read_file(args.file)?; +    let document = parse(&content)?;      let stdout = std::io::stdout();      match args.format { -        Format::json => serialize_json(&content, stdout)?, -        Format::xml  => serialize_xml (&content, stdout)?, +        Format::json => render_json(&document, stdout)?, +        Format::xml  => render_xml (&document, stdout)?, +        Format::html => render_html(&document, stdout)?,      }      Ok(())  } | 
