馃 The Definitive Gemini Protocol Toolkit
gemini gemini-protocol gemtext parser zero-dependency toolkit ast converter html markdown cli networking
at main 51 lines 1.1 kB view raw
1/// Convert Gemtext into HTML 2/// 3/// # Examples 4/// 5/// ```rust 6/// // Using a value 7/// assert_eq!( 8/// germ::gemini_to_html!("=> /to hello !"), 9/// "<a href=\"/to\">hello !</a><br>", 10/// ); 11#[macro_export] 12macro_rules! gemini_to_html { 13 ($gemini:expr) => { 14 $crate::convert::from_ast( 15 &$crate::gemini_to_ast!($gemini), 16 &$crate::convert::Target::HTML, 17 ) 18 }; 19 ($($gemini:tt)*) => { 20 $crate::convert::from_ast( 21 &$crate::gemini_to_ast!{ $($gemini)* }, 22 &$crate::convert::Target::HTML, 23 ) 24 }; 25} 26 27/// Convert Gemtext into Markdown 28/// 29/// # Examples 30/// 31/// ```rust 32/// assert_eq!( 33/// // Using a value 34/// germ::gemini_to_md!("=> /to hello !"), 35/// "[hello !](/to)\n", 36/// ); 37#[macro_export] 38macro_rules! gemini_to_md { 39 ($gemini:expr) => { 40 $crate::convert::from_ast( 41 &$crate::gemini_to_ast!($gemini), 42 &$crate::convert::Target::Markdown, 43 ) 44 }; 45 ($($gemini:tt)*) => { 46 $crate::convert::from_ast( 47 &$crate::gemini_to_ast!{ $($gemini)* }, 48 &$crate::convert::Target::Markdown, 49 ) 50 }; 51}