Function md_tui::parser::parse_markdown

source ยท
pub fn parse_markdown(
    name: Option<&str>,
    content: &str,
    width: u16,
) -> ComponentRoot
Examples found in repository?
examples/demo.rs (lines 78-82)
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
    fn draw(&mut self, frame: &mut Frame) {
        self.area = frame.area();

        self.markdown = Some(parser::parse_markdown(
            None,
            &CONTENT.to_string(),
            self.area.width,
        ));

        if let Some(markdown) = &mut self.markdown {
            markdown.set_scroll(self.scroll);

            let area = Rect {
                width: self.area.width - 1,
                height: self.area.height - 1,
                x: 1,
                ..self.area
            };

            for child in markdown.children() {
                match child {
                    Component::TextComponent(comp) => {
                        if comp.y_offset().saturating_sub(comp.scroll_offset()) >= area.height
                            || (comp.y_offset() + comp.height())
                                .saturating_sub(comp.scroll_offset())
                                == 0
                        {
                            continue;
                        }

                        frame.render_widget(comp.clone(), area);
                    }
                    _ => {}
                }
            }
        }
    }