File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ use jotdown:: { Container , Event , Render , RenderExt as _} ;
2+ use std:: borrow:: Cow ;
3+
4+ struct RickrollRenderer < R > ( R ) ;
5+
6+ impl < ' s , R > Render < ' s > for RickrollRenderer < R >
7+ where
8+ R : Render < ' s > ,
9+ {
10+ type Error = R :: Error ;
11+
12+ fn begin ( & mut self ) -> Result < ( ) , Self :: Error > {
13+ self . 0 . begin ( )
14+ }
15+
16+ fn emit ( & mut self , event : Event < ' s > ) -> Result < ( ) , Self :: Error > {
17+ match event {
18+ Event :: Start ( Container :: Link ( _link, t) , attrs) => self . 0 . emit ( Event :: Start (
19+ Container :: Link (
20+ Cow :: Owned ( "https://www.youtube.com/watch?v=E4WlUXrJgy4" . to_owned ( ) ) ,
21+ t,
22+ ) ,
23+ attrs,
24+ ) ) ,
25+ _ => self . 0 . emit ( event) ,
26+ }
27+ }
28+
29+ fn finish ( & mut self ) -> Result < ( ) , Self :: Error > {
30+ self . 0 . finish ( )
31+ }
32+ }
33+
34+ #[ test]
35+ fn rickroll_me ( ) {
36+ let src = "[interesting link](https://example.com)" ;
37+ let mut r = RickrollRenderer ( jotdown:: html:: Renderer :: minified ( ) ) ;
38+
39+ r. render_document ( src) . unwrap ( ) ;
40+
41+ assert_eq ! (
42+ r. 0 . into_inner( ) ,
43+ "<p><a href=\" https://www.youtube.com/watch?v=E4WlUXrJgy4\" >interesting link</a></p>"
44+ ) ;
45+ }
Original file line number Diff line number Diff line change 11mod attr;
22mod html;
3+ mod filters;
34mod parse_events;
You can’t perform that action at this time.
0 commit comments