2021-08-05 22:07:27 -04:00
|
|
|
use crate::ast::NodeData;
|
2021-08-08 04:46:51 -04:00
|
|
|
use crate::entity::decode::decode_entities;
|
2021-08-05 22:07:27 -04:00
|
|
|
use crate::parse::content::ParsedContent;
|
2021-08-06 02:19:36 -04:00
|
|
|
use crate::parse::Code;
|
2023-01-04 22:28:16 -05:00
|
|
|
use crate::tag::TAG_TEXTAREA_END;
|
2021-08-05 22:07:27 -04:00
|
|
|
|
2021-08-06 03:54:23 -04:00
|
|
|
pub fn parse_textarea_content(code: &mut Code) -> ParsedContent {
|
2023-01-04 22:28:16 -05:00
|
|
|
let (len, closing_tag_omitted) = match TAG_TEXTAREA_END.find(code.as_slice()) {
|
2021-08-05 22:07:27 -04:00
|
|
|
Some(m) => (m.start(), false),
|
|
|
|
None => (code.rem(), true),
|
|
|
|
};
|
|
|
|
ParsedContent {
|
|
|
|
closing_tag_omitted,
|
2023-01-04 22:28:16 -05:00
|
|
|
children: vec![NodeData::RcdataContent {
|
|
|
|
content: decode_entities(code.slice_and_shift(len), false),
|
2021-08-06 02:19:36 -04:00
|
|
|
}],
|
2021-08-05 22:07:27 -04:00
|
|
|
}
|
|
|
|
}
|