textlane-html 0.0.0

Textlane's HTML plugins: parsing, transforms, sanitizing and serializing
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use textlane_core::hast::Element;

use crate::helpers::value::read_value;
use crate::utils::converter::state::Converter;
use crate::utils::converter::store::{Converted, Kind};

/// `<img>` and `<image>`: an image.
pub(crate) fn convert_img<'a>(
    state: &mut Converter<'a, '_, '_>,
    element: &Element<'a>,
) -> Converted {
    let source = read_value(element, "src");
    let url = state.resolve((!source.is_empty()).then_some(&*source));
    let title = state.read_optional(element, "title");
    let alt = state.read_optional(element, "alt").unwrap_or_default();
    let kind = Kind::Image { url, title, alt };
    Converted::One(state.store.add(kind, vec![], element.position))
}