@@ -1645,30 +1645,37 @@ fn document(w: &mut fmt::Formatter, cx: &Context, item: &clean::Item) -> fmt::Re
1645
1645
Ok ( ( ) )
1646
1646
}
1647
1647
1648
- fn get_html_diff ( w : & mut fmt:: Formatter , md_text : & str , render_type : RenderType ,
1648
+ fn render_markdown ( w : & mut fmt:: Formatter , md_text : & str , render_type : RenderType ,
1649
1649
prefix : & str ) -> fmt:: Result {
1650
- let output = format ! ( "{}" , Markdown ( md_text, render_type) ) ;
1651
- let old = format ! ( "{}" , Markdown ( md_text, match render_type {
1652
- RenderType :: Hoedown => RenderType :: Pulldown ,
1653
- RenderType :: Pulldown => RenderType :: Hoedown ,
1654
- } ) ) ;
1655
- let differences = html_diff:: get_differences ( & output, & old) ;
1656
- if !differences. is_empty ( ) {
1657
- println ! ( "Differences spotted in {:?}:\n {}" ,
1658
- md_text,
1659
- differences. iter( )
1660
- . filter_map( |s| {
1661
- match * s {
1662
- html_diff:: Difference :: NodeText { ref elem_text,
1663
- ref opposite_elem_text,
1664
- .. }
1665
- if elem_text. trim( ) == opposite_elem_text. trim( ) => None ,
1666
- _ => Some ( format!( "=> {}" , s. to_string( ) ) ) ,
1667
- }
1668
- } )
1669
- . collect:: <Vec <String >>( )
1670
- . join( "\n " ) ) ;
1671
- }
1650
+ let hoedown_output = format ! ( "{}" , Markdown ( md_text, RenderType :: Hoedown ) ) ;
1651
+ // We only emit warnings if the user has opted-in to Pulldown rendering.
1652
+ let output = if render_type == RenderType :: Pulldown {
1653
+ let pulldown_output = format ! ( "{}" , Markdown ( md_text, RenderType :: Pulldown ) ) ;
1654
+ let differences = html_diff:: get_differences ( & pulldown_output, & hoedown_output) ;
1655
+ let differences = differences. iter ( )
1656
+ . filter_map ( |s| {
1657
+ match * s {
1658
+ html_diff:: Difference :: NodeText { ref elem_text,
1659
+ ref opposite_elem_text,
1660
+ .. }
1661
+ if elem_text. trim ( ) == opposite_elem_text. trim ( ) => None ,
1662
+ _ => Some ( format ! ( "=> {}" , s. to_string( ) ) ) ,
1663
+ }
1664
+ } )
1665
+ . collect :: < Vec < String > > ( ) ;
1666
+
1667
+ if !differences. is_empty ( ) {
1668
+ // Emit warnings if there are differences.
1669
+ println ! ( "Differences spotted in {:?}:\n {}" ,
1670
+ md_text,
1671
+ differences. join( "\n " ) ) ;
1672
+ }
1673
+
1674
+ pulldown_output
1675
+ } else {
1676
+ hoedown_output
1677
+ } ;
1678
+
1672
1679
write ! ( w, "<div class='docblock'>{}{}</div>" , prefix, output)
1673
1680
}
1674
1681
@@ -1681,7 +1688,7 @@ fn document_short(w: &mut fmt::Formatter, item: &clean::Item, link: AssocItemLin
1681
1688
} else {
1682
1689
format ! ( "{}" , & plain_summary_line( Some ( s) ) )
1683
1690
} ;
1684
- get_html_diff ( w, & markdown, render_type, prefix) ?;
1691
+ render_markdown ( w, & markdown, render_type, prefix) ?;
1685
1692
} else if !prefix. is_empty ( ) {
1686
1693
write ! ( w, "<div class='docblock'>{}</div>" , prefix) ?;
1687
1694
}
@@ -1705,7 +1712,7 @@ fn render_assoc_const_value(item: &clean::Item) -> String {
1705
1712
fn document_full ( w : & mut fmt:: Formatter , item : & clean:: Item ,
1706
1713
render_type : RenderType , prefix : & str ) -> fmt:: Result {
1707
1714
if let Some ( s) = item. doc_value ( ) {
1708
- get_html_diff ( w, s, render_type, prefix) ?;
1715
+ render_markdown ( w, s, render_type, prefix) ?;
1709
1716
} else if !prefix. is_empty ( ) {
1710
1717
write ! ( w, "<div class='docblock'>{}</div>" , prefix) ?;
1711
1718
}
0 commit comments