use super::prelude::*;
pub const BLOCK_CODE: BlockRule = BlockRule {
name: "block-code",
accepts_names: &["code"],
accepts_special: false,
accepts_newlines: true,
parse_fn,
};
fn parse_fn<'r, 't>(
log: &slog::Logger,
parser: &mut Parser<'r, 't>,
name: &'t str,
special: bool,
in_head: bool,
) -> ParseResult<'r, 't, Elements<'t>> {
debug!(log, "Parsing code block"; "in-head" => in_head);
assert_eq!(special, false, "Code doesn't allow special variant");
assert_block_name(&BLOCK_CODE, name);
let mut arguments = parser.get_head_map(&BLOCK_CODE, in_head)?;
let language = arguments.get("type");
let code = parser.get_body_text(&BLOCK_CODE)?;
let element = Element::Code {
contents: cow!(code),
language,
};
ok!(element)
}