@@ -30,16 +30,16 @@ pub fn run() {
3030 panic:: set_hook ( Box :: new ( console_error_panic_hook:: hook) ) ;
3131}
3232
33- fn json_to_pandoc ( input : & str ) -> Result < quarto_markdown_pandoc:: pandoc:: Pandoc , String > {
33+ fn json_to_pandoc ( input : & str ) -> Result < ( quarto_markdown_pandoc:: pandoc:: Pandoc , quarto_markdown_pandoc :: pandoc :: ASTContext ) , String > {
3434 match readers:: json:: read ( & mut input. as_bytes ( ) ) {
3535 Ok ( doc) => Ok ( doc) ,
3636 Err ( err) => Err ( format ! ( "Unable to read as json: {:?}" , err) ) ,
3737 }
3838}
3939
40- fn pandoc_to_json ( doc : & quarto_markdown_pandoc:: pandoc:: Pandoc ) -> Result < String , String > {
40+ fn pandoc_to_json ( doc : & quarto_markdown_pandoc:: pandoc:: Pandoc , context : & quarto_markdown_pandoc :: pandoc :: ASTContext ) -> Result < String , String > {
4141 let mut buf = Vec :: new ( ) ;
42- match writers:: json:: write ( doc, & mut buf) {
42+ match writers:: json:: write ( doc, context , & mut buf) {
4343 Ok ( _) => {
4444 // Nothing to do
4545 }
@@ -81,9 +81,9 @@ pub fn parse_qmd(input: JsValue) -> JsValue {
8181#[ wasm_bindgen]
8282pub fn write_qmd ( input : JsValue ) -> JsValue {
8383 let input = as_string ( & input, "input" ) ;
84- let result = json_to_pandoc ( & input) . unwrap ( ) ;
84+ let ( result, context ) = json_to_pandoc ( & input) . unwrap ( ) ;
8585
86- let json = pandoc_to_json ( & result) . unwrap ( ) ;
86+ let json = pandoc_to_json ( & result, & context ) . unwrap ( ) ;
8787 JsValue :: from_str ( & json)
8888}
8989
@@ -92,14 +92,14 @@ pub fn convert(document: JsValue, input_format: JsValue, output_format: JsValue)
9292 let input = as_string ( & document, "document" ) ;
9393 let input_format = as_string ( & input_format, "input_format" ) ;
9494 let output_format = as_string ( & output_format, "output_format" ) ;
95- let doc = match input_format. as_str ( ) {
95+ let ( doc, context ) = match input_format. as_str ( ) {
9696 "qmd" => wasm_entry_points:: qmd_to_pandoc ( & input. as_bytes ( ) ) . unwrap ( ) ,
9797 "json" => json_to_pandoc ( & input) . unwrap ( ) ,
9898 _ => panic ! ( "Unsupported input format: {}" , input_format) ,
9999 } ;
100100 let output = match output_format. as_str ( ) {
101101 "qmd" => pandoc_to_qmd ( & doc) . unwrap ( ) ,
102- "json" => pandoc_to_json ( & doc) . unwrap ( ) ,
102+ "json" => pandoc_to_json ( & doc, & context ) . unwrap ( ) ,
103103 _ => panic ! ( "Unsupported output format: {}" , output_format) ,
104104 } ;
105105 JsValue :: from_str ( & output)
0 commit comments