@@ -51,8 +51,8 @@ use crate::core::{
5151 self , Color , Element , Length , Padding , Pixels , Theme , color,
5252} ;
5353use crate :: {
54- column, container, rich_text, row, rule, scrollable, span, text ,
55- vertical_rule,
54+ column, container, horizontal_rule , rich_text, row, rule, scrollable, span,
55+ text , vertical_rule,
5656} ;
5757
5858use std:: borrow:: BorrowMut ;
@@ -213,6 +213,8 @@ pub enum Item {
213213 } ,
214214 /// A quote.
215215 Quote ( Vec < Item > ) ,
216+ /// A horizontal separator.
217+ Rule ,
216218}
217219
218220/// A bunch of parsed Markdown text.
@@ -877,6 +879,9 @@ fn parse_with<'a>(
877879 } ) ;
878880 None
879881 }
882+ pulldown_cmark:: Event :: Rule => {
883+ produce ( state. borrow_mut ( ) , & mut stack, Item :: Rule , source)
884+ }
880885 _ => None ,
881886 } )
882887}
@@ -1107,6 +1112,7 @@ where
11071112 items,
11081113 } => viewer. ordered_list ( settings, * start, items) ,
11091114 Item :: Quote ( quote) => viewer. quote ( settings, quote) ,
1115+ Item :: Rule => viewer. rule ( settings) ,
11101116 }
11111117}
11121118
@@ -1296,6 +1302,17 @@ where
12961302 . into ( )
12971303}
12981304
1305+ /// Displays a rule using the default look.
1306+ pub fn rule < ' a , Message , Theme , Renderer > ( )
1307+ -> Element < ' a , Message , Theme , Renderer >
1308+ where
1309+ Message : ' a ,
1310+ Theme : Catalog + ' a ,
1311+ Renderer : core:: text:: Renderer < Font = Font > + ' a ,
1312+ {
1313+ horizontal_rule ( 2 ) . into ( )
1314+ }
1315+
12991316/// A view strategy to display a Markdown [`Item`].
13001317pub trait Viewer < ' a , Message , Theme = crate :: Theme , Renderer = crate :: Renderer >
13011318where
@@ -1402,6 +1419,16 @@ where
14021419 ) -> Element < ' a , Message , Theme , Renderer > {
14031420 quote ( self , settings, contents)
14041421 }
1422+
1423+ /// Displays a rule.
1424+ ///
1425+ /// By default, it calls [`rule`].
1426+ fn rule (
1427+ & self ,
1428+ _settings : Settings ,
1429+ ) -> Element < ' a , Message , Theme , Renderer > {
1430+ rule ( )
1431+ }
14051432}
14061433
14071434#[ derive( Debug , Clone , Copy ) ]
0 commit comments