Implement Rule support in markdown widget
This commit is contained in:
parent
ef13eb58b2
commit
946e2a73b7
1 changed files with 29 additions and 2 deletions
|
|
@ -51,8 +51,8 @@ use crate::core::{
|
||||||
self, Color, Element, Length, Padding, Pixels, Theme, color,
|
self, Color, Element, Length, Padding, Pixels, Theme, color,
|
||||||
};
|
};
|
||||||
use crate::{
|
use crate::{
|
||||||
column, container, rich_text, row, rule, scrollable, span, text,
|
column, container, horizontal_rule, rich_text, row, rule, scrollable, span,
|
||||||
vertical_rule,
|
text, vertical_rule,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::borrow::BorrowMut;
|
use std::borrow::BorrowMut;
|
||||||
|
|
@ -213,6 +213,8 @@ pub enum Item {
|
||||||
},
|
},
|
||||||
/// A quote.
|
/// A quote.
|
||||||
Quote(Vec<Item>),
|
Quote(Vec<Item>),
|
||||||
|
/// A horizontal separator.
|
||||||
|
Rule,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A bunch of parsed Markdown text.
|
/// A bunch of parsed Markdown text.
|
||||||
|
|
@ -877,6 +879,9 @@ fn parse_with<'a>(
|
||||||
});
|
});
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
pulldown_cmark::Event::Rule => {
|
||||||
|
produce(state.borrow_mut(), &mut stack, Item::Rule, source)
|
||||||
|
}
|
||||||
_ => None,
|
_ => None,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -1107,6 +1112,7 @@ where
|
||||||
items,
|
items,
|
||||||
} => viewer.ordered_list(settings, *start, items),
|
} => viewer.ordered_list(settings, *start, items),
|
||||||
Item::Quote(quote) => viewer.quote(settings, quote),
|
Item::Quote(quote) => viewer.quote(settings, quote),
|
||||||
|
Item::Rule => viewer.rule(settings),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1296,6 +1302,17 @@ where
|
||||||
.into()
|
.into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Displays a rule using the default look.
|
||||||
|
pub fn rule<'a, Message, Theme, Renderer>()
|
||||||
|
-> Element<'a, Message, Theme, Renderer>
|
||||||
|
where
|
||||||
|
Message: 'a,
|
||||||
|
Theme: Catalog + 'a,
|
||||||
|
Renderer: core::text::Renderer<Font = Font> + 'a,
|
||||||
|
{
|
||||||
|
horizontal_rule(2).into()
|
||||||
|
}
|
||||||
|
|
||||||
/// A view strategy to display a Markdown [`Item`].
|
/// A view strategy to display a Markdown [`Item`].
|
||||||
pub trait Viewer<'a, Message, Theme = crate::Theme, Renderer = crate::Renderer>
|
pub trait Viewer<'a, Message, Theme = crate::Theme, Renderer = crate::Renderer>
|
||||||
where
|
where
|
||||||
|
|
@ -1402,6 +1419,16 @@ where
|
||||||
) -> Element<'a, Message, Theme, Renderer> {
|
) -> Element<'a, Message, Theme, Renderer> {
|
||||||
quote(self, settings, contents)
|
quote(self, settings, contents)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Displays a rule.
|
||||||
|
///
|
||||||
|
/// By default, it calls [`rule`](self::rule()).
|
||||||
|
fn rule(
|
||||||
|
&self,
|
||||||
|
_settings: Settings,
|
||||||
|
) -> Element<'a, Message, Theme, Renderer> {
|
||||||
|
rule()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue