aboutsummaryrefslogblamecommitdiffstats
path: root/tests/commonmark.rs
blob: cec6116944ea9a493c8569e831a2f6045ae56c6a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                                
                


                 

                                                                   



                                                   
  

               

                                                                   



                                                   
  

               
                                                 
         
              




                                 
  

               
                                           

           
              







                         
  

               
                                         

                   
              








                         
  

               

                                                   





                         
  

               

                                                   







                         
  

               
                                           
           
              




                           
  

               














                                          
     





                                           


                         
  

               

                                                        


                          
  

               

                                                                                                    


                                                                   
  

               

                                                      


                                          
  

               
                                                     







                              
              










                                       
  

               

                                                


                                       
  

               
                                        
   
              



                                       
  

               

                                              


                                       
  

               

                                            



                                       
  

               
                                       

    
              



                                       
  

               

                                                                


                                                                                         
  

               

                                                      


                                       
  

               

                                                           


                                                          
  

               
                                         

                       
              


                                                          
  

               
                                                

   
              



                                                    
  
 
               
                                                                        

                                       
              




                                                             
  

               

                                                             


                                                             
  

               

                                                          


                                                             
  

               
                                                      


                        
              





                                                             
  

               

                                         


                                                             
  

               

                                                  


                                                             
  

               

                                                                


                                                             
  

               

                                                                         


                                                                  
  

               
                                         

                                     
              


                                                                  
  

               
                                                     

   
              



                                                             
  

               

                                                   


                                                             
  

               

                                                      



                                                             
  

               
                                                 
     
              



                                                             
  
 

                                             
 








                                                             

               

                                                    




                                                             
  

               

                                           


                                                             
  

               

                                                            


                                                             
  
 










                                          

               
                                       

   
              




                                     
  

               

                                       


                                     
  

               

                                       


                                     
  

               
                                      

  
              




                                     
  

               
                                        

      
              




                                     
  

               

                                           



                                     
  

               
                                       
       
              



                                     
  

               

                                                                         


                                     
  

               

                                          


                                     
  

               

                                                       


                                     
  

               

                                                         


                                     
  

               

                                               


                                     
  

               
                                             



       
              




                                     
  

               

                                        


                                     
  
 














                                         

               
                                       

   
              




                                     
  

               
                                       

   
              



                                     
  
 














                                         

               
                                         
       
              







                                     
  

               
                                         




          
              







                                  
  

               

                                               


                                  
  

               
                                           

        
              



                                  
  

               

                                           


                                  
  

               

                                                       


                                            
  

               

                                                                               


                                  
  

               
                                            

        
              




                                  
  

               

                                             



                                  
  

               
                                       
         
              



                                  
  

               
                                             
                  
              



                                  
  

               
                                                                            
            
              



                                  
  

               

                                                    


                                  
  

               

                                                 


                                  
  

               

                                          


                                  
  

               
                                                

           
              




                                  
  

               
                                        

      
              




                                  
  

               
                                           

       
              




                                  
  

               
                                       

       
              




                                  
  

               
                                             



         
              



                                      
  

               
                                            

    
              



                                     
  

               

                                              
    
              



                                     
  

               
                                       



                         
              



                                     
  

               
                                          






     
              




                                     
  

               
                                           



       
              







                                     
  

               


                                       


                                     
  

               
                                       
       
              



                                     
  

               
                                       



     
              





                                     
  

               
                                         
     
              


                                     
  

               
                                        
    
              


                                     
  

               
                                        





               
              





                                     
  

               
                                         
   
              





                                     


















                                            
   
              





                                     
  

               
                                       

   
              



                                     
  

               
                                       




   
              





                                     
  

               
                                    
    
              


                                     
  

               
                                       
   
              



                                     
  

               
                                         
     
              





                                     
  

               
                                           
   
              




                                     
  

               
                                         
     
              





                                      
  

               
                                          
      
              


                                      
  

               
                                       



   
              




                                      
  

               
                                       




   
              





                                      
  

               
                                       


     
              





                                      
  

               
                                       


    
              





                                      
  

               
                                                
                         
              




                                           
  

               
                                           

       
              







                                           
  
 

                                           
 












                                           

               
                                            


         
              






                                           
  

               
                                              

          


  
          
              









                                           
  

               

                                              
            
              
                              
  



                                           
  

               
                                       

       
              



                                           
  

               
                                           
   
              




                                           
  

               
                                             




       
              








                                           
  

               
                                               
       
              




                                           
  

               

                                    
       
    
 
              



                                           
  

               


                                             


                                           
  

               
                                       


   
              




                                         
  

               
                                       


   
              




                                         
  

               
                                      

   
              


                                         
  

               
                                       


   
              




                                         
  

               
                                       


   
              




                                         
  

               
                                        


      
              




                                         
  

               
                                        


    
              




                                         
  

               

                                       


                                         
  

               
                                         


   
              





                                         
  

               
                                         


     
              






                                         
  

               
                                       
 
  
   
              
                        
  


                                         
  

               
                                       
   
              


                                         
  

               
                                        


    
              




                                         
  

               
                                         



     
              





                                         
  

               
                                          



       
              





                                         
  

               
                                           

       
              





                                         
  

               
                                       

     
              



                                         
  

               
                                          

     
              



                                         
  

               
                                       

       
              




                                         
  

               
                                           
   
              



                                         
  

               
                                          

      
              




                                         
  

               
                                       



   
              





                                         
  

               
                                       




     
              





                                         
  

               
                                           



          
              





                                                        
  

               
                                                                  



          
              





                                                        
  

               
                                         
    
              


                                                        
  

               
                                              
   
              



                                         
  

               
                                                  

   
              



                                               
  

               
                                       

       
              



                                         
  

               
                                                   





                  
              







                                  
  

               
                                           







             
              









                                  
  

               
                                          

                 
              




                                  
  

               
                                          
     
              



                                  
  

               
                                                     



          
              




                                  
  

               
                                                 

              
              




                                  
  

               
                                                            

       
              




                                     
  

               
                                         


     
              




                                  
  

               
                                                 
    
              



                                  
  

               
                                              
   
              



                                  
  

               
                                                      
     
              



                                  
  

               

                                                                      


                                               
  

               
                                                   

                  
              




                                  
  

               
                                               


           
              





                                  
  

               
                                                  

     
              




                                  
  

               
                                             

          
              




                                  
  

               
                                                   

     
              




                                  
  

               
                                          
     
              



                                  
  

               
                                         

      
              




                                  
  

               
                                         



      
              




                                  
  

               

                                                    


                                           
  

               
                                                                  





                             
              








                                           
  

               
                                                                   




                                                                
              







                                                                
  

               
                                              





           
              








                                  
  

               
                                          





                  
              








                                  
  

               
                                          


                  
              





                                  
  

               
                                           


     
              






                                  
  
 












                                           

               
                                                                
     
              



                                         
  

               
                                                     
     
              



                                  
  

               
                                            

                 
              




                                  
  

               
                                            



          
              






                                  
  

               
                                         




           
              







                                  
  

               

                                                   


                                  
  

               
                                             











                            
              














                                  
  

               
                                                  

                
              




                                  
  

               
                                           

         
              




                                  
  

               
                                       


      
              





                                  
  

               
                                         


      
              





                                  
  

               
                                       

              
              




                                  
  

               
                                         



                  
              




                                  
  

               
                                         

                  
              




                                  
  

               
                                           









        
              








                                  
  

               
                                           









         
              









                                  
  

               
                                                       

     
              


                                                        
  

               


                                              

     
              


                                                            
  

               
                                                                              

           
              


                                                                               
  

               
                                              



         
              


                                                                
  

               
                                                 





     
              






                                                 
  

               
                                                      



                
              




                                                 
  

               
                                          


     
              


                                                 
  

               
                                          

     
              



                                                 
  

               
                                             

     
              


                                                 
  

               
                                                     

     
              



                                                 
  

               
                                                                       

     
              


                                                                             
  

               
                                         

          
              


                                                 
  

               
                                         


             
              


                                                 
  

               
                                               

     
              


                                                 
  

               
                                                     

        
              


                                                            
  

               

                                               

                                                 
  

               
                                     


       
              


                                                 
  

               

                                                          


                                                    
  

               
                                               
          
              


                                                 
  

               
                                                           

     
              




                                                     
  

               
                                       



           
              




                                                 
  

               
                                       


           
              




                                                 
  

               
                                           

           
              





                                                 
  

               
                                               


     
              



                                                 
  

               
                                               

     
              



                                                 
  

               
                                                         






               
              




                                                       
  
 


                                                                  
 







                                                    

               
                                       

   
              



                                 
  

               
                                       



   
              





                                 
  

               
                                       


   
              



                                 
  

               
                                         
    
              



                                 
  

               
                                       

                                          
              




                                 
  

               
                                          
   
              



                                 
  

               
                                           
   
              




                                 
  
 








                                            

               
                                      

   
  


     

              



                                  
  

               
                                           

     
              






                                   
  

               
                                          

     
              






                                   
  

               
                                              

        
              






                                   
  

               
                                               

         
              





                                   
  
 
                            














                                                  
                                         

     
              






                                   
  

               
                                         
   
              





                                   
  
 














                                           

               
                                             
       
              







                                   
  

               
                                         

   
              






                                   
  
 
                            











                                                
                                                








                                            
                                                

                                            

          






                                          
                                                


                                            
          








                                          
                                         

     
              







                                   
  

               
                                         
     
              





                                   
  

               
                                         

     
              





                                   
  

               
                                       
     
              





                                   
  

               
                                         

     
              








                                   
  
 
                                                












                                                
                                         

   
              





                                   
  

               
                                         

   
              





                                   
  
 
                            















                                                    
                            


















                                                  
                                              

             
              








                                   
  

               
                                               




                 
              








                                 
  

               
                                                   




                     
              












                                 
  

               
                                         

    
              





                                 
  

               
                                         

     
              







                                 
  

               
                                             

        
              






                                 
  

               
                                             

         
              







                                 
  

               
                                                  

          
              











                                 
  

               
                                           

          
              









                                 
  

               
                                        

     
              



                                 
  

               
                                         


     
              







                                 
  

               
                                           







         
              












                                 
  

               
                                         




         
              











                                 
  

               




                                                 
     





                                                      


                                      
  
 








                                         

               




                                           
     





                                              


                                 
  

               
                                         

         
              








                                 
  

               
                                              

              
              








                                 
  

               
                                                     



             
              






                                     
  

               
                                                        



                
              










                                 
  

               
                                                         



                
              










                                 
  

               
                                          

   
              



                                 
  

               
                                            

     
              





                                 
  

               
                                          

      
              







                                 
  

               
                                     






         
              












                                 
  
 









                                        

               
                                     

     
              





                                 
  
 












                                         
 












                                         
 












                                          
 
                                                       
                      

                                            




                                        
         

               
                                       



   
              





                                 
  

               
                                                    




                      
              












                                 
  

               
                                                     




                       
              












                                 
  

               
                                                      




                        
              












                                 
  

               
                                                       




                         
              








                                       
  

               
                                                     




                       
              












                                 
  
 
                            
                      
                                                            
                          
                     





                                        
         
 
                            
                      
                                                            
                      
                     











                                        
         
 
                            
                      
                                                            
                        
                     











                                        
         
 























                                         
 














                                         
 













                                           
 












                                           
 












                                           
 
















                                               
 
















                                           
 














                                         
 














                                          
 












                                       
 
                                    
                      
                                                                               
                                     
                     



                                                           
         
 










                                                                        

               
                                         




     
              












                            
  

               
                                         




         
              















                            
  
 


                                         
 
        
 














                            

               
                                           







           
              













                            
  
 




















                                       

               
                                        



       
              












                            
  
 
                                    
                      
                                              



              
                     








                                   
         

               
                                        



        
              











                            
  

               
                                       


   
              












                            
  

               
                                       


   
              










                            
  

               
                                       



   
              













                            
  

               
                                       



             
              












                            
  
 



                                       
 
 






                 
 
 






                            
 


                                       
 
















                            
 
















                                       
 




















                                       

               

























                                          



      
              








                            
  

               
                                         


       
              










                            
  
 



                                       
 






















                            

               

                                           


                                      
  

               

                                         


                                    
  

               

                                                   


                                          
  

               

                                          


                                   
  

               

                                            


                                     
  

               

                                        


                                   
  

               

                                           


                                      
  

               
                                        
    
              



                                 
  
 










                                              
 








                                      

               



                                               
     





                                              


                                         
  

               

                                               


                                        
  

               

                                                  


                                           
  

               

                                           


                                      
  

               

                                                        


                                                   
  

               

                                                  


                                                             
  

               

                                                 


                                 
  

               

                                                           


                                                            
  

               

                                                          


                                                                            
  

               

                                            


                                 
  

               

                                        


                                 
  

               

                                               


                                        
  

               

                                             


                                                   
  

               

                                                


                                                   
  

               

                                            


                                                   
  

               

                                           


                                                   
  

               

                                            


                                                   
  

               

                                          


                                                   
  

               

                                             


                                                   
  

               

                                              


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                          


                                                   
  

               

                                                                          


                                                          
  

               

                                              


                                                   
  

               

                                               


                                                   
  

               

                                         


                                                   
  

               

                                              


                                                   
  

               
                                            
 
              



                                                   
  

               

                                           


                                                   
  

               

                                             


                                                   
  

               

                                            


                                                   
  

               

                                              


                                                   
  

               

                                           


                                                   
  

               

                                             


                                                   
  

               

                                            


                                                   
  

               

                                                                          


                                                          
  

               

                                                 


                                                   
  

               

                                            


                                                   
  

               

                                               


                                                   
  

               

                                                


                                                   
  

               

                                              


                                                   
  

               

                                              


                                                   
  

               

                                               


                                                   
  

               

                                                


                                                   
  

               
                                      
         
              



                                                   
  

               

                                              


                                                   
  

               

                                              


                                                   
  

               

                                            


                                                   
  

               

                                                                            


                                                            
  

               

                                                         


                                                                   
  

               

                                                 


                                                   
  

               

                                                


                                                   
  

               

                                             


                                                   
  

               

                                               


                                                   
  

               
                                                                                    
                         
              



                                                                             
  

               

                                                       


                                                                     
  

               

                                              


                                                   
  

               

                                                


                                                   
  

               

                                             


                                                   
  

               

                                               


                                                   
  

               

                                              


                                                   
  

               

                                                                            


                                                            
  

               

                                                     


                                                   
  

               

                                              


                                                   
  

               

                                                     


                                                       
  

               
                                        
    
              



                                                   
  

               

                                                     


                                                         
  

               

                                                   


                                                   
  

               

                                               


                                                   
  

               

                                               


                                                   
  

               

                                                     


                                                         
  

               

                                                   


                                                       
  

               

                                              


                                                   
  

               

                                                 


                                                     
  

               

                                                 


                                                     
  

               

                                                


                                                    
  

               

                                                   


                                                       
  

               

                                                            


                                                                                   
  

               

                                                               


                                                                          
  

               

                                                       


                                                                
  

               

                                                               


                                                   
  

               

                                                                        


                                                        
  

               

                                                       


                                                               
  

               
                                         
     
              



                                                   
  

               

                                                     


                                                         
  

               

                                                       


                                                                 
  

               

                                                   


                                                             
  

               

                                                   


                                                             
  

               

                                                     


                                                         
  

               

                                                   


                                                       
  

               

                                                 


                                                     
  

               

                                                 


                                                     
  

               
                                                      
          
              



                                                        
  

               

                                                         


                                                                        
  

               

                                                               


                                                   
  

               

                                                                        


                                                        
  

               

                                           


                                                   
  

               

                                            


                                                   
  

               

                                           


                                                   
  

               

                                             


                                                   
  

               

                                              


                                                   
  

               

                                             


                                                   
  

               

                                          


                                                   
  

               

                                          


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                           


                                                   
  

               

                                            


                                                   
  

               

                                           


                                                   
  

               

                                             


                                                   
  

               

                                              


                                                   
  

               

                                             


                                                   
  

               

                                          


                                                   
  

               

                                          


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                            


                                                   
  

               

                                           


                                                   
  

               

                                           


                                                   
  

               

                                           


                                                   
  

               

                                           


                                                   
  

               

                                               


                                                         
  

               

                                               


                                                         
  

               

                                                   


                                                                          
  

               

                                             


                                                   
  

               

                                                 


                                                                  
  

               

                                                   


                                                   
  

               

                                                              


                                                                  
  

               

                                                     


                                                   
  

               

                                                  


                                                   
  

               

                                                 


                                                   
  

               

                                                     


                                                   
  

               

                                                               


                                                   
  

               

                                                   


                                                   
  

               

                                                   


                                                   
  

               

                                           


                                                   
  

               

                                           


                                                   
  

               

                                                             


                                                                              
  

               

                                                             


                                                                              
  

               

                                                        


                                                         
  

               

                                                


                                           
  

               

                                                   


                                              
  

               

                                            


                                       
  

               

                                              


                                       
  

               

                                        


                                   
  

               

                                                   


                                   
  

               

                                                     


                                                
  

               
                                              
    
              



                            
  

               
                                               
     
              



                            
  

               

                                              


                                       
  

               

                                                  


                                       
  

               
                                            

         
              




                            
  

               

                                                   


                                            
  

               

                                                         


                                                    
  

               

                                                        


                                        
  

               

                                                           


                                                   
  

               

                                                          


                                                   
  

               

                                                   


                                            
  

               
                                                     



                                     
              




                                                       
  

               

                                                   


                                                
  

               

                                                         


                                                    
  

               

                                                   


                                                  
  

               
                                                        

                    
              




                                                     
  

               

                                                                 


                                                                      
  

               

                                                         


                                                            
  

               

                                                                    


                                                                        
  

               

                                                                    


                                                                               
  

               
                                                  
            
              


                                                         
  

               

                                                 


                                 
  

               

                                                            


                                                       
  

               

                                                     


                                     
  

               

                                                     


                                                
  

               

                                                      


                                                
  

               

                                                                  


                                                                                            
  

               

                                                             


                                                                        
  

               

                                                           


                                                      
  

               

                                                                         


                                                                           
  

               

                                                                


                                                        
  

               

                                                 


                                            
  

               

                                                    


                                               
  

               

                                                   


                                          
  

               

                                                            


                                            
  

               

                                                 


                                            
  

               

                                                                           


                                                                                                           
  

               
                                              

                   
              


                                                        
  

               
                                                           

           
              


                                                       
  

               
                                                     

           
              


                                                
  

               
                                                                 

           
              


                                                                                            
  

               
                                                            

           
              


                                                                        
  

               
                                                          

           
              


                                                                      
  

               
                                                               

           
              


                                                                                   
  

               
                                                

           
              


                                            
  

               
                                                    

           
              


                                                
  

               
                                                            

           
              


                                            
  

               
                                                

           
              


                                           
  

               
                                                                           

           
              


                                                                                                               
  

               
                                              

                   
              


                                                        
  
 
                                             
                      
                                                

                 
                     


                                                 
         

               
                                        


              
              


                                          
  

               
                                               

                   
              


                                                              
  

               
                                         


                   
              



                                        
  

               
                                                



            
              


                                           
  

               
                                                

            
              


                               
  

               
                                               

            
              



                               
  

               
                                                   

                
              



                                   
  

               
                                             

               
              



                             
  

               
                                                

             
              


                                          
  

               
                                                 

       
              


                                           
  

               
                                      

        
              



                            
  

               
                                     



        
              





                            
  

               
                                           

                   
              


                                                        
  

               
                                                 

                         
              


                                                                     
  

               
                                           

                   
              


                                                        
  

               
                                          


                   
              



                                                    
  

               
                                         

                   
              


                                                        
  

               
                                               

                         
              


                                                                     
  

               
                                                 

                         
              


                                                                       
  

               
                                               

           
              


                                                
  

               
                                         

                   
              


                                                        
  

               
                                             

           
              


                                              
  

               
                                          

                   
              


                            
  

               
                                                

       
              


                                            
  

               
                                              


            
              


                                           
  

               
                                           

            
              


                                           
  

               
                                           

            
              


                                      
  

               
                                                     

            
              


                                                       
  

               
                                                   

           
              


                                               
  

               
                                                   


            
              


                                                                  
  

               
                                                   


            
              


                                                
  

               

                                                        


                                                              
  

               
                                                

                                       
              


                                                                                    
  

               

                                                              


                                                     
  

               

                                                             


                                                     
  

               
                                                  

                                       
              


                                                                                    
  

               
                                                        

                                    
              


                                                                                    
  

               

                                                     


                                                     
  

               

                                                                                 


                                                                                   
  

               

                                                 


                                               
  

               

                                             


                                             
  

               
                                               

           
              


                                                
  

               
                                               

           
              


                                                
  

               
                                            

                   
              


                                                              
  

               
                                                  

                         
              


                                                                  
  

               
                                            

                   
              


                                                              
  

               
                                           


                   
              



                                                          
  

               
                                          

                   
              


                                                              
  

               
                                                

                         
              


                                                                  
  

               
                                            

                     
              



                                      
  

               
                                          

                   
              


                                                              
  

               
                                           

                   
              


                             
  

               
                                           

                   
              


                                                         
  

               

                                                        


                                                                       
  

               

                                                                                   


                                                                                                                                             
  

               

                                                            


                                                                               
  

               

                                                        


                                                                       
  

               

                                             


                                                 
  

               

                                                              


                                                                                   
  

               

                                                


                                                       
  

               

                                                        


                                                                       
  

               

                                                            


                                                  
  

               

                                                            


                                                                                     
  

               

                                                         


                                                                                
  

               

                                                                  


                                                                                                  
  

               

                                                           


                                                
  

               

                                      


                                
  

               

                                                      


                                            
  

               

                                           


                                 
  

               

                                                 


                                       
  

               

                                                      


                                      
  

               

                                                       


                                       
  

               

                                                 


                                 
  

               

                                             


                               
  

               
                                             
            
              



                               
  

               
                                                                       
                           
              



                                                   
  

               

                                                                          


                                                          
  

               

                                             


                                         
  

               

                                                   


                                                   
  

               

                                                              


                                                               
  

               
                                         


            
              





                               
  

               

                                                             


                                                   
  

               

                                               


                               
  

               

                                                   


                                                   
  

               
                                                      
                         
              



                                  
  

               

                                                                             


                                                                   
  

               
                                                     

                
              



                                              
  

               

                                                         


                                         
  

               

                                                           


                                           
  

               

                                                       


                                       
  

               

                                                         


                                         
  

               

                                                     


                                     
  

               

                                                 


                                                     
  

               
                                         
   


                         
     






                                        



                                       
  
 








                                              

               
                                         
        


                         
     






                                        



                                       
  

               
                                          
    


                             
     






                                         



                                       
  

               
                                           
     

                                            
     






                                          


                                           
  

               
                                                  
     

                              


                                       
  

               
                                                 
     
              



                                       
  

               

                                        


                                       
  

               

                                         


                                       
  

               

                                            


                                       
  

               

                                             


                                       
  

               
                                       
   
              



                                       
  

               
                                        
    
              



                                       
  

               

                                                   


                                      
  

               

                                                 


                                      
  

               

                                                       


                                       
  
 
//! CommonMark test suite.

// > 👉 **Important**: this module is generated by `build.rs`.
// > It is generate from the latest Unicode data.

extern crate micromark;
use micromark::{micromark_with_options, Options};

const DANGER: &Options = &Options {
    allow_dangerous_html: true,
    allow_dangerous_protocol: true,
    default_line_ending: None,
};

#[rustfmt::skip]
#[test]
fn commonmark() {
    assert_eq!(
        micromark_with_options(r###"	foo	baz		bim
"###, DANGER),
        r###"<pre><code>foo	baz		bim
</code></pre>
"###,
        r###"Tabs (0)"###
);

    assert_eq!(
        micromark_with_options(r###"  	foo	baz		bim
"###, DANGER),
        r###"<pre><code>foo	baz		bim
</code></pre>
"###,
        r###"Tabs (1)"###
);

    assert_eq!(
        micromark_with_options(r###"    a	a
    ὐ	a
"###, DANGER),
        r###"<pre><code>a	a
ὐ	a
</code></pre>
"###,
        r###"Tabs (2)"###
);

    assert_eq!(
        micromark_with_options(r###"  - foo

	bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<p>bar</p>
</li>
</ul>
"###,
        r###"Tabs (3)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo

		bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<pre><code>  bar
</code></pre>
</li>
</ul>
"###,
        r###"Tabs (4)"###
);

    assert_eq!(
        micromark_with_options(r###">		foo
"###, DANGER),
        r###"<blockquote>
<pre><code>  foo
</code></pre>
</blockquote>
"###,
        r###"Tabs (5)"###
);

    assert_eq!(
        micromark_with_options(r###"-		foo
"###, DANGER),
        r###"<ul>
<li>
<pre><code>  foo
</code></pre>
</li>
</ul>
"###,
        r###"Tabs (6)"###
);

    assert_eq!(
        micromark_with_options(r###"    foo
	bar
"###, DANGER),
        r###"<pre><code>foo
bar
</code></pre>
"###,
        r###"Tabs (7)"###
);

    assert_eq!(
        micromark_with_options(r###" - foo
   - bar
	 - baz
"###, DANGER),
        r###"<ul>
<li>foo
<ul>
<li>bar
<ul>
<li>baz</li>
</ul>
</li>
</ul>
</li>
</ul>
"###,
        r###"Tabs (8)"###
);

    assert_eq!(
        micromark_with_options(r###"#	Foo
"###, DANGER),
        r###"<h1>Foo</h1>
"###,
        r###"Tabs (9)"###
);

    assert_eq!(
        micromark_with_options(r###"*	*	*	
"###, DANGER),
        r###"<hr />
"###,
        r###"Tabs (10)"###
);

    assert_eq!(
        micromark_with_options(r###"\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~
"###, DANGER),
        r###"<p>!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\]^_`{|}~</p>
"###,
        r###"Backslash escapes (11)"###
);

    assert_eq!(
        micromark_with_options(r###"\	\A\a\ \3\φ\«
"###, DANGER),
        r###"<p>\	\A\a\ \3\φ\«</p>
"###,
        r###"Backslash escapes (12)"###
);

    assert_eq!(
        micromark_with_options(r###"\*not emphasized*
\<br/> not a tag
\[not a link](/foo)
\`not code`
1\. not a list
\* not a list
\# not a heading
\[foo]: /url "not a reference"
\&ouml; not a character entity
"###, DANGER),
        r###"<p>*not emphasized*
&lt;br/&gt; not a tag
[not a link](/foo)
`not code`
1. not a list
* not a list
# not a heading
[foo]: /url &quot;not a reference&quot;
&amp;ouml; not a character entity</p>
"###,
        r###"Backslash escapes (13)"###
);

    assert_eq!(
        micromark_with_options(r###"\\*emphasis*
"###, DANGER),
        r###"<p>\<em>emphasis</em></p>
"###,
        r###"Backslash escapes (14)"###
);

    assert_eq!(
        micromark_with_options(r###"foo\
bar
"###, DANGER),
        r###"<p>foo<br />
bar</p>
"###,
        r###"Backslash escapes (15)"###
);

    assert_eq!(
        micromark_with_options(r###"`` \[\` ``
"###, DANGER),
        r###"<p><code>\[\`</code></p>
"###,
        r###"Backslash escapes (16)"###
);

    assert_eq!(
        micromark_with_options(r###"    \[\]
"###, DANGER),
        r###"<pre><code>\[\]
</code></pre>
"###,
        r###"Backslash escapes (17)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~
\[\]
~~~
"###, DANGER),
        r###"<pre><code>\[\]
</code></pre>
"###,
        r###"Backslash escapes (18)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://example.com?find=\*>
"###, DANGER),
        r###"<p><a href="http://example.com?find=%5C*">http://example.com?find=\*</a></p>
"###,
        r###"Backslash escapes (19)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="/bar\/)">
"###, DANGER),
        r###"<a href="/bar\/)">
"###,
        r###"Backslash escapes (20)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo](/bar\* "ti\*tle")
"###, DANGER),
        r###"<p><a href="/bar*" title="ti*tle">foo</a></p>
"###,
        r###"Backslash escapes (21)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]

[foo]: /bar\* "ti\*tle"
"###, DANGER),
        r###"<p><a href="/bar*" title="ti*tle">foo</a></p>
"###,
        r###"Backslash escapes (22)"###
);

    assert_eq!(
        micromark_with_options(r###"``` foo\+bar
foo
```
"###, DANGER),
        r###"<pre><code class="language-foo+bar">foo
</code></pre>
"###,
        r###"Backslash escapes (23)"###
);

    assert_eq!(
        micromark_with_options(r###"&nbsp; &amp; &copy; &AElig; &Dcaron;
&frac34; &HilbertSpace; &DifferentialD;
&ClockwiseContourIntegral; &ngE;
"###, DANGER),
        r###"<p>  &amp; © Æ Ď
¾ ℋ ⅆ
∲ ≧̸</p>
"###,
        r###"Entity and numeric character references (24)"###
);

    assert_eq!(
        micromark_with_options(r###"&#35; &#1234; &#992; &#0;
"###, DANGER),
        r###"<p># Ӓ Ϡ �</p>
"###,
        r###"Entity and numeric character references (25)"###
);

    assert_eq!(
        micromark_with_options(r###"&#X22; &#XD06; &#xcab;
"###, DANGER),
        r###"<p>&quot; ആ ಫ</p>
"###,
        r###"Entity and numeric character references (26)"###
);

    assert_eq!(
        micromark_with_options(r###"&nbsp &x; &#; &#x;
&#87654321;
&#abcdef0;
&ThisIsNotDefined; &hi?;
"###, DANGER),
        r###"<p>&amp;nbsp &amp;x; &amp;#; &amp;#x;
&amp;#87654321;
&amp;#abcdef0;
&amp;ThisIsNotDefined; &amp;hi?;</p>
"###,
        r###"Entity and numeric character references (27)"###
);

    assert_eq!(
        micromark_with_options(r###"&copy
"###, DANGER),
        r###"<p>&amp;copy</p>
"###,
        r###"Entity and numeric character references (28)"###
);

    assert_eq!(
        micromark_with_options(r###"&MadeUpEntity;
"###, DANGER),
        r###"<p>&amp;MadeUpEntity;</p>
"###,
        r###"Entity and numeric character references (29)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="&ouml;&ouml;.html">
"###, DANGER),
        r###"<a href="&ouml;&ouml;.html">
"###,
        r###"Entity and numeric character references (30)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo](/f&ouml;&ouml; "f&ouml;&ouml;")
"###, DANGER),
        r###"<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
"###,
        r###"Entity and numeric character references (31)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]

[foo]: /f&ouml;&ouml; "f&ouml;&ouml;"
"###, DANGER),
        r###"<p><a href="/f%C3%B6%C3%B6" title="föö">foo</a></p>
"###,
        r###"Entity and numeric character references (32)"###
);

    assert_eq!(
        micromark_with_options(r###"``` f&ouml;&ouml;
foo
```
"###, DANGER),
        r###"<pre><code class="language-föö">foo
</code></pre>
"###,
        r###"Entity and numeric character references (33)"###
);

    assert_eq!(
        micromark_with_options(r###"`f&ouml;&ouml;`
"###, DANGER),
        r###"<p><code>f&amp;ouml;&amp;ouml;</code></p>
"###,
        r###"Entity and numeric character references (34)"###
);

    assert_eq!(
        micromark_with_options(r###"    f&ouml;f&ouml;
"###, DANGER),
        r###"<pre><code>f&amp;ouml;f&amp;ouml;
</code></pre>
"###,
        r###"Entity and numeric character references (35)"###
);

    assert_eq!(
        micromark_with_options(r###"&#42;foo&#42;
*foo*
"###, DANGER),
        r###"<p>*foo*
<em>foo</em></p>
"###,
        r###"Entity and numeric character references (36)"###
);

    assert_eq!(
        micromark_with_options(r###"&#42; foo

* foo
"###, DANGER),
        r###"<p>* foo</p>
<ul>
<li>foo</li>
</ul>
"###,
        r###"Entity and numeric character references (37)"###
);

    assert_eq!(
        micromark_with_options(r###"foo&#10;&#10;bar
"###, DANGER),
        r###"<p>foo

bar</p>
"###,
        r###"Entity and numeric character references (38)"###
);

    assert_eq!(
        micromark_with_options(r###"&#9;foo
"###, DANGER),
        r###"<p>	foo</p>
"###,
        r###"Entity and numeric character references (39)"###
);

    assert_eq!(
        micromark_with_options(r###"[a](url &quot;tit&quot;)
"###, DANGER),
        r###"<p>[a](url &quot;tit&quot;)</p>
"###,
        r###"Entity and numeric character references (40)"###
);

    assert_eq!(
        micromark_with_options(r###"- `one
- two`
"###, DANGER),
        r###"<ul>
<li>`one</li>
<li>two`</li>
</ul>
"###,
        r###"Precedence (41)"###
);

    assert_eq!(
        micromark_with_options(r###"***
---
___
"###, DANGER),
        r###"<hr />
<hr />
<hr />
"###,
        r###"Thematic breaks (42)"###
);

    assert_eq!(
        micromark_with_options(r###"+++
"###, DANGER),
        r###"<p>+++</p>
"###,
        r###"Thematic breaks (43)"###
);

    assert_eq!(
        micromark_with_options(r###"===
"###, DANGER),
        r###"<p>===</p>
"###,
        r###"Thematic breaks (44)"###
);

    assert_eq!(
        micromark_with_options(r###"--
**
__
"###, DANGER),
        r###"<p>--
**
__</p>
"###,
        r###"Thematic breaks (45)"###
);

    assert_eq!(
        micromark_with_options(r###" ***
  ***
   ***
"###, DANGER),
        r###"<hr />
<hr />
<hr />
"###,
        r###"Thematic breaks (46)"###
);

    assert_eq!(
        micromark_with_options(r###"    ***
"###, DANGER),
        r###"<pre><code>***
</code></pre>
"###,
        r###"Thematic breaks (47)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
    ***
"###, DANGER),
        r###"<p>Foo
***</p>
"###,
        r###"Thematic breaks (48)"###
);

    assert_eq!(
        micromark_with_options(r###"_____________________________________
"###, DANGER),
        r###"<hr />
"###,
        r###"Thematic breaks (49)"###
);

    assert_eq!(
        micromark_with_options(r###" - - -
"###, DANGER),
        r###"<hr />
"###,
        r###"Thematic breaks (50)"###
);

    assert_eq!(
        micromark_with_options(r###" **  * ** * ** * **
"###, DANGER),
        r###"<hr />
"###,
        r###"Thematic breaks (51)"###
);

    assert_eq!(
        micromark_with_options(r###"-     -      -      -
"###, DANGER),
        r###"<hr />
"###,
        r###"Thematic breaks (52)"###
);

    assert_eq!(
        micromark_with_options(r###"- - - -    
"###, DANGER),
        r###"<hr />
"###,
        r###"Thematic breaks (53)"###
);

    assert_eq!(
        micromark_with_options(r###"_ _ _ _ a

a------

---a---
"###, DANGER),
        r###"<p>_ _ _ _ a</p>
<p>a------</p>
<p>---a---</p>
"###,
        r###"Thematic breaks (54)"###
);

    assert_eq!(
        micromark_with_options(r###" *-*
"###, DANGER),
        r###"<p><em>-</em></p>
"###,
        r###"Thematic breaks (55)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
***
- bar
"###, DANGER),
        r###"<ul>
<li>foo</li>
</ul>
<hr />
<ul>
<li>bar</li>
</ul>
"###,
        r###"Thematic breaks (56)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
***
bar
"###, DANGER),
        r###"<p>Foo</p>
<hr />
<p>bar</p>
"###,
        r###"Thematic breaks (57)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
---
bar
"###, DANGER),
        r###"<h2>Foo</h2>
<p>bar</p>
"###,
        r###"Thematic breaks (58)"###
);

    assert_eq!(
        micromark_with_options(r###"* Foo
* * *
* Bar
"###, DANGER),
        r###"<ul>
<li>Foo</li>
</ul>
<hr />
<ul>
<li>Bar</li>
</ul>
"###,
        r###"Thematic breaks (59)"###
);

    assert_eq!(
        micromark_with_options(r###"- Foo
- * * *
"###, DANGER),
        r###"<ul>
<li>Foo</li>
<li>
<hr />
</li>
</ul>
"###,
        r###"Thematic breaks (60)"###
);

    assert_eq!(
        micromark_with_options(r###"# foo
## foo
### foo
#### foo
##### foo
###### foo
"###, DANGER),
        r###"<h1>foo</h1>
<h2>foo</h2>
<h3>foo</h3>
<h4>foo</h4>
<h5>foo</h5>
<h6>foo</h6>
"###,
        r###"ATX headings (61)"###
);

    assert_eq!(
        micromark_with_options(r###"####### foo
"###, DANGER),
        r###"<p>####### foo</p>
"###,
        r###"ATX headings (62)"###
);

    assert_eq!(
        micromark_with_options(r###"#5 bolt

#hashtag
"###, DANGER),
        r###"<p>#5 bolt</p>
<p>#hashtag</p>
"###,
        r###"ATX headings (63)"###
);

    assert_eq!(
        micromark_with_options(r###"\## foo
"###, DANGER),
        r###"<p>## foo</p>
"###,
        r###"ATX headings (64)"###
);

    assert_eq!(
        micromark_with_options(r###"# foo *bar* \*baz\*
"###, DANGER),
        r###"<h1>foo <em>bar</em> *baz*</h1>
"###,
        r###"ATX headings (65)"###
);

    assert_eq!(
        micromark_with_options(r###"#                  foo                     
"###, DANGER),
        r###"<h1>foo</h1>
"###,
        r###"ATX headings (66)"###
);

    assert_eq!(
        micromark_with_options(r###" ### foo
  ## foo
   # foo
"###, DANGER),
        r###"<h3>foo</h3>
<h2>foo</h2>
<h1>foo</h1>
"###,
        r###"ATX headings (67)"###
);

    assert_eq!(
        micromark_with_options(r###"    # foo
"###, DANGER),
        r###"<pre><code># foo
</code></pre>
"###,
        r###"ATX headings (68)"###
);

    assert_eq!(
        micromark_with_options(r###"foo
    # bar
"###, DANGER),
        r###"<p>foo
# bar</p>
"###,
        r###"ATX headings (69)"###
);

    assert_eq!(
        micromark_with_options(r###"## foo ##
  ###   bar    ###
"###, DANGER),
        r###"<h2>foo</h2>
<h3>bar</h3>
"###,
        r###"ATX headings (70)"###
);

    assert_eq!(
        micromark_with_options(r###"# foo ##################################
##### foo ##
"###, DANGER),
        r###"<h1>foo</h1>
<h5>foo</h5>
"###,
        r###"ATX headings (71)"###
);

    assert_eq!(
        micromark_with_options(r###"### foo ###     
"###, DANGER),
        r###"<h3>foo</h3>
"###,
        r###"ATX headings (72)"###
);

    assert_eq!(
        micromark_with_options(r###"### foo ### b
"###, DANGER),
        r###"<h3>foo ### b</h3>
"###,
        r###"ATX headings (73)"###
);

    assert_eq!(
        micromark_with_options(r###"# foo#
"###, DANGER),
        r###"<h1>foo#</h1>
"###,
        r###"ATX headings (74)"###
);

    assert_eq!(
        micromark_with_options(r###"### foo \###
## foo #\##
# foo \#
"###, DANGER),
        r###"<h3>foo ###</h3>
<h2>foo ###</h2>
<h1>foo #</h1>
"###,
        r###"ATX headings (75)"###
);

    assert_eq!(
        micromark_with_options(r###"****
## foo
****
"###, DANGER),
        r###"<hr />
<h2>foo</h2>
<hr />
"###,
        r###"ATX headings (76)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo bar
# baz
Bar foo
"###, DANGER),
        r###"<p>Foo bar</p>
<h1>baz</h1>
<p>Bar foo</p>
"###,
        r###"ATX headings (77)"###
);

    assert_eq!(
        micromark_with_options(r###"## 
#
### ###
"###, DANGER),
        r###"<h2></h2>
<h1></h1>
<h3></h3>
"###,
        r###"ATX headings (78)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo *bar*
=========

Foo *bar*
---------
"###, DANGER),
        r###"<h1>Foo <em>bar</em></h1>
<h2>Foo <em>bar</em></h2>
"###,
        r###"Setext headings (79)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo *bar
baz*
====
"###, DANGER),
        r###"<h1>Foo <em>bar
baz</em></h1>
"###,
        r###"Setext headings (80)"###
);

    assert_eq!(
        micromark_with_options(r###"  Foo *bar
baz*	
====
"###, DANGER),
        r###"<h1>Foo <em>bar
baz</em></h1>
"###,
        r###"Setext headings (81)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
-------------------------

Foo
=
"###, DANGER),
        r###"<h2>Foo</h2>
<h1>Foo</h1>
"###,
        r###"Setext headings (82)"###
);

    assert_eq!(
        micromark_with_options(r###"   Foo
---

  Foo
-----

  Foo
  ===
"###, DANGER),
        r###"<h2>Foo</h2>
<h2>Foo</h2>
<h1>Foo</h1>
"###,
        r###"Setext headings (83)"###
);

    assert_eq!(
        micromark_with_options(r###"    Foo
    ---

    Foo
---
"###, DANGER),
        r###"<pre><code>Foo
---

Foo
</code></pre>
<hr />
"###,
        r###"Setext headings (84)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
   ----      
"###, DANGER),
        r###"<h2>Foo</h2>
"###,
        r###"Setext headings (85)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
    ---
"###, DANGER),
        r###"<p>Foo
---</p>
"###,
        r###"Setext headings (86)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
= =

Foo
--- -
"###, DANGER),
        r###"<p>Foo
= =</p>
<p>Foo</p>
<hr />
"###,
        r###"Setext headings (87)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo  
-----
"###, DANGER),
        r###"<h2>Foo</h2>
"###,
        r###"Setext headings (88)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo\
----
"###, DANGER),
        r###"<h2>Foo\</h2>
"###,
        r###"Setext headings (89)"###
);

    assert_eq!(
        micromark_with_options(r###"`Foo
----
`

<a title="a lot
---
of dashes"/>
"###, DANGER),
        r###"<h2>`Foo</h2>
<p>`</p>
<h2>&lt;a title=&quot;a lot</h2>
<p>of dashes&quot;/&gt;</p>
"###,
        r###"Setext headings (90)"###
);

    assert_eq!(
        micromark_with_options(r###"> Foo
---
"###, DANGER),
        r###"<blockquote>
<p>Foo</p>
</blockquote>
<hr />
"###,
        r###"Setext headings (91)"###
);

// To do: some interruption bug.
//     assert_eq!(
//         micromark_with_options(r###"> foo
// bar
// ===
// "###, DANGER),
//         r###"<blockquote>
// <p>foo
// bar
// ===</p>
// </blockquote>
// "###,
//         r###"Setext headings (92)"###
// );

    assert_eq!(
        micromark_with_options(r###"- Foo
---
"###, DANGER),
        r###"<ul>
<li>Foo</li>
</ul>
<hr />
"###,
        r###"Setext headings (93)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
Bar
---
"###, DANGER),
        r###"<h2>Foo
Bar</h2>
"###,
        r###"Setext headings (94)"###
);

    assert_eq!(
        micromark_with_options(r###"---
Foo
---
Bar
---
Baz
"###, DANGER),
        r###"<hr />
<h2>Foo</h2>
<h2>Bar</h2>
<p>Baz</p>
"###,
        r###"Setext headings (95)"###
);

    assert_eq!(
        micromark_with_options(r###"
====
"###, DANGER),
        r###"<p>====</p>
"###,
        r###"Setext headings (96)"###
);

    assert_eq!(
        micromark_with_options(r###"---
---
"###, DANGER),
        r###"<hr />
<hr />
"###,
        r###"Setext headings (97)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
-----
"###, DANGER),
        r###"<ul>
<li>foo</li>
</ul>
<hr />
"###,
        r###"Setext headings (98)"###
);

    assert_eq!(
        micromark_with_options(r###"    foo
---
"###, DANGER),
        r###"<pre><code>foo
</code></pre>
<hr />
"###,
        r###"Setext headings (99)"###
);

    assert_eq!(
        micromark_with_options(r###"> foo
-----
"###, DANGER),
        r###"<blockquote>
<p>foo</p>
</blockquote>
<hr />
"###,
        r###"Setext headings (100)"###
);

    assert_eq!(
        micromark_with_options(r###"\> foo
------
"###, DANGER),
        r###"<h2>&gt; foo</h2>
"###,
        r###"Setext headings (101)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo

bar
---
baz
"###, DANGER),
        r###"<p>Foo</p>
<h2>bar</h2>
<p>baz</p>
"###,
        r###"Setext headings (102)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
bar

---

baz
"###, DANGER),
        r###"<p>Foo
bar</p>
<hr />
<p>baz</p>
"###,
        r###"Setext headings (103)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
bar
* * *
baz
"###, DANGER),
        r###"<p>Foo
bar</p>
<hr />
<p>baz</p>
"###,
        r###"Setext headings (104)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
bar
\---
baz
"###, DANGER),
        r###"<p>Foo
bar
---
baz</p>
"###,
        r###"Setext headings (105)"###
);

    assert_eq!(
        micromark_with_options(r###"    a simple
      indented code block
"###, DANGER),
        r###"<pre><code>a simple
  indented code block
</code></pre>
"###,
        r###"Indented code blocks (106)"###
);

    assert_eq!(
        micromark_with_options(r###"  - foo

    bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<p>bar</p>
</li>
</ul>
"###,
        r###"Indented code blocks (107)"###
);

    assert_eq!(
        micromark_with_options(r###"1.  foo

    - bar
"###, DANGER),
        r###"<ol>
<li>
<p>foo</p>
<ul>
<li>bar</li>
</ul>
</li>
</ol>
"###,
        r###"Indented code blocks (108)"###
);

    assert_eq!(
        micromark_with_options(r###"    <a/>
    *hi*

    - one
"###, DANGER),
        r###"<pre><code>&lt;a/&gt;
*hi*

- one
</code></pre>
"###,
        r###"Indented code blocks (109)"###
);

    assert_eq!(
        micromark_with_options(r###"    chunk1

    chunk2
  
 
 
    chunk3
"###, DANGER),
        r###"<pre><code>chunk1

chunk2



chunk3
</code></pre>
"###,
        r###"Indented code blocks (110)"###
);

    assert_eq!(
        micromark_with_options(r###"    chunk1
      
      chunk2
"###, DANGER),
        r###"<pre><code>chunk1
  
  chunk2
</code></pre>
"###,
        r###"Indented code blocks (111)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
    bar

"###, DANGER),
        r###"<p>Foo
bar</p>
"###,
        r###"Indented code blocks (112)"###
);

    assert_eq!(
        micromark_with_options(r###"    foo
bar
"###, DANGER),
        r###"<pre><code>foo
</code></pre>
<p>bar</p>
"###,
        r###"Indented code blocks (113)"###
);

    assert_eq!(
        micromark_with_options(r###"# Heading
    foo
Heading
------
    foo
----
"###, DANGER),
        r###"<h1>Heading</h1>
<pre><code>foo
</code></pre>
<h2>Heading</h2>
<pre><code>foo
</code></pre>
<hr />
"###,
        r###"Indented code blocks (114)"###
);

    assert_eq!(
        micromark_with_options(r###"        foo
    bar
"###, DANGER),
        r###"<pre><code>    foo
bar
</code></pre>
"###,
        r###"Indented code blocks (115)"###
);

    assert_eq!(
        micromark_with_options(r###"
    
    foo
    

"###, DANGER),
        r###"<pre><code>foo
</code></pre>
"###,
        r###"Indented code blocks (116)"###
);

    assert_eq!(
        micromark_with_options(r###"    foo  
"###, DANGER),
        r###"<pre><code>foo  
</code></pre>
"###,
        r###"Indented code blocks (117)"###
);

    assert_eq!(
        micromark_with_options(r###"```
<
 >
```
"###, DANGER),
        r###"<pre><code>&lt;
 &gt;
</code></pre>
"###,
        r###"Fenced code blocks (118)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~
<
 >
~~~
"###, DANGER),
        r###"<pre><code>&lt;
 &gt;
</code></pre>
"###,
        r###"Fenced code blocks (119)"###
);

    assert_eq!(
        micromark_with_options(r###"``
foo
``
"###, DANGER),
        r###"<p><code>foo</code></p>
"###,
        r###"Fenced code blocks (120)"###
);

    assert_eq!(
        micromark_with_options(r###"```
aaa
~~~
```
"###, DANGER),
        r###"<pre><code>aaa
~~~
</code></pre>
"###,
        r###"Fenced code blocks (121)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~
aaa
```
~~~
"###, DANGER),
        r###"<pre><code>aaa
```
</code></pre>
"###,
        r###"Fenced code blocks (122)"###
);

    assert_eq!(
        micromark_with_options(r###"````
aaa
```
``````
"###, DANGER),
        r###"<pre><code>aaa
```
</code></pre>
"###,
        r###"Fenced code blocks (123)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~~
aaa
~~~
~~~~
"###, DANGER),
        r###"<pre><code>aaa
~~~
</code></pre>
"###,
        r###"Fenced code blocks (124)"###
);

    assert_eq!(
        micromark_with_options(r###"```
"###, DANGER),
        r###"<pre><code></code></pre>
"###,
        r###"Fenced code blocks (125)"###
);

    assert_eq!(
        micromark_with_options(r###"`````

```
aaa
"###, DANGER),
        r###"<pre><code>
```
aaa
</code></pre>
"###,
        r###"Fenced code blocks (126)"###
);

    assert_eq!(
        micromark_with_options(r###"> ```
> aaa

bbb
"###, DANGER),
        r###"<blockquote>
<pre><code>aaa
</code></pre>
</blockquote>
<p>bbb</p>
"###,
        r###"Fenced code blocks (127)"###
);

    assert_eq!(
        micromark_with_options(r###"```

  
```
"###, DANGER),
        r###"<pre><code>
  
</code></pre>
"###,
        r###"Fenced code blocks (128)"###
);

    assert_eq!(
        micromark_with_options(r###"```
```
"###, DANGER),
        r###"<pre><code></code></pre>
"###,
        r###"Fenced code blocks (129)"###
);

    assert_eq!(
        micromark_with_options(r###" ```
 aaa
aaa
```
"###, DANGER),
        r###"<pre><code>aaa
aaa
</code></pre>
"###,
        r###"Fenced code blocks (130)"###
);

    assert_eq!(
        micromark_with_options(r###"  ```
aaa
  aaa
aaa
  ```
"###, DANGER),
        r###"<pre><code>aaa
aaa
aaa
</code></pre>
"###,
        r###"Fenced code blocks (131)"###
);

    assert_eq!(
        micromark_with_options(r###"   ```
   aaa
    aaa
  aaa
   ```
"###, DANGER),
        r###"<pre><code>aaa
 aaa
aaa
</code></pre>
"###,
        r###"Fenced code blocks (132)"###
);

    assert_eq!(
        micromark_with_options(r###"    ```
    aaa
    ```
"###, DANGER),
        r###"<pre><code>```
aaa
```
</code></pre>
"###,
        r###"Fenced code blocks (133)"###
);

    assert_eq!(
        micromark_with_options(r###"```
aaa
  ```
"###, DANGER),
        r###"<pre><code>aaa
</code></pre>
"###,
        r###"Fenced code blocks (134)"###
);

    assert_eq!(
        micromark_with_options(r###"   ```
aaa
  ```
"###, DANGER),
        r###"<pre><code>aaa
</code></pre>
"###,
        r###"Fenced code blocks (135)"###
);

    assert_eq!(
        micromark_with_options(r###"```
aaa
    ```
"###, DANGER),
        r###"<pre><code>aaa
    ```
</code></pre>
"###,
        r###"Fenced code blocks (136)"###
);

    assert_eq!(
        micromark_with_options(r###"``` ```
aaa
"###, DANGER),
        r###"<p><code> </code>
aaa</p>
"###,
        r###"Fenced code blocks (137)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~~~~
aaa
~~~ ~~
"###, DANGER),
        r###"<pre><code>aaa
~~~ ~~
</code></pre>
"###,
        r###"Fenced code blocks (138)"###
);

    assert_eq!(
        micromark_with_options(r###"foo
```
bar
```
baz
"###, DANGER),
        r###"<p>foo</p>
<pre><code>bar
</code></pre>
<p>baz</p>
"###,
        r###"Fenced code blocks (139)"###
);

    assert_eq!(
        micromark_with_options(r###"foo
---
~~~
bar
~~~
# baz
"###, DANGER),
        r###"<h2>foo</h2>
<pre><code>bar
</code></pre>
<h1>baz</h1>
"###,
        r###"Fenced code blocks (140)"###
);

    assert_eq!(
        micromark_with_options(r###"```ruby
def foo(x)
  return 3
end
```
"###, DANGER),
        r###"<pre><code class="language-ruby">def foo(x)
  return 3
end
</code></pre>
"###,
        r###"Fenced code blocks (141)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~~    ruby startline=3 $%@#$
def foo(x)
  return 3
end
~~~~~~~
"###, DANGER),
        r###"<pre><code class="language-ruby">def foo(x)
  return 3
end
</code></pre>
"###,
        r###"Fenced code blocks (142)"###
);

    assert_eq!(
        micromark_with_options(r###"````;
````
"###, DANGER),
        r###"<pre><code class="language-;"></code></pre>
"###,
        r###"Fenced code blocks (143)"###
);

    assert_eq!(
        micromark_with_options(r###"``` aa ```
foo
"###, DANGER),
        r###"<p><code>aa</code>
foo</p>
"###,
        r###"Fenced code blocks (144)"###
);

    assert_eq!(
        micromark_with_options(r###"~~~ aa ``` ~~~
foo
~~~
"###, DANGER),
        r###"<pre><code class="language-aa">foo
</code></pre>
"###,
        r###"Fenced code blocks (145)"###
);

    assert_eq!(
        micromark_with_options(r###"```
``` aaa
```
"###, DANGER),
        r###"<pre><code>``` aaa
</code></pre>
"###,
        r###"Fenced code blocks (146)"###
);

    assert_eq!(
        micromark_with_options(r###"<table><tr><td>
<pre>
**Hello**,

_world_.
</pre>
</td></tr></table>
"###, DANGER),
        r###"<table><tr><td>
<pre>
**Hello**,
<p><em>world</em>.
</pre></p>
</td></tr></table>
"###,
        r###"HTML blocks (147)"###
);

    assert_eq!(
        micromark_with_options(r###"<table>
  <tr>
    <td>
           hi
    </td>
  </tr>
</table>

okay.
"###, DANGER),
        r###"<table>
  <tr>
    <td>
           hi
    </td>
  </tr>
</table>
<p>okay.</p>
"###,
        r###"HTML blocks (148)"###
);

    assert_eq!(
        micromark_with_options(r###" <div>
  *hello*
         <foo><a>
"###, DANGER),
        r###" <div>
  *hello*
         <foo><a>
"###,
        r###"HTML blocks (149)"###
);

    assert_eq!(
        micromark_with_options(r###"</div>
*foo*
"###, DANGER),
        r###"</div>
*foo*
"###,
        r###"HTML blocks (150)"###
);

    assert_eq!(
        micromark_with_options(r###"<DIV CLASS="foo">

*Markdown*

</DIV>
"###, DANGER),
        r###"<DIV CLASS="foo">
<p><em>Markdown</em></p>
</DIV>
"###,
        r###"HTML blocks (151)"###
);

    assert_eq!(
        micromark_with_options(r###"<div id="foo"
  class="bar">
</div>
"###, DANGER),
        r###"<div id="foo"
  class="bar">
</div>
"###,
        r###"HTML blocks (152)"###
);

    assert_eq!(
        micromark_with_options(r###"<div id="foo" class="bar
  baz">
</div>
"###, DANGER),
        r###"<div id="foo" class="bar
  baz">
</div>
"###,
        r###"HTML blocks (153)"###
);

    assert_eq!(
        micromark_with_options(r###"<div>
*foo*

*bar*
"###, DANGER),
        r###"<div>
*foo*
<p><em>bar</em></p>
"###,
        r###"HTML blocks (154)"###
);

    assert_eq!(
        micromark_with_options(r###"<div id="foo"
*hi*
"###, DANGER),
        r###"<div id="foo"
*hi*
"###,
        r###"HTML blocks (155)"###
);

    assert_eq!(
        micromark_with_options(r###"<div class
foo
"###, DANGER),
        r###"<div class
foo
"###,
        r###"HTML blocks (156)"###
);

    assert_eq!(
        micromark_with_options(r###"<div *???-&&&-<---
*foo*
"###, DANGER),
        r###"<div *???-&&&-<---
*foo*
"###,
        r###"HTML blocks (157)"###
);

    assert_eq!(
        micromark_with_options(r###"<div><a href="bar">*foo*</a></div>
"###, DANGER),
        r###"<div><a href="bar">*foo*</a></div>
"###,
        r###"HTML blocks (158)"###
);

    assert_eq!(
        micromark_with_options(r###"<table><tr><td>
foo
</td></tr></table>
"###, DANGER),
        r###"<table><tr><td>
foo
</td></tr></table>
"###,
        r###"HTML blocks (159)"###
);

    assert_eq!(
        micromark_with_options(r###"<div></div>
``` c
int x = 33;
```
"###, DANGER),
        r###"<div></div>
``` c
int x = 33;
```
"###,
        r###"HTML blocks (160)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="foo">
*bar*
</a>
"###, DANGER),
        r###"<a href="foo">
*bar*
</a>
"###,
        r###"HTML blocks (161)"###
);

    assert_eq!(
        micromark_with_options(r###"<Warning>
*bar*
</Warning>
"###, DANGER),
        r###"<Warning>
*bar*
</Warning>
"###,
        r###"HTML blocks (162)"###
);

    assert_eq!(
        micromark_with_options(r###"<i class="foo">
*bar*
</i>
"###, DANGER),
        r###"<i class="foo">
*bar*
</i>
"###,
        r###"HTML blocks (163)"###
);

    assert_eq!(
        micromark_with_options(r###"</ins>
*bar*
"###, DANGER),
        r###"</ins>
*bar*
"###,
        r###"HTML blocks (164)"###
);

    assert_eq!(
        micromark_with_options(r###"<del>
*foo*
</del>
"###, DANGER),
        r###"<del>
*foo*
</del>
"###,
        r###"HTML blocks (165)"###
);

    assert_eq!(
        micromark_with_options(r###"<del>

*foo*

</del>
"###, DANGER),
        r###"<del>
<p><em>foo</em></p>
</del>
"###,
        r###"HTML blocks (166)"###
);

    assert_eq!(
        micromark_with_options(r###"<del>*foo*</del>
"###, DANGER),
        r###"<p><del><em>foo</em></del></p>
"###,
        r###"HTML blocks (167)"###
);

    assert_eq!(
        micromark_with_options(r###"<pre language="haskell"><code>
import Text.HTML.TagSoup

main :: IO ()
main = print $ parseTags tags
</code></pre>
okay
"###, DANGER),
        r###"<pre language="haskell"><code>
import Text.HTML.TagSoup

main :: IO ()
main = print $ parseTags tags
</code></pre>
<p>okay</p>
"###,
        r###"HTML blocks (168)"###
);

    assert_eq!(
        micromark_with_options(r###"<script type="text/javascript">
// JavaScript example

document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
okay
"###, DANGER),
        r###"<script type="text/javascript">
// JavaScript example

document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
<p>okay</p>
"###,
        r###"HTML blocks (169)"###
);

    assert_eq!(
        micromark_with_options(r###"<textarea>

*foo*

_bar_

</textarea>
"###, DANGER),
        r###"<textarea>

*foo*

_bar_

</textarea>
"###,
        r###"HTML blocks (170)"###
);

    assert_eq!(
        micromark_with_options(r###"<style
  type="text/css">
h1 {color:red;}

p {color:blue;}
</style>
okay
"###, DANGER),
        r###"<style
  type="text/css">
h1 {color:red;}

p {color:blue;}
</style>
<p>okay</p>
"###,
        r###"HTML blocks (171)"###
);

    assert_eq!(
        micromark_with_options(r###"<style
  type="text/css">

foo
"###, DANGER),
        r###"<style
  type="text/css">

foo
"###,
        r###"HTML blocks (172)"###
);

    assert_eq!(
        micromark_with_options(r###"> <div>
> foo

bar
"###, DANGER),
        r###"<blockquote>
<div>
foo
</blockquote>
<p>bar</p>
"###,
        r###"HTML blocks (173)"###
);

    assert_eq!(
        micromark_with_options(r###"- <div>
- foo
"###, DANGER),
        r###"<ul>
<li>
<div>
</li>
<li>foo</li>
</ul>
"###,
        r###"HTML blocks (174)"###
);

    assert_eq!(
        micromark_with_options(r###"<style>p{color:red;}</style>
*foo*
"###, DANGER),
        r###"<style>p{color:red;}</style>
<p><em>foo</em></p>
"###,
        r###"HTML blocks (175)"###
);

    assert_eq!(
        micromark_with_options(r###"<!-- foo -->*bar*
*baz*
"###, DANGER),
        r###"<!-- foo -->*bar*
<p><em>baz</em></p>
"###,
        r###"HTML blocks (176)"###
);

    assert_eq!(
        micromark_with_options(r###"<script>
foo
</script>1. *bar*
"###, DANGER),
        r###"<script>
foo
</script>1. *bar*
"###,
        r###"HTML blocks (177)"###
);

    assert_eq!(
        micromark_with_options(r###"<!-- Foo

bar
   baz -->
okay
"###, DANGER),
        r###"<!-- Foo

bar
   baz -->
<p>okay</p>
"###,
        r###"HTML blocks (178)"###
);

    assert_eq!(
        micromark_with_options(r###"<?php

  echo '>';

?>
okay
"###, DANGER),
        r###"<?php

  echo '>';

?>
<p>okay</p>
"###,
        r###"HTML blocks (179)"###
);

    assert_eq!(
        micromark_with_options(r###"<!DOCTYPE html>
"###, DANGER),
        r###"<!DOCTYPE html>
"###,
        r###"HTML blocks (180)"###
);

    assert_eq!(
        micromark_with_options(r###"<![CDATA[
function matchwo(a,b)
{
  if (a < b && a < 0) then {
    return 1;

  } else {

    return 0;
  }
}
]]>
okay
"###, DANGER),
        r###"<![CDATA[
function matchwo(a,b)
{
  if (a < b && a < 0) then {
    return 1;

  } else {

    return 0;
  }
}
]]>
<p>okay</p>
"###,
        r###"HTML blocks (181)"###
);

    assert_eq!(
        micromark_with_options(r###"  <!-- foo -->

    <!-- foo -->
"###, DANGER),
        r###"  <!-- foo -->
<pre><code>&lt;!-- foo --&gt;
</code></pre>
"###,
        r###"HTML blocks (182)"###
);

    assert_eq!(
        micromark_with_options(r###"  <div>

    <div>
"###, DANGER),
        r###"  <div>
<pre><code>&lt;div&gt;
</code></pre>
"###,
        r###"HTML blocks (183)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
<div>
bar
</div>
"###, DANGER),
        r###"<p>Foo</p>
<div>
bar
</div>
"###,
        r###"HTML blocks (184)"###
);

    assert_eq!(
        micromark_with_options(r###"<div>
bar
</div>
*foo*
"###, DANGER),
        r###"<div>
bar
</div>
*foo*
"###,
        r###"HTML blocks (185)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
<a href="bar">
baz
"###, DANGER),
        r###"<p>Foo
<a href="bar">
baz</p>
"###,
        r###"HTML blocks (186)"###
);

    assert_eq!(
        micromark_with_options(r###"<div>

*Emphasized* text.

</div>
"###, DANGER),
        r###"<div>
<p><em>Emphasized</em> text.</p>
</div>
"###,
        r###"HTML blocks (187)"###
);

    assert_eq!(
        micromark_with_options(r###"<div>
*Emphasized* text.
</div>
"###, DANGER),
        r###"<div>
*Emphasized* text.
</div>
"###,
        r###"HTML blocks (188)"###
);

    assert_eq!(
        micromark_with_options(r###"<table>

<tr>

<td>
Hi
</td>

</tr>

</table>
"###, DANGER),
        r###"<table>
<tr>
<td>
Hi
</td>
</tr>
</table>
"###,
        r###"HTML blocks (189)"###
);

    assert_eq!(
        micromark_with_options(r###"<table>

  <tr>

    <td>
      Hi
    </td>

  </tr>

</table>
"###, DANGER),
        r###"<table>
  <tr>
<pre><code>&lt;td&gt;
  Hi
&lt;/td&gt;
</code></pre>
  </tr>
</table>
"###,
        r###"HTML blocks (190)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url "title"

[foo]
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a></p>
"###,
        r###"Link reference definitions (191)"###
);

    assert_eq!(
        micromark_with_options(r###"   [foo]: 
      /url  
           'the title'  

[foo]
"###, DANGER),
        r###"<p><a href="/url" title="the title">foo</a></p>
"###,
        r###"Link reference definitions (192)"###
);

    assert_eq!(
        micromark_with_options(r###"[Foo*bar\]]:my_(url) 'title (with parens)'

[Foo*bar\]]
"###, DANGER),
        r###"<p><a href="my_(url)" title="title (with parens)">Foo*bar]</a></p>
"###,
        r###"Link reference definitions (193)"###
);

    assert_eq!(
        micromark_with_options(r###"[Foo bar]:
<my url>
'title'

[Foo bar]
"###, DANGER),
        r###"<p><a href="my%20url" title="title">Foo bar</a></p>
"###,
        r###"Link reference definitions (194)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url '
title
line1
line2
'

[foo]
"###, DANGER),
        r###"<p><a href="/url" title="
title
line1
line2
">foo</a></p>
"###,
        r###"Link reference definitions (195)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url 'title

with blank line'

[foo]
"###, DANGER),
        r###"<p>[foo]: /url 'title</p>
<p>with blank line'</p>
<p>[foo]</p>
"###,
        r###"Link reference definitions (196)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]:
/url

[foo]
"###, DANGER),
        r###"<p><a href="/url">foo</a></p>
"###,
        r###"Link reference definitions (197)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]:

[foo]
"###, DANGER),
        r###"<p>[foo]:</p>
<p>[foo]</p>
"###,
        r###"Link reference definitions (198)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: <>

[foo]
"###, DANGER),
        r###"<p><a href="">foo</a></p>
"###,
        r###"Link reference definitions (199)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: <bar>(baz)

[foo]
"###, DANGER),
        r###"<p>[foo]: <bar>(baz)</p>
<p>[foo]</p>
"###,
        r###"Link reference definitions (200)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url\bar\*baz "foo\"bar\baz"

[foo]
"###, DANGER),
        r###"<p><a href="/url%5Cbar*baz" title="foo&quot;bar\baz">foo</a></p>
"###,
        r###"Link reference definitions (201)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]

[foo]: url
"###, DANGER),
        r###"<p><a href="url">foo</a></p>
"###,
        r###"Link reference definitions (202)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]

[foo]: first
[foo]: second
"###, DANGER),
        r###"<p><a href="first">foo</a></p>
"###,
        r###"Link reference definitions (203)"###
);

    assert_eq!(
        micromark_with_options(r###"[FOO]: /url

[Foo]
"###, DANGER),
        r###"<p><a href="/url">Foo</a></p>
"###,
        r###"Link reference definitions (204)"###
);

    assert_eq!(
        micromark_with_options(r###"[ΑΓΩ]: /φου

[αγω]
"###, DANGER),
        r###"<p><a href="/%CF%86%CE%BF%CF%85">αγω</a></p>
"###,
        r###"Link reference definitions (205)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url
"###, DANGER),
        r###""###,
        r###"Link reference definitions (206)"###
);

    assert_eq!(
        micromark_with_options(r###"[
foo
]: /url
bar
"###, DANGER),
        r###"<p>bar</p>
"###,
        r###"Link reference definitions (207)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url "title" ok
"###, DANGER),
        r###"<p>[foo]: /url &quot;title&quot; ok</p>
"###,
        r###"Link reference definitions (208)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url
"title" ok
"###, DANGER),
        r###"<p>&quot;title&quot; ok</p>
"###,
        r###"Link reference definitions (209)"###
);

    assert_eq!(
        micromark_with_options(r###"    [foo]: /url "title"

[foo]
"###, DANGER),
        r###"<pre><code>[foo]: /url &quot;title&quot;
</code></pre>
<p>[foo]</p>
"###,
        r###"Link reference definitions (210)"###
);

    assert_eq!(
        micromark_with_options(r###"```
[foo]: /url
```

[foo]
"###, DANGER),
        r###"<pre><code>[foo]: /url
</code></pre>
<p>[foo]</p>
"###,
        r###"Link reference definitions (211)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
[bar]: /baz

[bar]
"###, DANGER),
        r###"<p>Foo
[bar]: /baz</p>
<p>[bar]</p>
"###,
        r###"Link reference definitions (212)"###
);

    assert_eq!(
        micromark_with_options(r###"# [Foo]
[foo]: /url
> bar
"###, DANGER),
        r###"<h1><a href="/url">Foo</a></h1>
<blockquote>
<p>bar</p>
</blockquote>
"###,
        r###"Link reference definitions (213)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url
bar
===
[foo]
"###, DANGER),
        r###"<h1>bar</h1>
<p><a href="/url">foo</a></p>
"###,
        r###"Link reference definitions (214)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url
===
[foo]
"###, DANGER),
        r###"<p>===
<a href="/url">foo</a></p>
"###,
        r###"Link reference definitions (215)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /foo-url "foo"
[bar]: /bar-url
  "bar"
[baz]: /baz-url

[foo],
[bar],
[baz]
"###, DANGER),
        r###"<p><a href="/foo-url" title="foo">foo</a>,
<a href="/bar-url" title="bar">bar</a>,
<a href="/baz-url">baz</a></p>
"###,
        r###"Link reference definitions (216)"###
);

    // To do: eol after definition in otherwise empty block quote.
//     assert_eq!(
//         micromark_with_options(r###"[foo]

// > [foo]: /url
// "###, DANGER),
//         r###"<p><a href="/url">foo</a></p>
// <blockquote>
// </blockquote>
// "###,
//         r###"Link reference definitions (217)"###
// );

    assert_eq!(
        micromark_with_options(r###"aaa

bbb
"###, DANGER),
        r###"<p>aaa</p>
<p>bbb</p>
"###,
        r###"Paragraphs (218)"###
);

    assert_eq!(
        micromark_with_options(r###"aaa
bbb

ccc
ddd
"###, DANGER),
        r###"<p>aaa
bbb</p>
<p>ccc
ddd</p>
"###,
        r###"Paragraphs (219)"###
);

    assert_eq!(
        micromark_with_options(r###"aaa


bbb
"###, DANGER),
        r###"<p>aaa</p>
<p>bbb</p>
"###,
        r###"Paragraphs (220)"###
);

    assert_eq!(
        micromark_with_options(r###"  aaa
 bbb
"###, DANGER),
        r###"<p>aaa
bbb</p>
"###,
        r###"Paragraphs (221)"###
);

    assert_eq!(
        micromark_with_options(r###"aaa
             bbb
                                       ccc
"###, DANGER),
        r###"<p>aaa
bbb
ccc</p>
"###,
        r###"Paragraphs (222)"###
);

    assert_eq!(
        micromark_with_options(r###"   aaa
bbb
"###, DANGER),
        r###"<p>aaa
bbb</p>
"###,
        r###"Paragraphs (223)"###
);

    assert_eq!(
        micromark_with_options(r###"    aaa
bbb
"###, DANGER),
        r###"<pre><code>aaa
</code></pre>
<p>bbb</p>
"###,
        r###"Paragraphs (224)"###
);

    assert_eq!(
        micromark_with_options(r###"aaa     
bbb     
"###, DANGER),
        r###"<p>aaa<br />
bbb</p>
"###,
        r###"Paragraphs (225)"###
);

    assert_eq!(
        micromark_with_options(r###"  

aaa
  

# aaa

  
"###, DANGER),
        r###"<p>aaa</p>
<h1>aaa</h1>
"###,
        r###"Blank lines (226)"###
);

    assert_eq!(
        micromark_with_options(r###"> # Foo
> bar
> baz
"###, DANGER),
        r###"<blockquote>
<h1>Foo</h1>
<p>bar
baz</p>
</blockquote>
"###,
        r###"Block quotes (227)"###
);

    assert_eq!(
        micromark_with_options(r###"># Foo
>bar
> baz
"###, DANGER),
        r###"<blockquote>
<h1>Foo</h1>
<p>bar
baz</p>
</blockquote>
"###,
        r###"Block quotes (228)"###
);

    assert_eq!(
        micromark_with_options(r###"   > # Foo
   > bar
 > baz
"###, DANGER),
        r###"<blockquote>
<h1>Foo</h1>
<p>bar
baz</p>
</blockquote>
"###,
        r###"Block quotes (229)"###
);

    assert_eq!(
        micromark_with_options(r###"    > # Foo
    > bar
    > baz
"###, DANGER),
        r###"<pre><code>&gt; # Foo
&gt; bar
&gt; baz
</code></pre>
"###,
        r###"Block quotes (230)"###
);

    // To do: some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> # Foo
    // > bar
    // baz
    // "###, DANGER),
    //         r###"<blockquote>
    // <h1>Foo</h1>
    // <p>bar
    // baz</p>
    // </blockquote>
    // "###,
    //         r###"Block quotes (231)"###
    // );

    assert_eq!(
        micromark_with_options(r###"> bar
baz
> foo
"###, DANGER),
        r###"<blockquote>
<p>bar
baz
foo</p>
</blockquote>
"###,
        r###"Block quotes (232)"###
);

    assert_eq!(
        micromark_with_options(r###"> foo
---
"###, DANGER),
        r###"<blockquote>
<p>foo</p>
</blockquote>
<hr />
"###,
        r###"Block quotes (233)"###
);

    assert_eq!(
        micromark_with_options(r###"> - foo
- bar
"###, DANGER),
        r###"<blockquote>
<ul>
<li>foo</li>
</ul>
</blockquote>
<ul>
<li>bar</li>
</ul>
"###,
        r###"Block quotes (234)"###
);

    assert_eq!(
        micromark_with_options(r###">     foo
    bar
"###, DANGER),
        r###"<blockquote>
<pre><code>foo
</code></pre>
</blockquote>
<pre><code>bar
</code></pre>
"###,
        r###"Block quotes (235)"###
);

    assert_eq!(
        micromark_with_options(r###"> ```
foo
```
"###, DANGER),
        r###"<blockquote>
<pre><code></code></pre>
</blockquote>
<p>foo</p>
<pre><code></code></pre>
"###,
        r###"Block quotes (236)"###
);

    // To do: some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> foo
    //     - bar
    // "###, DANGER),
    //         r###"<blockquote>
    // <p>foo
    // - bar</p>
    // </blockquote>
    // "###,
    //         r###"Block quotes (237)"###
    // );

    // To do: some eol in empty block quote bug.
    //     assert_eq!(
    //         micromark_with_options(r###">
    // "###, DANGER),
    //         r###"<blockquote>
    // </blockquote>
    // "###,
    //         r###"Block quotes (238)"###
    // );

    // To do: some eol in empty block quote bug.
    //     assert_eq!(
    //         micromark_with_options(r###">
    // >  
    // > 
    // "###, DANGER),
    //         r###"<blockquote>
    // </blockquote>
    // "###,
    //         r###"Block quotes (239)"###
    // );

    // To do: some eol in empty block quote bug.
    //     assert_eq!(
    //         micromark_with_options(r###">
    // > foo
    // >  
    // "###, DANGER),
    //         r###"<blockquote>
    // <p>foo</p>
    // </blockquote>
    // "###,
    //         r###"Block quotes (240)"###
    // );

    assert_eq!(
        micromark_with_options(r###"> foo

> bar
"###, DANGER),
        r###"<blockquote>
<p>foo</p>
</blockquote>
<blockquote>
<p>bar</p>
</blockquote>
"###,
        r###"Block quotes (241)"###
);

    assert_eq!(
        micromark_with_options(r###"> foo
> bar
"###, DANGER),
        r###"<blockquote>
<p>foo
bar</p>
</blockquote>
"###,
        r###"Block quotes (242)"###
);

    assert_eq!(
        micromark_with_options(r###"> foo
>
> bar
"###, DANGER),
        r###"<blockquote>
<p>foo</p>
<p>bar</p>
</blockquote>
"###,
        r###"Block quotes (243)"###
);

    assert_eq!(
        micromark_with_options(r###"foo
> bar
"###, DANGER),
        r###"<p>foo</p>
<blockquote>
<p>bar</p>
</blockquote>
"###,
        r###"Block quotes (244)"###
);

    assert_eq!(
        micromark_with_options(r###"> aaa
***
> bbb
"###, DANGER),
        r###"<blockquote>
<p>aaa</p>
</blockquote>
<hr />
<blockquote>
<p>bbb</p>
</blockquote>
"###,
        r###"Block quotes (245)"###
);

    // To do: some eol in empty block quote bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> bar
    // baz
    // "###, DANGER),
    //         r###"<blockquote>
    // <p>bar
    // baz</p>
    // </blockquote>
    // "###,
    //         r###"Block quotes (246)"###
    // );

    assert_eq!(
        micromark_with_options(r###"> bar

baz
"###, DANGER),
        r###"<blockquote>
<p>bar</p>
</blockquote>
<p>baz</p>
"###,
        r###"Block quotes (247)"###
);

    assert_eq!(
        micromark_with_options(r###"> bar
>
baz
"###, DANGER),
        r###"<blockquote>
<p>bar</p>
</blockquote>
<p>baz</p>
"###,
        r###"Block quotes (248)"###
);

    // To do: some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> > > foo
    // bar
    // "###, DANGER),
    //         r###"<blockquote>
    // <blockquote>
    // <blockquote>
    // <p>foo
    // bar</p>
    // </blockquote>
    // </blockquote>
    // </blockquote>
    // "###,
    //         r###"Block quotes (249)"###
    // );

    // To do: some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###">>> foo
    // > bar
    // >>baz
    // "###, DANGER),
    //         r###"<blockquote>
    // <blockquote>
    // <blockquote>
    // <p>foo
    // bar
    // baz</p>
    // </blockquote>
    // </blockquote>
    // </blockquote>
    // "###,
    //         r###"Block quotes (250)"###
    // );

    assert_eq!(
        micromark_with_options(r###">     code

>    not code
"###, DANGER),
        r###"<blockquote>
<pre><code>code
</code></pre>
</blockquote>
<blockquote>
<p>not code</p>
</blockquote>
"###,
        r###"Block quotes (251)"###
);

    assert_eq!(
        micromark_with_options(r###"A paragraph
with two lines.

    indented code

> A block quote.
"###, DANGER),
        r###"<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
"###,
        r###"List items (252)"###
);

    assert_eq!(
        micromark_with_options(r###"1.  A paragraph
    with two lines.

        indented code

    > A block quote.
"###, DANGER),
        r###"<ol>
<li>
<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (253)"###
);

    assert_eq!(
        micromark_with_options(r###"- one

 two
"###, DANGER),
        r###"<ul>
<li>one</li>
</ul>
<p>two</p>
"###,
        r###"List items (254)"###
);

    assert_eq!(
        micromark_with_options(r###"- one

  two
"###, DANGER),
        r###"<ul>
<li>
<p>one</p>
<p>two</p>
</li>
</ul>
"###,
        r###"List items (255)"###
);

    assert_eq!(
        micromark_with_options(r###" -    one

     two
"###, DANGER),
        r###"<ul>
<li>one</li>
</ul>
<pre><code> two
</code></pre>
"###,
        r###"List items (256)"###
);

    assert_eq!(
        micromark_with_options(r###" -    one

      two
"###, DANGER),
        r###"<ul>
<li>
<p>one</p>
<p>two</p>
</li>
</ul>
"###,
        r###"List items (257)"###
);

    assert_eq!(
        micromark_with_options(r###"   > > 1.  one
>>
>>     two
"###, DANGER),
        r###"<blockquote>
<blockquote>
<ol>
<li>
<p>one</p>
<p>two</p>
</li>
</ol>
</blockquote>
</blockquote>
"###,
        r###"List items (258)"###
);

    assert_eq!(
        micromark_with_options(r###">>- one
>>
  >  > two
"###, DANGER),
        r###"<blockquote>
<blockquote>
<ul>
<li>one</li>
</ul>
<p>two</p>
</blockquote>
</blockquote>
"###,
        r###"List items (259)"###
);

    assert_eq!(
        micromark_with_options(r###"-one

2.two
"###, DANGER),
        r###"<p>-one</p>
<p>2.two</p>
"###,
        r###"List items (260)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo


  bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<p>bar</p>
</li>
</ul>
"###,
        r###"List items (261)"###
);

    assert_eq!(
        micromark_with_options(r###"1.  foo

    ```
    bar
    ```

    baz

    > bam
"###, DANGER),
        r###"<ol>
<li>
<p>foo</p>
<pre><code>bar
</code></pre>
<p>baz</p>
<blockquote>
<p>bam</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (262)"###
);

    assert_eq!(
        micromark_with_options(r###"- Foo

      bar


      baz
"###, DANGER),
        r###"<ul>
<li>
<p>Foo</p>
<pre><code>bar


baz
</code></pre>
</li>
</ul>
"###,
        r###"List items (263)"###
);

    assert_eq!(
        micromark_with_options(r###"123456789. ok
"###, DANGER),
        r###"<ol start="123456789">
<li>ok</li>
</ol>
"###,
        r###"List items (264)"###
);

    assert_eq!(
        micromark_with_options(r###"1234567890. not ok
"###, DANGER),
        r###"<p>1234567890. not ok</p>
"###,
        r###"List items (265)"###
);

    assert_eq!(
        micromark_with_options(r###"0. ok
"###, DANGER),
        r###"<ol start="0">
<li>ok</li>
</ol>
"###,
        r###"List items (266)"###
);

    assert_eq!(
        micromark_with_options(r###"003. ok
"###, DANGER),
        r###"<ol start="3">
<li>ok</li>
</ol>
"###,
        r###"List items (267)"###
);

    assert_eq!(
        micromark_with_options(r###"-1. not ok
"###, DANGER),
        r###"<p>-1. not ok</p>
"###,
        r###"List items (268)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo

      bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<pre><code>bar
</code></pre>
</li>
</ul>
"###,
        r###"List items (269)"###
);

    assert_eq!(
        micromark_with_options(r###"  10.  foo

           bar
"###, DANGER),
        r###"<ol start="10">
<li>
<p>foo</p>
<pre><code>bar
</code></pre>
</li>
</ol>
"###,
        r###"List items (270)"###
);

    assert_eq!(
        micromark_with_options(r###"    indented code

paragraph

    more code
"###, DANGER),
        r###"<pre><code>indented code
</code></pre>
<p>paragraph</p>
<pre><code>more code
</code></pre>
"###,
        r###"List items (271)"###
);

    assert_eq!(
        micromark_with_options(r###"1.     indented code

   paragraph

       more code
"###, DANGER),
        r###"<ol>
<li>
<pre><code>indented code
</code></pre>
<p>paragraph</p>
<pre><code>more code
</code></pre>
</li>
</ol>
"###,
        r###"List items (272)"###
);

    assert_eq!(
        micromark_with_options(r###"1.      indented code

   paragraph

       more code
"###, DANGER),
        r###"<ol>
<li>
<pre><code> indented code
</code></pre>
<p>paragraph</p>
<pre><code>more code
</code></pre>
</li>
</ol>
"###,
        r###"List items (273)"###
);

    assert_eq!(
        micromark_with_options(r###"   foo

bar
"###, DANGER),
        r###"<p>foo</p>
<p>bar</p>
"###,
        r###"List items (274)"###
);

    assert_eq!(
        micromark_with_options(r###"-    foo

  bar
"###, DANGER),
        r###"<ul>
<li>foo</li>
</ul>
<p>bar</p>
"###,
        r###"List items (275)"###
);

    assert_eq!(
        micromark_with_options(r###"-  foo

   bar
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<p>bar</p>
</li>
</ul>
"###,
        r###"List items (276)"###
);

    assert_eq!(
        micromark_with_options(r###"-
  foo
-
  ```
  bar
  ```
-
      baz
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li>
<pre><code>bar
</code></pre>
</li>
<li>
<pre><code>baz
</code></pre>
</li>
</ul>
"###,
        r###"List items (277)"###
);

    assert_eq!(
        micromark_with_options(r###"-   
  foo
"###, DANGER),
        r###"<ul>
<li>foo</li>
</ul>
"###,
        r###"List items (278)"###
);

    assert_eq!(
        micromark_with_options(r###"-

  foo
"###, DANGER),
        r###"<ul>
<li></li>
</ul>
<p>foo</p>
"###,
        r###"List items (279)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
-
- bar
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li></li>
<li>bar</li>
</ul>
"###,
        r###"List items (280)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
-   
- bar
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li></li>
<li>bar</li>
</ul>
"###,
        r###"List items (281)"###
);

    assert_eq!(
        micromark_with_options(r###"1. foo
2.
3. bar
"###, DANGER),
        r###"<ol>
<li>foo</li>
<li></li>
<li>bar</li>
</ol>
"###,
        r###"List items (282)"###
);

    // To do: some bug w/ line endings and empty items.
    //     assert_eq!(
    //         micromark_with_options(r###"*
    // "###, DANGER),
    //         r###"<ul>
    // <li></li>
    // </ul>
    // "###,
    //         r###"List items (283)"###
    // );

    assert_eq!(
        micromark_with_options(r###"foo
*

foo
1.
"###, DANGER),
        r###"<p>foo
*</p>
<p>foo
1.</p>
"###,
        r###"List items (284)"###
);

    assert_eq!(
        micromark_with_options(r###" 1.  A paragraph
     with two lines.

         indented code

     > A block quote.
"###, DANGER),
        r###"<ol>
<li>
<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (285)"###
);

    assert_eq!(
        micromark_with_options(r###"  1.  A paragraph
      with two lines.

          indented code

      > A block quote.
"###, DANGER),
        r###"<ol>
<li>
<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (286)"###
);

    assert_eq!(
        micromark_with_options(r###"   1.  A paragraph
       with two lines.

           indented code

       > A block quote.
"###, DANGER),
        r###"<ol>
<li>
<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (287)"###
);

    assert_eq!(
        micromark_with_options(r###"    1.  A paragraph
        with two lines.

            indented code

        > A block quote.
"###, DANGER),
        r###"<pre><code>1.  A paragraph
    with two lines.

        indented code

    &gt; A block quote.
</code></pre>
"###,
        r###"List items (288)"###
);

    assert_eq!(
        micromark_with_options(r###"  1.  A paragraph
with two lines.

          indented code

      > A block quote.
"###, DANGER),
        r###"<ol>
<li>
<p>A paragraph
with two lines.</p>
<pre><code>indented code
</code></pre>
<blockquote>
<p>A block quote.</p>
</blockquote>
</li>
</ol>
"###,
        r###"List items (289)"###
);

    // To do: Some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"  1.  A paragraph
    //     with two lines.
    // "###, DANGER),
    //         r###"<ol>
    // <li>A paragraph
    // with two lines.</li>
    // </ol>
    // "###,
    //         r###"List items (290)"###
    // );

    // To do: Some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> 1. > Blockquote
    // continued here.
    // "###, DANGER),
    //         r###"<blockquote>
    // <ol>
    // <li>
    // <blockquote>
    // <p>Blockquote
    // continued here.</p>
    // </blockquote>
    // </li>
    // </ol>
    // </blockquote>
    // "###,
    //         r###"List items (291)"###
    // );

    // To do: Some lazy bug.
    //     assert_eq!(
    //         micromark_with_options(r###"> 1. > Blockquote
    // > continued here.
    // "###, DANGER),
    //         r###"<blockquote>
    // <ol>
    // <li>
    // <blockquote>
    // <p>Blockquote
    // continued here.</p>
    // </blockquote>
    // </li>
    // </ol>
    // </blockquote>
    // "###,
    //         r###"List items (292)"###
    // );

    assert_eq!(
        micromark_with_options(r###"- foo
  - bar
    - baz
      - boo
"###, DANGER),
        r###"<ul>
<li>foo
<ul>
<li>bar
<ul>
<li>baz
<ul>
<li>boo</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
"###,
        r###"List items (293)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
 - bar
  - baz
   - boo
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
<li>boo</li>
</ul>
"###,
        r###"List items (294)"###
);

    assert_eq!(
        micromark_with_options(r###"10) foo
    - bar
"###, DANGER),
        r###"<ol start="10">
<li>foo
<ul>
<li>bar</li>
</ul>
</li>
</ol>
"###,
        r###"List items (295)"###
);

    assert_eq!(
        micromark_with_options(r###"10) foo
   - bar
"###, DANGER),
        r###"<ol start="10">
<li>foo</li>
</ol>
<ul>
<li>bar</li>
</ul>
"###,
        r###"List items (296)"###
);

    assert_eq!(
        micromark_with_options(r###"- - foo
"###, DANGER),
        r###"<ul>
<li>
<ul>
<li>foo</li>
</ul>
</li>
</ul>
"###,
        r###"List items (297)"###
);

    assert_eq!(
        micromark_with_options(r###"1. - 2. foo
"###, DANGER),
        r###"<ol>
<li>
<ul>
<li>
<ol start="2">
<li>foo</li>
</ol>
</li>
</ul>
</li>
</ol>
"###,
        r###"List items (298)"###
);

    assert_eq!(
        micromark_with_options(r###"- # Foo
- Bar
  ---
  baz
"###, DANGER),
        r###"<ul>
<li>
<h1>Foo</h1>
</li>
<li>
<h2>Bar</h2>
baz</li>
</ul>
"###,
        r###"List items (299)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
- bar
+ baz
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li>bar</li>
</ul>
<ul>
<li>baz</li>
</ul>
"###,
        r###"Lists (300)"###
);

    assert_eq!(
        micromark_with_options(r###"1. foo
2. bar
3) baz
"###, DANGER),
        r###"<ol>
<li>foo</li>
<li>bar</li>
</ol>
<ol start="3">
<li>baz</li>
</ol>
"###,
        r###"Lists (301)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo
- bar
- baz
"###, DANGER),
        r###"<p>Foo</p>
<ul>
<li>bar</li>
<li>baz</li>
</ul>
"###,
        r###"Lists (302)"###
);

    // To do: Some interruption bug.
    //     assert_eq!(
    //         micromark_with_options(r###"The number of windows in my house is
    // 14.  The number of doors is 6.
    // "###, DANGER),
    //         r###"<p>The number of windows in my house is
    // 14.  The number of doors is 6.</p>
    // "###,
    //         r###"Lists (303)"###
    // );

    assert_eq!(
        micromark_with_options(r###"The number of windows in my house is
1.  The number of doors is 6.
"###, DANGER),
        r###"<p>The number of windows in my house is</p>
<ol>
<li>The number of doors is 6.</li>
</ol>
"###,
        r###"Lists (304)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo

- bar


- baz
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
</li>
<li>
<p>bar</p>
</li>
<li>
<p>baz</p>
</li>
</ul>
"###,
        r###"Lists (305)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
  - bar
    - baz


      bim
"###, DANGER),
        r###"<ul>
<li>foo
<ul>
<li>bar
<ul>
<li>
<p>baz</p>
<p>bim</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
"###,
        r###"Lists (306)"###
);

    assert_eq!(
        micromark_with_options(r###"- foo
- bar

<!-- -->

- baz
- bim
"###, DANGER),
        r###"<ul>
<li>foo</li>
<li>bar</li>
</ul>
<!-- -->
<ul>
<li>baz</li>
<li>bim</li>
</ul>
"###,
        r###"Lists (307)"###
);

    assert_eq!(
        micromark_with_options(r###"-   foo

    notcode

-   foo

<!-- -->

    code
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<p>notcode</p>
</li>
<li>
<p>foo</p>
</li>
</ul>
<!-- -->
<pre><code>code
</code></pre>
"###,
        r###"Lists (308)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
 - b
  - c
   - d
  - e
 - f
- g
"###, DANGER),
        r###"<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
<li>g</li>
</ul>
"###,
        r###"Lists (309)"###
);

    assert_eq!(
        micromark_with_options(r###"1. a

  2. b

   3. c
"###, DANGER),
        r###"<ol>
<li>
<p>a</p>
</li>
<li>
<p>b</p>
</li>
<li>
<p>c</p>
</li>
</ol>
"###,
        r###"Lists (310)"###
);

    // To do: Some interruption bug.
    //     assert_eq!(
    //         micromark_with_options(r###"- a
    //  - b
    //   - c
    //    - d
    //     - e
    // "###, DANGER),
    //         r###"<ul>
    // <li>a</li>
    // <li>b</li>
    // <li>c</li>
    // <li>d
    // - e</li>
    // </ul>
    // "###,
    //         r###"Lists (311)"###
    // );

    assert_eq!(
        micromark_with_options(r###"1. a

  2. b

    3. c
"###, DANGER),
        r###"<ol>
<li>
<p>a</p>
</li>
<li>
<p>b</p>
</li>
</ol>
<pre><code>3. c
</code></pre>
"###,
        r###"Lists (312)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
- b

- c
"###, DANGER),
        r###"<ul>
<li>
<p>a</p>
</li>
<li>
<p>b</p>
</li>
<li>
<p>c</p>
</li>
</ul>
"###,
        r###"Lists (313)"###
);

    assert_eq!(
        micromark_with_options(r###"* a
*

* c
"###, DANGER),
        r###"<ul>
<li>
<p>a</p>
</li>
<li></li>
<li>
<p>c</p>
</li>
</ul>
"###,
        r###"Lists (314)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
- b

  c
- d
"###, DANGER),
        r###"<ul>
<li>
<p>a</p>
</li>
<li>
<p>b</p>
<p>c</p>
</li>
<li>
<p>d</p>
</li>
</ul>
"###,
        r###"Lists (315)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
- b

  [ref]: /url
- d
"###, DANGER),
        r###"<ul>
<li>
<p>a</p>
</li>
<li>
<p>b</p>
</li>
<li>
<p>d</p>
</li>
</ul>
"###,
        r###"Lists (316)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
- ```
  b


  ```
- c
"###, DANGER),
        r###"<ul>
<li>a</li>
<li>
<pre><code>b


</code></pre>
</li>
<li>c</li>
</ul>
"###,
        r###"Lists (317)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
  - b

    c
- d
"###, DANGER),
        r###"<ul>
<li>a
<ul>
<li>
<p>b</p>
<p>c</p>
</li>
</ul>
</li>
<li>d</li>
</ul>
"###,
        r###"Lists (318)"###
);

    assert_eq!(
        micromark_with_options(r###"* a
  > b
  >
* c
"###, DANGER),
        r###"<ul>
<li>a
<blockquote>
<p>b</p>
</blockquote>
</li>
<li>c</li>
</ul>
"###,
        r###"Lists (319)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
  > b
  ```
  c
  ```
- d
"###, DANGER),
        r###"<ul>
<li>a
<blockquote>
<p>b</p>
</blockquote>
<pre><code>c
</code></pre>
</li>
<li>d</li>
</ul>
"###,
        r###"Lists (320)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
"###, DANGER),
        r###"<ul>
<li>a</li>
</ul>
"###,
        r###"Lists (321)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
  - b
"###, DANGER),
        r###"<ul>
<li>a
<ul>
<li>b</li>
</ul>
</li>
</ul>
"###,
        r###"Lists (322)"###
);

    assert_eq!(
        micromark_with_options(r###"1. ```
   foo
   ```

   bar
"###, DANGER),
        r###"<ol>
<li>
<pre><code>foo
</code></pre>
<p>bar</p>
</li>
</ol>
"###,
        r###"Lists (323)"###
);

    assert_eq!(
        micromark_with_options(r###"* foo
  * bar

  baz
"###, DANGER),
        r###"<ul>
<li>
<p>foo</p>
<ul>
<li>bar</li>
</ul>
<p>baz</p>
</li>
</ul>
"###,
        r###"Lists (324)"###
);

    assert_eq!(
        micromark_with_options(r###"- a
  - b
  - c

- d
  - e
  - f
"###, DANGER),
        r###"<ul>
<li>
<p>a</p>
<ul>
<li>b</li>
<li>c</li>
</ul>
</li>
<li>
<p>d</p>
<ul>
<li>e</li>
<li>f</li>
</ul>
</li>
</ul>
"###,
        r###"Lists (325)"###
);

    assert_eq!(
        micromark_with_options(r###"`hi`lo`
"###, DANGER),
        r###"<p><code>hi</code>lo`</p>
"###,
        r###"Inlines (326)"###
);

    assert_eq!(
        micromark_with_options(r###"`foo`
"###, DANGER),
        r###"<p><code>foo</code></p>
"###,
        r###"Code spans (327)"###
);

    assert_eq!(
        micromark_with_options(r###"`` foo ` bar ``
"###, DANGER),
        r###"<p><code>foo ` bar</code></p>
"###,
        r###"Code spans (328)"###
);

    assert_eq!(
        micromark_with_options(r###"` `` `
"###, DANGER),
        r###"<p><code>``</code></p>
"###,
        r###"Code spans (329)"###
);

    assert_eq!(
        micromark_with_options(r###"`  ``  `
"###, DANGER),
        r###"<p><code> `` </code></p>
"###,
        r###"Code spans (330)"###
);

    assert_eq!(
        micromark_with_options(r###"` a`
"###, DANGER),
        r###"<p><code> a</code></p>
"###,
        r###"Code spans (331)"###
);

    assert_eq!(
        micromark_with_options(r###"` b `
"###, DANGER),
        r###"<p><code> b </code></p>
"###,
        r###"Code spans (332)"###
);

    assert_eq!(
        micromark_with_options(r###"` `
`  `
"###, DANGER),
        r###"<p><code> </code>
<code>  </code></p>
"###,
        r###"Code spans (333)"###
);

    assert_eq!(
        micromark_with_options(r###"``
foo
bar  
baz
``
"###, DANGER),
        r###"<p><code>foo bar   baz</code></p>
"###,
        r###"Code spans (334)"###
);

    assert_eq!(
        micromark_with_options(r###"``
foo 
``
"###, DANGER),
        r###"<p><code>foo </code></p>
"###,
        r###"Code spans (335)"###
);

    assert_eq!(
        micromark_with_options(r###"`foo   bar 
baz`
"###, DANGER),
        r###"<p><code>foo   bar  baz</code></p>
"###,
        r###"Code spans (336)"###
);

    assert_eq!(
        micromark_with_options(r###"`foo\`bar`
"###, DANGER),
        r###"<p><code>foo\</code>bar`</p>
"###,
        r###"Code spans (337)"###
);

    assert_eq!(
        micromark_with_options(r###"``foo`bar``
"###, DANGER),
        r###"<p><code>foo`bar</code></p>
"###,
        r###"Code spans (338)"###
);

    assert_eq!(
        micromark_with_options(r###"` foo `` bar `
"###, DANGER),
        r###"<p><code>foo `` bar</code></p>
"###,
        r###"Code spans (339)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo`*`
"###, DANGER),
        r###"<p>*foo<code>*</code></p>
"###,
        r###"Code spans (340)"###
);

    assert_eq!(
        micromark_with_options(r###"[not a `link](/foo`)
"###, DANGER),
        r###"<p>[not a <code>link](/foo</code>)</p>
"###,
        r###"Code spans (341)"###
);

    assert_eq!(
        micromark_with_options(r###"`<a href="`">`
"###, DANGER),
        r###"<p><code>&lt;a href=&quot;</code>&quot;&gt;`</p>
"###,
        r###"Code spans (342)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="`">`
"###, DANGER),
        r###"<p><a href="`">`</p>
"###,
        r###"Code spans (343)"###
);

    assert_eq!(
        micromark_with_options(r###"`<http://foo.bar.`baz>`
"###, DANGER),
        r###"<p><code>&lt;http://foo.bar.</code>baz&gt;`</p>
"###,
        r###"Code spans (344)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://foo.bar.`baz>`
"###, DANGER),
        r###"<p><a href="http://foo.bar.%60baz">http://foo.bar.`baz</a>`</p>
"###,
        r###"Code spans (345)"###
);

    assert_eq!(
        micromark_with_options(r###"```foo``
"###, DANGER),
        r###"<p>```foo``</p>
"###,
        r###"Code spans (346)"###
);

    assert_eq!(
        micromark_with_options(r###"`foo
"###, DANGER),
        r###"<p>`foo</p>
"###,
        r###"Code spans (347)"###
);

    assert_eq!(
        micromark_with_options(r###"`foo``bar``
"###, DANGER),
        r###"<p>`foo<code>bar</code></p>
"###,
        r###"Code spans (348)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo bar*
"###, DANGER),
        r###"<p><em>foo bar</em></p>
"###,
        r###"Emphasis and strong emphasis (349)"###
);

    assert_eq!(
        micromark_with_options(r###"a * foo bar*
"###, DANGER),
        r###"<p>a * foo bar*</p>
"###,
        r###"Emphasis and strong emphasis (350)"###
);

    assert_eq!(
        micromark_with_options(r###"a*"foo"*
"###, DANGER),
        r###"<p>a*&quot;foo&quot;*</p>
"###,
        r###"Emphasis and strong emphasis (351)"###
);

    assert_eq!(
        micromark_with_options(r###"* a *
"###, DANGER),
        r###"<p>* a *</p>
"###,
        r###"Emphasis and strong emphasis (352)"###
);

    assert_eq!(
        micromark_with_options(r###"foo*bar*
"###, DANGER),
        r###"<p>foo<em>bar</em></p>
"###,
        r###"Emphasis and strong emphasis (353)"###
);

    assert_eq!(
        micromark_with_options(r###"5*6*78
"###, DANGER),
        r###"<p>5<em>6</em>78</p>
"###,
        r###"Emphasis and strong emphasis (354)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo bar_
"###, DANGER),
        r###"<p><em>foo bar</em></p>
"###,
        r###"Emphasis and strong emphasis (355)"###
);

    assert_eq!(
        micromark_with_options(r###"_ foo bar_
"###, DANGER),
        r###"<p>_ foo bar_</p>
"###,
        r###"Emphasis and strong emphasis (356)"###
);

    assert_eq!(
        micromark_with_options(r###"a_"foo"_
"###, DANGER),
        r###"<p>a_&quot;foo&quot;_</p>
"###,
        r###"Emphasis and strong emphasis (357)"###
);

    assert_eq!(
        micromark_with_options(r###"foo_bar_
"###, DANGER),
        r###"<p>foo_bar_</p>
"###,
        r###"Emphasis and strong emphasis (358)"###
);

    assert_eq!(
        micromark_with_options(r###"5_6_78
"###, DANGER),
        r###"<p>5_6_78</p>
"###,
        r###"Emphasis and strong emphasis (359)"###
);

    assert_eq!(
        micromark_with_options(r###"пристаням_стремятся_
"###, DANGER),
        r###"<p>пристаням_стремятся_</p>
"###,
        r###"Emphasis and strong emphasis (360)"###
);

    assert_eq!(
        micromark_with_options(r###"aa_"bb"_cc
"###, DANGER),
        r###"<p>aa_&quot;bb&quot;_cc</p>
"###,
        r###"Emphasis and strong emphasis (361)"###
);

    assert_eq!(
        micromark_with_options(r###"foo-_(bar)_
"###, DANGER),
        r###"<p>foo-<em>(bar)</em></p>
"###,
        r###"Emphasis and strong emphasis (362)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo*
"###, DANGER),
        r###"<p>_foo*</p>
"###,
        r###"Emphasis and strong emphasis (363)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo bar *
"###, DANGER),
        r###"<p>*foo bar *</p>
"###,
        r###"Emphasis and strong emphasis (364)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo bar
*
"###, DANGER),
        r###"<p>*foo bar
*</p>
"###,
        r###"Emphasis and strong emphasis (365)"###
);

    assert_eq!(
        micromark_with_options(r###"*(*foo)
"###, DANGER),
        r###"<p>*(*foo)</p>
"###,
        r###"Emphasis and strong emphasis (366)"###
);

    assert_eq!(
        micromark_with_options(r###"*(*foo*)*
"###, DANGER),
        r###"<p><em>(<em>foo</em>)</em></p>
"###,
        r###"Emphasis and strong emphasis (367)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo*bar
"###, DANGER),
        r###"<p><em>foo</em>bar</p>
"###,
        r###"Emphasis and strong emphasis (368)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo bar _
"###, DANGER),
        r###"<p>_foo bar _</p>
"###,
        r###"Emphasis and strong emphasis (369)"###
);

    assert_eq!(
        micromark_with_options(r###"_(_foo)
"###, DANGER),
        r###"<p>_(_foo)</p>
"###,
        r###"Emphasis and strong emphasis (370)"###
);

    assert_eq!(
        micromark_with_options(r###"_(_foo_)_
"###, DANGER),
        r###"<p><em>(<em>foo</em>)</em></p>
"###,
        r###"Emphasis and strong emphasis (371)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo_bar
"###, DANGER),
        r###"<p>_foo_bar</p>
"###,
        r###"Emphasis and strong emphasis (372)"###
);

    assert_eq!(
        micromark_with_options(r###"_пристаням_стремятся
"###, DANGER),
        r###"<p>_пристаням_стремятся</p>
"###,
        r###"Emphasis and strong emphasis (373)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo_bar_baz_
"###, DANGER),
        r###"<p><em>foo_bar_baz</em></p>
"###,
        r###"Emphasis and strong emphasis (374)"###
);

    assert_eq!(
        micromark_with_options(r###"_(bar)_.
"###, DANGER),
        r###"<p><em>(bar)</em>.</p>
"###,
        r###"Emphasis and strong emphasis (375)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo bar**
"###, DANGER),
        r###"<p><strong>foo bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (376)"###
);

    assert_eq!(
        micromark_with_options(r###"** foo bar**
"###, DANGER),
        r###"<p>** foo bar**</p>
"###,
        r###"Emphasis and strong emphasis (377)"###
);

    assert_eq!(
        micromark_with_options(r###"a**"foo"**
"###, DANGER),
        r###"<p>a**&quot;foo&quot;**</p>
"###,
        r###"Emphasis and strong emphasis (378)"###
);

    assert_eq!(
        micromark_with_options(r###"foo**bar**
"###, DANGER),
        r###"<p>foo<strong>bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (379)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo bar__
"###, DANGER),
        r###"<p><strong>foo bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (380)"###
);

    assert_eq!(
        micromark_with_options(r###"__ foo bar__
"###, DANGER),
        r###"<p>__ foo bar__</p>
"###,
        r###"Emphasis and strong emphasis (381)"###
);

    assert_eq!(
        micromark_with_options(r###"__
foo bar__
"###, DANGER),
        r###"<p>__
foo bar__</p>
"###,
        r###"Emphasis and strong emphasis (382)"###
);

    assert_eq!(
        micromark_with_options(r###"a__"foo"__
"###, DANGER),
        r###"<p>a__&quot;foo&quot;__</p>
"###,
        r###"Emphasis and strong emphasis (383)"###
);

    assert_eq!(
        micromark_with_options(r###"foo__bar__
"###, DANGER),
        r###"<p>foo__bar__</p>
"###,
        r###"Emphasis and strong emphasis (384)"###
);

    assert_eq!(
        micromark_with_options(r###"5__6__78
"###, DANGER),
        r###"<p>5__6__78</p>
"###,
        r###"Emphasis and strong emphasis (385)"###
);

    assert_eq!(
        micromark_with_options(r###"пристаням__стремятся__
"###, DANGER),
        r###"<p>пристаням__стремятся__</p>
"###,
        r###"Emphasis and strong emphasis (386)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo, __bar__, baz__
"###, DANGER),
        r###"<p><strong>foo, <strong>bar</strong>, baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (387)"###
);

    assert_eq!(
        micromark_with_options(r###"foo-__(bar)__
"###, DANGER),
        r###"<p>foo-<strong>(bar)</strong></p>
"###,
        r###"Emphasis and strong emphasis (388)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo bar **
"###, DANGER),
        r###"<p>**foo bar **</p>
"###,
        r###"Emphasis and strong emphasis (389)"###
);

    assert_eq!(
        micromark_with_options(r###"**(**foo)
"###, DANGER),
        r###"<p>**(**foo)</p>
"###,
        r###"Emphasis and strong emphasis (390)"###
);

    assert_eq!(
        micromark_with_options(r###"*(**foo**)*
"###, DANGER),
        r###"<p><em>(<strong>foo</strong>)</em></p>
"###,
        r###"Emphasis and strong emphasis (391)"###
);

    assert_eq!(
        micromark_with_options(r###"**Gomphocarpus (*Gomphocarpus physocarpus*, syn.
*Asclepias physocarpa*)**
"###, DANGER),
        r###"<p><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.
<em>Asclepias physocarpa</em>)</strong></p>
"###,
        r###"Emphasis and strong emphasis (392)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo "*bar*" foo**
"###, DANGER),
        r###"<p><strong>foo &quot;<em>bar</em>&quot; foo</strong></p>
"###,
        r###"Emphasis and strong emphasis (393)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo**bar
"###, DANGER),
        r###"<p><strong>foo</strong>bar</p>
"###,
        r###"Emphasis and strong emphasis (394)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo bar __
"###, DANGER),
        r###"<p>__foo bar __</p>
"###,
        r###"Emphasis and strong emphasis (395)"###
);

    assert_eq!(
        micromark_with_options(r###"__(__foo)
"###, DANGER),
        r###"<p>__(__foo)</p>
"###,
        r###"Emphasis and strong emphasis (396)"###
);

    assert_eq!(
        micromark_with_options(r###"_(__foo__)_
"###, DANGER),
        r###"<p><em>(<strong>foo</strong>)</em></p>
"###,
        r###"Emphasis and strong emphasis (397)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo__bar
"###, DANGER),
        r###"<p>__foo__bar</p>
"###,
        r###"Emphasis and strong emphasis (398)"###
);

    assert_eq!(
        micromark_with_options(r###"__пристаням__стремятся
"###, DANGER),
        r###"<p>__пристаням__стремятся</p>
"###,
        r###"Emphasis and strong emphasis (399)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo__bar__baz__
"###, DANGER),
        r###"<p><strong>foo__bar__baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (400)"###
);

    assert_eq!(
        micromark_with_options(r###"__(bar)__.
"###, DANGER),
        r###"<p><strong>(bar)</strong>.</p>
"###,
        r###"Emphasis and strong emphasis (401)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo [bar](/url)*
"###, DANGER),
        r###"<p><em>foo <a href="/url">bar</a></em></p>
"###,
        r###"Emphasis and strong emphasis (402)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo
bar*
"###, DANGER),
        r###"<p><em>foo
bar</em></p>
"###,
        r###"Emphasis and strong emphasis (403)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo __bar__ baz_
"###, DANGER),
        r###"<p><em>foo <strong>bar</strong> baz</em></p>
"###,
        r###"Emphasis and strong emphasis (404)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo _bar_ baz_
"###, DANGER),
        r###"<p><em>foo <em>bar</em> baz</em></p>
"###,
        r###"Emphasis and strong emphasis (405)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo_ bar_
"###, DANGER),
        r###"<p><em><em>foo</em> bar</em></p>
"###,
        r###"Emphasis and strong emphasis (406)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo *bar**
"###, DANGER),
        r###"<p><em>foo <em>bar</em></em></p>
"###,
        r###"Emphasis and strong emphasis (407)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo **bar** baz*
"###, DANGER),
        r###"<p><em>foo <strong>bar</strong> baz</em></p>
"###,
        r###"Emphasis and strong emphasis (408)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo**bar**baz*
"###, DANGER),
        r###"<p><em>foo<strong>bar</strong>baz</em></p>
"###,
        r###"Emphasis and strong emphasis (409)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo**bar*
"###, DANGER),
        r###"<p><em>foo**bar</em></p>
"###,
        r###"Emphasis and strong emphasis (410)"###
);

    assert_eq!(
        micromark_with_options(r###"***foo** bar*
"###, DANGER),
        r###"<p><em><strong>foo</strong> bar</em></p>
"###,
        r###"Emphasis and strong emphasis (411)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo **bar***
"###, DANGER),
        r###"<p><em>foo <strong>bar</strong></em></p>
"###,
        r###"Emphasis and strong emphasis (412)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo**bar***
"###, DANGER),
        r###"<p><em>foo<strong>bar</strong></em></p>
"###,
        r###"Emphasis and strong emphasis (413)"###
);

    assert_eq!(
        micromark_with_options(r###"foo***bar***baz
"###, DANGER),
        r###"<p>foo<em><strong>bar</strong></em>baz</p>
"###,
        r###"Emphasis and strong emphasis (414)"###
);

    assert_eq!(
        micromark_with_options(r###"foo******bar*********baz
"###, DANGER),
        r###"<p>foo<strong><strong><strong>bar</strong></strong></strong>***baz</p>
"###,
        r###"Emphasis and strong emphasis (415)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo **bar *baz* bim** bop*
"###, DANGER),
        r###"<p><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>
"###,
        r###"Emphasis and strong emphasis (416)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo [*bar*](/url)*
"###, DANGER),
        r###"<p><em>foo <a href="/url"><em>bar</em></a></em></p>
"###,
        r###"Emphasis and strong emphasis (417)"###
);

    assert_eq!(
        micromark_with_options(r###"** is not an empty emphasis
"###, DANGER),
        r###"<p>** is not an empty emphasis</p>
"###,
        r###"Emphasis and strong emphasis (418)"###
);

    assert_eq!(
        micromark_with_options(r###"**** is not an empty strong emphasis
"###, DANGER),
        r###"<p>**** is not an empty strong emphasis</p>
"###,
        r###"Emphasis and strong emphasis (419)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo [bar](/url)**
"###, DANGER),
        r###"<p><strong>foo <a href="/url">bar</a></strong></p>
"###,
        r###"Emphasis and strong emphasis (420)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo
bar**
"###, DANGER),
        r###"<p><strong>foo
bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (421)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo _bar_ baz__
"###, DANGER),
        r###"<p><strong>foo <em>bar</em> baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (422)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo __bar__ baz__
"###, DANGER),
        r###"<p><strong>foo <strong>bar</strong> baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (423)"###
);

    assert_eq!(
        micromark_with_options(r###"____foo__ bar__
"###, DANGER),
        r###"<p><strong><strong>foo</strong> bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (424)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo **bar****
"###, DANGER),
        r###"<p><strong>foo <strong>bar</strong></strong></p>
"###,
        r###"Emphasis and strong emphasis (425)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo *bar* baz**
"###, DANGER),
        r###"<p><strong>foo <em>bar</em> baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (426)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo*bar*baz**
"###, DANGER),
        r###"<p><strong>foo<em>bar</em>baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (427)"###
);

    assert_eq!(
        micromark_with_options(r###"***foo* bar**
"###, DANGER),
        r###"<p><strong><em>foo</em> bar</strong></p>
"###,
        r###"Emphasis and strong emphasis (428)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo *bar***
"###, DANGER),
        r###"<p><strong>foo <em>bar</em></strong></p>
"###,
        r###"Emphasis and strong emphasis (429)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo *bar **baz**
bim* bop**
"###, DANGER),
        r###"<p><strong>foo <em>bar <strong>baz</strong>
bim</em> bop</strong></p>
"###,
        r###"Emphasis and strong emphasis (430)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo [*bar*](/url)**
"###, DANGER),
        r###"<p><strong>foo <a href="/url"><em>bar</em></a></strong></p>
"###,
        r###"Emphasis and strong emphasis (431)"###
);

    assert_eq!(
        micromark_with_options(r###"__ is not an empty emphasis
"###, DANGER),
        r###"<p>__ is not an empty emphasis</p>
"###,
        r###"Emphasis and strong emphasis (432)"###
);

    assert_eq!(
        micromark_with_options(r###"____ is not an empty strong emphasis
"###, DANGER),
        r###"<p>____ is not an empty strong emphasis</p>
"###,
        r###"Emphasis and strong emphasis (433)"###
);

    assert_eq!(
        micromark_with_options(r###"foo ***
"###, DANGER),
        r###"<p>foo ***</p>
"###,
        r###"Emphasis and strong emphasis (434)"###
);

    assert_eq!(
        micromark_with_options(r###"foo *\**
"###, DANGER),
        r###"<p>foo <em>*</em></p>
"###,
        r###"Emphasis and strong emphasis (435)"###
);

    assert_eq!(
        micromark_with_options(r###"foo *_*
"###, DANGER),
        r###"<p>foo <em>_</em></p>
"###,
        r###"Emphasis and strong emphasis (436)"###
);

    assert_eq!(
        micromark_with_options(r###"foo *****
"###, DANGER),
        r###"<p>foo *****</p>
"###,
        r###"Emphasis and strong emphasis (437)"###
);

    assert_eq!(
        micromark_with_options(r###"foo **\***
"###, DANGER),
        r###"<p>foo <strong>*</strong></p>
"###,
        r###"Emphasis and strong emphasis (438)"###
);

    assert_eq!(
        micromark_with_options(r###"foo **_**
"###, DANGER),
        r###"<p>foo <strong>_</strong></p>
"###,
        r###"Emphasis and strong emphasis (439)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo*
"###, DANGER),
        r###"<p>*<em>foo</em></p>
"###,
        r###"Emphasis and strong emphasis (440)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo**
"###, DANGER),
        r###"<p><em>foo</em>*</p>
"###,
        r###"Emphasis and strong emphasis (441)"###
);

    assert_eq!(
        micromark_with_options(r###"***foo**
"###, DANGER),
        r###"<p>*<strong>foo</strong></p>
"###,
        r###"Emphasis and strong emphasis (442)"###
);

    assert_eq!(
        micromark_with_options(r###"****foo*
"###, DANGER),
        r###"<p>***<em>foo</em></p>
"###,
        r###"Emphasis and strong emphasis (443)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo***
"###, DANGER),
        r###"<p><strong>foo</strong>*</p>
"###,
        r###"Emphasis and strong emphasis (444)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo****
"###, DANGER),
        r###"<p><em>foo</em>***</p>
"###,
        r###"Emphasis and strong emphasis (445)"###
);

    assert_eq!(
        micromark_with_options(r###"foo ___
"###, DANGER),
        r###"<p>foo ___</p>
"###,
        r###"Emphasis and strong emphasis (446)"###
);

    assert_eq!(
        micromark_with_options(r###"foo _\__
"###, DANGER),
        r###"<p>foo <em>_</em></p>
"###,
        r###"Emphasis and strong emphasis (447)"###
);

    assert_eq!(
        micromark_with_options(r###"foo _*_
"###, DANGER),
        r###"<p>foo <em>*</em></p>
"###,
        r###"Emphasis and strong emphasis (448)"###
);

    assert_eq!(
        micromark_with_options(r###"foo _____
"###, DANGER),
        r###"<p>foo _____</p>
"###,
        r###"Emphasis and strong emphasis (449)"###
);

    assert_eq!(
        micromark_with_options(r###"foo __\___
"###, DANGER),
        r###"<p>foo <strong>_</strong></p>
"###,
        r###"Emphasis and strong emphasis (450)"###
);

    assert_eq!(
        micromark_with_options(r###"foo __*__
"###, DANGER),
        r###"<p>foo <strong>*</strong></p>
"###,
        r###"Emphasis and strong emphasis (451)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo_
"###, DANGER),
        r###"<p>_<em>foo</em></p>
"###,
        r###"Emphasis and strong emphasis (452)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo__
"###, DANGER),
        r###"<p><em>foo</em>_</p>
"###,
        r###"Emphasis and strong emphasis (453)"###
);

    assert_eq!(
        micromark_with_options(r###"___foo__
"###, DANGER),
        r###"<p>_<strong>foo</strong></p>
"###,
        r###"Emphasis and strong emphasis (454)"###
);

    assert_eq!(
        micromark_with_options(r###"____foo_
"###, DANGER),
        r###"<p>___<em>foo</em></p>
"###,
        r###"Emphasis and strong emphasis (455)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo___
"###, DANGER),
        r###"<p><strong>foo</strong>_</p>
"###,
        r###"Emphasis and strong emphasis (456)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo____
"###, DANGER),
        r###"<p><em>foo</em>___</p>
"###,
        r###"Emphasis and strong emphasis (457)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo**
"###, DANGER),
        r###"<p><strong>foo</strong></p>
"###,
        r###"Emphasis and strong emphasis (458)"###
);

    assert_eq!(
        micromark_with_options(r###"*_foo_*
"###, DANGER),
        r###"<p><em><em>foo</em></em></p>
"###,
        r###"Emphasis and strong emphasis (459)"###
);

    assert_eq!(
        micromark_with_options(r###"__foo__
"###, DANGER),
        r###"<p><strong>foo</strong></p>
"###,
        r###"Emphasis and strong emphasis (460)"###
);

    assert_eq!(
        micromark_with_options(r###"_*foo*_
"###, DANGER),
        r###"<p><em><em>foo</em></em></p>
"###,
        r###"Emphasis and strong emphasis (461)"###
);

    assert_eq!(
        micromark_with_options(r###"****foo****
"###, DANGER),
        r###"<p><strong><strong>foo</strong></strong></p>
"###,
        r###"Emphasis and strong emphasis (462)"###
);

    assert_eq!(
        micromark_with_options(r###"____foo____
"###, DANGER),
        r###"<p><strong><strong>foo</strong></strong></p>
"###,
        r###"Emphasis and strong emphasis (463)"###
);

    assert_eq!(
        micromark_with_options(r###"******foo******
"###, DANGER),
        r###"<p><strong><strong><strong>foo</strong></strong></strong></p>
"###,
        r###"Emphasis and strong emphasis (464)"###
);

    assert_eq!(
        micromark_with_options(r###"***foo***
"###, DANGER),
        r###"<p><em><strong>foo</strong></em></p>
"###,
        r###"Emphasis and strong emphasis (465)"###
);

    assert_eq!(
        micromark_with_options(r###"_____foo_____
"###, DANGER),
        r###"<p><em><strong><strong>foo</strong></strong></em></p>
"###,
        r###"Emphasis and strong emphasis (466)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo _bar* baz_
"###, DANGER),
        r###"<p><em>foo _bar</em> baz_</p>
"###,
        r###"Emphasis and strong emphasis (467)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo __bar *baz bim__ bam*
"###, DANGER),
        r###"<p><em>foo <strong>bar *baz bim</strong> bam</em></p>
"###,
        r###"Emphasis and strong emphasis (468)"###
);

    assert_eq!(
        micromark_with_options(r###"**foo **bar baz**
"###, DANGER),
        r###"<p>**foo <strong>bar baz</strong></p>
"###,
        r###"Emphasis and strong emphasis (469)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo *bar baz*
"###, DANGER),
        r###"<p>*foo <em>bar baz</em></p>
"###,
        r###"Emphasis and strong emphasis (470)"###
);

    assert_eq!(
        micromark_with_options(r###"*[bar*](/url)
"###, DANGER),
        r###"<p>*<a href="/url">bar*</a></p>
"###,
        r###"Emphasis and strong emphasis (471)"###
);

    assert_eq!(
        micromark_with_options(r###"_foo [bar_](/url)
"###, DANGER),
        r###"<p>_foo <a href="/url">bar_</a></p>
"###,
        r###"Emphasis and strong emphasis (472)"###
);

    assert_eq!(
        micromark_with_options(r###"*<img src="foo" title="*"/>
"###, DANGER),
        r###"<p>*<img src="foo" title="*"/></p>
"###,
        r###"Emphasis and strong emphasis (473)"###
);

    assert_eq!(
        micromark_with_options(r###"**<a href="**">
"###, DANGER),
        r###"<p>**<a href="**"></p>
"###,
        r###"Emphasis and strong emphasis (474)"###
);

    assert_eq!(
        micromark_with_options(r###"__<a href="__">
"###, DANGER),
        r###"<p>__<a href="__"></p>
"###,
        r###"Emphasis and strong emphasis (475)"###
);

    assert_eq!(
        micromark_with_options(r###"*a `*`*
"###, DANGER),
        r###"<p><em>a <code>*</code></em></p>
"###,
        r###"Emphasis and strong emphasis (476)"###
);

    assert_eq!(
        micromark_with_options(r###"_a `_`_
"###, DANGER),
        r###"<p><em>a <code>_</code></em></p>
"###,
        r###"Emphasis and strong emphasis (477)"###
);

    assert_eq!(
        micromark_with_options(r###"**a<http://foo.bar/?q=**>
"###, DANGER),
        r###"<p>**a<a href="http://foo.bar/?q=**">http://foo.bar/?q=**</a></p>
"###,
        r###"Emphasis and strong emphasis (478)"###
);

    assert_eq!(
        micromark_with_options(r###"__a<http://foo.bar/?q=__>
"###, DANGER),
        r###"<p>__a<a href="http://foo.bar/?q=__">http://foo.bar/?q=__</a></p>
"###,
        r###"Emphasis and strong emphasis (479)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/uri "title")
"###, DANGER),
        r###"<p><a href="/uri" title="title">link</a></p>
"###,
        r###"Links (480)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/uri)
"###, DANGER),
        r###"<p><a href="/uri">link</a></p>
"###,
        r###"Links (481)"###
);

    assert_eq!(
        micromark_with_options(r###"[](./target.md)
"###, DANGER),
        r###"<p><a href="./target.md"></a></p>
"###,
        r###"Links (482)"###
);

    assert_eq!(
        micromark_with_options(r###"[link]()
"###, DANGER),
        r###"<p><a href="">link</a></p>
"###,
        r###"Links (483)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](<>)
"###, DANGER),
        r###"<p><a href="">link</a></p>
"###,
        r###"Links (484)"###
);

    assert_eq!(
        micromark_with_options(r###"[]()
"###, DANGER),
        r###"<p><a href=""></a></p>
"###,
        r###"Links (485)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/my uri)
"###, DANGER),
        r###"<p>[link](/my uri)</p>
"###,
        r###"Links (486)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](</my uri>)
"###, DANGER),
        r###"<p><a href="/my%20uri">link</a></p>
"###,
        r###"Links (487)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo
bar)
"###, DANGER),
        r###"<p>[link](foo
bar)</p>
"###,
        r###"Links (488)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](<foo
bar>)
"###, DANGER),
        r###"<p>[link](<foo
bar>)</p>
"###,
        r###"Links (489)"###
);

    assert_eq!(
        micromark_with_options(r###"[a](<b)c>)
"###, DANGER),
        r###"<p><a href="b)c">a</a></p>
"###,
        r###"Links (490)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](<foo\>)
"###, DANGER),
        r###"<p>[link](&lt;foo&gt;)</p>
"###,
        r###"Links (491)"###
);

    assert_eq!(
        micromark_with_options(r###"[a](<b)c
[a](<b)c>
[a](<b>c)
"###, DANGER),
        r###"<p>[a](&lt;b)c
[a](&lt;b)c&gt;
[a](<b>c)</p>
"###,
        r###"Links (492)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](\(foo\))
"###, DANGER),
        r###"<p><a href="(foo)">link</a></p>
"###,
        r###"Links (493)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo(and(bar)))
"###, DANGER),
        r###"<p><a href="foo(and(bar))">link</a></p>
"###,
        r###"Links (494)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo(and(bar))
"###, DANGER),
        r###"<p>[link](foo(and(bar))</p>
"###,
        r###"Links (495)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo\(and\(bar\))
"###, DANGER),
        r###"<p><a href="foo(and(bar)">link</a></p>
"###,
        r###"Links (496)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](<foo(and(bar)>)
"###, DANGER),
        r###"<p><a href="foo(and(bar)">link</a></p>
"###,
        r###"Links (497)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo\)\:)
"###, DANGER),
        r###"<p><a href="foo):">link</a></p>
"###,
        r###"Links (498)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](#fragment)

[link](http://example.com#fragment)

[link](http://example.com?foo=3#frag)
"###, DANGER),
        r###"<p><a href="#fragment">link</a></p>
<p><a href="http://example.com#fragment">link</a></p>
<p><a href="http://example.com?foo=3#frag">link</a></p>
"###,
        r###"Links (499)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo\bar)
"###, DANGER),
        r###"<p><a href="foo%5Cbar">link</a></p>
"###,
        r###"Links (500)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](foo%20b&auml;)
"###, DANGER),
        r###"<p><a href="foo%20b%C3%A4">link</a></p>
"###,
        r###"Links (501)"###
);

    assert_eq!(
        micromark_with_options(r###"[link]("title")
"###, DANGER),
        r###"<p><a href="%22title%22">link</a></p>
"###,
        r###"Links (502)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/url "title")
[link](/url 'title')
[link](/url (title))
"###, DANGER),
        r###"<p><a href="/url" title="title">link</a>
<a href="/url" title="title">link</a>
<a href="/url" title="title">link</a></p>
"###,
        r###"Links (503)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/url "title \"&quot;")
"###, DANGER),
        r###"<p><a href="/url" title="title &quot;&quot;">link</a></p>
"###,
        r###"Links (504)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/url "title")
"###, DANGER),
        r###"<p><a href="/url%C2%A0%22title%22">link</a></p>
"###,
        r###"Links (505)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/url "title "and" title")
"###, DANGER),
        r###"<p>[link](/url &quot;title &quot;and&quot; title&quot;)</p>
"###,
        r###"Links (506)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](/url 'title "and" title')
"###, DANGER),
        r###"<p><a href="/url" title="title &quot;and&quot; title">link</a></p>
"###,
        r###"Links (507)"###
);

    assert_eq!(
        micromark_with_options(r###"[link](   /uri
  "title"  )
"###, DANGER),
        r###"<p><a href="/uri" title="title">link</a></p>
"###,
        r###"Links (508)"###
);

    assert_eq!(
        micromark_with_options(r###"[link] (/uri)
"###, DANGER),
        r###"<p>[link] (/uri)</p>
"###,
        r###"Links (509)"###
);

    assert_eq!(
        micromark_with_options(r###"[link [foo [bar]]](/uri)
"###, DANGER),
        r###"<p><a href="/uri">link [foo [bar]]</a></p>
"###,
        r###"Links (510)"###
);

    assert_eq!(
        micromark_with_options(r###"[link] bar](/uri)
"###, DANGER),
        r###"<p>[link] bar](/uri)</p>
"###,
        r###"Links (511)"###
);

    assert_eq!(
        micromark_with_options(r###"[link [bar](/uri)
"###, DANGER),
        r###"<p>[link <a href="/uri">bar</a></p>
"###,
        r###"Links (512)"###
);

    assert_eq!(
        micromark_with_options(r###"[link \[bar](/uri)
"###, DANGER),
        r###"<p><a href="/uri">link [bar</a></p>
"###,
        r###"Links (513)"###
);

    assert_eq!(
        micromark_with_options(r###"[link *foo **bar** `#`*](/uri)
"###, DANGER),
        r###"<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
"###,
        r###"Links (514)"###
);

    assert_eq!(
        micromark_with_options(r###"[![moon](moon.jpg)](/uri)
"###, DANGER),
        r###"<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
"###,
        r###"Links (515)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo [bar](/uri)](/uri)
"###, DANGER),
        r###"<p>[foo <a href="/uri">bar</a>](/uri)</p>
"###,
        r###"Links (516)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo *[bar [baz](/uri)](/uri)*](/uri)
"###, DANGER),
        r###"<p>[foo <em>[bar <a href="/uri">baz</a>](/uri)</em>](/uri)</p>
"###,
        r###"Links (517)"###
);

    assert_eq!(
        micromark_with_options(r###"![[[foo](uri1)](uri2)](uri3)
"###, DANGER),
        r###"<p><img src="uri3" alt="[foo](uri2)" /></p>
"###,
        r###"Links (518)"###
);

    assert_eq!(
        micromark_with_options(r###"*[foo*](/uri)
"###, DANGER),
        r###"<p>*<a href="/uri">foo*</a></p>
"###,
        r###"Links (519)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo *bar](baz*)
"###, DANGER),
        r###"<p><a href="baz*">foo *bar</a></p>
"###,
        r###"Links (520)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo [bar* baz]
"###, DANGER),
        r###"<p><em>foo [bar</em> baz]</p>
"###,
        r###"Links (521)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo <bar attr="](baz)">
"###, DANGER),
        r###"<p>[foo <bar attr="](baz)"></p>
"###,
        r###"Links (522)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo`](/uri)`
"###, DANGER),
        r###"<p>[foo<code>](/uri)</code></p>
"###,
        r###"Links (523)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo<http://example.com/?search=](uri)>
"###, DANGER),
        r###"<p>[foo<a href="http://example.com/?search=%5D(uri)">http://example.com/?search=](uri)</a></p>
"###,
        r###"Links (524)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][bar]

[bar]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a></p>
"###,
        r###"Links (525)"###
);

    assert_eq!(
        micromark_with_options(r###"[link [foo [bar]]][ref]

[ref]: /uri
"###, DANGER),
        r###"<p><a href="/uri">link [foo [bar]]</a></p>
"###,
        r###"Links (526)"###
);

    assert_eq!(
        micromark_with_options(r###"[link \[bar][ref]

[ref]: /uri
"###, DANGER),
        r###"<p><a href="/uri">link [bar</a></p>
"###,
        r###"Links (527)"###
);

    assert_eq!(
        micromark_with_options(r###"[link *foo **bar** `#`*][ref]

[ref]: /uri
"###, DANGER),
        r###"<p><a href="/uri">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>
"###,
        r###"Links (528)"###
);

    assert_eq!(
        micromark_with_options(r###"[![moon](moon.jpg)][ref]

[ref]: /uri
"###, DANGER),
        r###"<p><a href="/uri"><img src="moon.jpg" alt="moon" /></a></p>
"###,
        r###"Links (529)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo [bar](/uri)][ref]

[ref]: /uri
"###, DANGER),
        r###"<p>[foo <a href="/uri">bar</a>]<a href="/uri">ref</a></p>
"###,
        r###"Links (530)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo *bar [baz][ref]*][ref]

[ref]: /uri
"###, DANGER),
        r###"<p>[foo <em>bar <a href="/uri">baz</a></em>]<a href="/uri">ref</a></p>
"###,
        r###"Links (531)"###
);

    assert_eq!(
        micromark_with_options(r###"*[foo*][ref]

[ref]: /uri
"###, DANGER),
        r###"<p>*<a href="/uri">foo*</a></p>
"###,
        r###"Links (532)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo *bar][ref]*

[ref]: /uri
"###, DANGER),
        r###"<p><a href="/uri">foo *bar</a>*</p>
"###,
        r###"Links (533)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo <bar attr="][ref]">

[ref]: /uri
"###, DANGER),
        r###"<p>[foo <bar attr="][ref]"></p>
"###,
        r###"Links (534)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo`][ref]`

[ref]: /uri
"###, DANGER),
        r###"<p>[foo<code>][ref]</code></p>
"###,
        r###"Links (535)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo<http://example.com/?search=][ref]>

[ref]: /uri
"###, DANGER),
        r###"<p>[foo<a href="http://example.com/?search=%5D%5Bref%5D">http://example.com/?search=][ref]</a></p>
"###,
        r###"Links (536)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][BaR]

[bar]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a></p>
"###,
        r###"Links (537)"###
);

    // To do: Some unicode normalization bug.
    //     assert_eq!(
    //         micromark_with_options(r###"[ẞ]

    // [SS]: /url
    // "###, DANGER),
    //         r###"<p><a href="/url">ẞ</a></p>
    // "###,
    //         r###"Links (538)"###
    // );

    assert_eq!(
        micromark_with_options(r###"[Foo
  bar]: /url

[Baz][Foo bar]
"###, DANGER),
        r###"<p><a href="/url">Baz</a></p>
"###,
        r###"Links (539)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo] [bar]

[bar]: /url "title"
"###, DANGER),
        r###"<p>[foo] <a href="/url" title="title">bar</a></p>
"###,
        r###"Links (540)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]
[bar]

[bar]: /url "title"
"###, DANGER),
        r###"<p>[foo]
<a href="/url" title="title">bar</a></p>
"###,
        r###"Links (541)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]: /url1

[foo]: /url2

[bar][foo]
"###, DANGER),
        r###"<p><a href="/url1">bar</a></p>
"###,
        r###"Links (542)"###
);

    assert_eq!(
        micromark_with_options(r###"[bar][foo\!]

[foo!]: /url
"###, DANGER),
        r###"<p>[bar][foo!]</p>
"###,
        r###"Links (543)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][ref[]

[ref[]: /uri
"###, DANGER),
        r###"<p>[foo][ref[]</p>
<p>[ref[]: /uri</p>
"###,
        r###"Links (544)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][ref[bar]]

[ref[bar]]: /uri
"###, DANGER),
        r###"<p>[foo][ref[bar]]</p>
<p>[ref[bar]]: /uri</p>
"###,
        r###"Links (545)"###
);

    assert_eq!(
        micromark_with_options(r###"[[[foo]]]

[[[foo]]]: /url
"###, DANGER),
        r###"<p>[[[foo]]]</p>
<p>[[[foo]]]: /url</p>
"###,
        r###"Links (546)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][ref\[]

[ref\[]: /uri
"###, DANGER),
        r###"<p><a href="/uri">foo</a></p>
"###,
        r###"Links (547)"###
);

    assert_eq!(
        micromark_with_options(r###"[bar\\]: /uri

[bar\\]
"###, DANGER),
        r###"<p><a href="/uri">bar\</a></p>
"###,
        r###"Links (548)"###
);

    assert_eq!(
        micromark_with_options(r###"[]

[]: /uri
"###, DANGER),
        r###"<p>[]</p>
<p>[]: /uri</p>
"###,
        r###"Links (549)"###
);

    assert_eq!(
        micromark_with_options(r###"[
 ]

[
 ]: /uri
"###, DANGER),
        r###"<p>[
]</p>
<p>[
]: /uri</p>
"###,
        r###"Links (550)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][]

[foo]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a></p>
"###,
        r###"Links (551)"###
);

    assert_eq!(
        micromark_with_options(r###"[*foo* bar][]

[*foo* bar]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title"><em>foo</em> bar</a></p>
"###,
        r###"Links (552)"###
);

    assert_eq!(
        micromark_with_options(r###"[Foo][]

[foo]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">Foo</a></p>
"###,
        r###"Links (553)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo] 
[]

[foo]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a>
[]</p>
"###,
        r###"Links (554)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">foo</a></p>
"###,
        r###"Links (555)"###
);

    assert_eq!(
        micromark_with_options(r###"[*foo* bar]

[*foo* bar]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title"><em>foo</em> bar</a></p>
"###,
        r###"Links (556)"###
);

    assert_eq!(
        micromark_with_options(r###"[[*foo* bar]]

[*foo* bar]: /url "title"
"###, DANGER),
        r###"<p>[<a href="/url" title="title"><em>foo</em> bar</a>]</p>
"###,
        r###"Links (557)"###
);

    assert_eq!(
        micromark_with_options(r###"[[bar [foo]

[foo]: /url
"###, DANGER),
        r###"<p>[[bar <a href="/url">foo</a></p>
"###,
        r###"Links (558)"###
);

    assert_eq!(
        micromark_with_options(r###"[Foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p><a href="/url" title="title">Foo</a></p>
"###,
        r###"Links (559)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo] bar

[foo]: /url
"###, DANGER),
        r###"<p><a href="/url">foo</a> bar</p>
"###,
        r###"Links (560)"###
);

    assert_eq!(
        micromark_with_options(r###"\[foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p>[foo]</p>
"###,
        r###"Links (561)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo*]: /url

*[foo*]
"###, DANGER),
        r###"<p>*<a href="/url">foo*</a></p>
"###,
        r###"Links (562)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][bar]

[foo]: /url1
[bar]: /url2
"###, DANGER),
        r###"<p><a href="/url2">foo</a></p>
"###,
        r###"Links (563)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][]

[foo]: /url1
"###, DANGER),
        r###"<p><a href="/url1">foo</a></p>
"###,
        r###"Links (564)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo]()

[foo]: /url1
"###, DANGER),
        r###"<p><a href="">foo</a></p>
"###,
        r###"Links (565)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo](not a link)

[foo]: /url1
"###, DANGER),
        r###"<p><a href="/url1">foo</a>(not a link)</p>
"###,
        r###"Links (566)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][bar][baz]

[baz]: /url
"###, DANGER),
        r###"<p>[foo]<a href="/url">bar</a></p>
"###,
        r###"Links (567)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][bar][baz]

[baz]: /url1
[bar]: /url2
"###, DANGER),
        r###"<p><a href="/url2">foo</a><a href="/url1">baz</a></p>
"###,
        r###"Links (568)"###
);

    assert_eq!(
        micromark_with_options(r###"[foo][bar][baz]

[baz]: /url1
[foo]: /url2
"###, DANGER),
        r###"<p>[foo]<a href="/url1">bar</a></p>
"###,
        r###"Links (569)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo](/url "title")
"###, DANGER),
        r###"<p><img src="/url" alt="foo" title="title" /></p>
"###,
        r###"Images (570)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo *bar*]

[foo *bar*]: train.jpg "train & tracks"
"###, DANGER),
        r###"<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
"###,
        r###"Images (571)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo ![bar](/url)](/url2)
"###, DANGER),
        r###"<p><img src="/url2" alt="foo bar" /></p>
"###,
        r###"Images (572)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo [bar](/url)](/url2)
"###, DANGER),
        r###"<p><img src="/url2" alt="foo bar" /></p>
"###,
        r###"Images (573)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo *bar*][]

[foo *bar*]: train.jpg "train & tracks"
"###, DANGER),
        r###"<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
"###,
        r###"Images (574)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo *bar*][foobar]

[FOOBAR]: train.jpg "train & tracks"
"###, DANGER),
        r###"<p><img src="train.jpg" alt="foo bar" title="train &amp; tracks" /></p>
"###,
        r###"Images (575)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo](train.jpg)
"###, DANGER),
        r###"<p><img src="train.jpg" alt="foo" /></p>
"###,
        r###"Images (576)"###
);

    assert_eq!(
        micromark_with_options(r###"My ![foo bar](/path/to/train.jpg  "title"   )
"###, DANGER),
        r###"<p>My <img src="/path/to/train.jpg" alt="foo bar" title="title" /></p>
"###,
        r###"Images (577)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo](<url>)
"###, DANGER),
        r###"<p><img src="url" alt="foo" /></p>
"###,
        r###"Images (578)"###
);

    assert_eq!(
        micromark_with_options(r###"![](/url)
"###, DANGER),
        r###"<p><img src="/url" alt="" /></p>
"###,
        r###"Images (579)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo][bar]

[bar]: /url
"###, DANGER),
        r###"<p><img src="/url" alt="foo" /></p>
"###,
        r###"Images (580)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo][bar]

[BAR]: /url
"###, DANGER),
        r###"<p><img src="/url" alt="foo" /></p>
"###,
        r###"Images (581)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo][]

[foo]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="foo" title="title" /></p>
"###,
        r###"Images (582)"###
);

    assert_eq!(
        micromark_with_options(r###"![*foo* bar][]

[*foo* bar]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="foo bar" title="title" /></p>
"###,
        r###"Images (583)"###
);

    assert_eq!(
        micromark_with_options(r###"![Foo][]

[foo]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="Foo" title="title" /></p>
"###,
        r###"Images (584)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo] 
[]

[foo]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="foo" title="title" />
[]</p>
"###,
        r###"Images (585)"###
);

    assert_eq!(
        micromark_with_options(r###"![foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="foo" title="title" /></p>
"###,
        r###"Images (586)"###
);

    assert_eq!(
        micromark_with_options(r###"![*foo* bar]

[*foo* bar]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="foo bar" title="title" /></p>
"###,
        r###"Images (587)"###
);

    assert_eq!(
        micromark_with_options(r###"![[foo]]

[[foo]]: /url "title"
"###, DANGER),
        r###"<p>![[foo]]</p>
<p>[[foo]]: /url &quot;title&quot;</p>
"###,
        r###"Images (588)"###
);

    assert_eq!(
        micromark_with_options(r###"![Foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p><img src="/url" alt="Foo" title="title" /></p>
"###,
        r###"Images (589)"###
);

    assert_eq!(
        micromark_with_options(r###"!\[foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p>![foo]</p>
"###,
        r###"Images (590)"###
);

    assert_eq!(
        micromark_with_options(r###"\![foo]

[foo]: /url "title"
"###, DANGER),
        r###"<p>!<a href="/url" title="title">foo</a></p>
"###,
        r###"Images (591)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://foo.bar.baz>
"###, DANGER),
        r###"<p><a href="http://foo.bar.baz">http://foo.bar.baz</a></p>
"###,
        r###"Autolinks (592)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://foo.bar.baz/test?q=hello&id=22&boolean>
"###, DANGER),
        r###"<p><a href="http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>
"###,
        r###"Autolinks (593)"###
);

    assert_eq!(
        micromark_with_options(r###"<irc://foo.bar:2233/baz>
"###, DANGER),
        r###"<p><a href="irc://foo.bar:2233/baz">irc://foo.bar:2233/baz</a></p>
"###,
        r###"Autolinks (594)"###
);

    assert_eq!(
        micromark_with_options(r###"<MAILTO:FOO@BAR.BAZ>
"###, DANGER),
        r###"<p><a href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
"###,
        r###"Autolinks (595)"###
);

    assert_eq!(
        micromark_with_options(r###"<a+b+c:d>
"###, DANGER),
        r###"<p><a href="a+b+c:d">a+b+c:d</a></p>
"###,
        r###"Autolinks (596)"###
);

    assert_eq!(
        micromark_with_options(r###"<made-up-scheme://foo,bar>
"###, DANGER),
        r###"<p><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
"###,
        r###"Autolinks (597)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://../>
"###, DANGER),
        r###"<p><a href="http://../">http://../</a></p>
"###,
        r###"Autolinks (598)"###
);

    assert_eq!(
        micromark_with_options(r###"<localhost:5001/foo>
"###, DANGER),
        r###"<p><a href="localhost:5001/foo">localhost:5001/foo</a></p>
"###,
        r###"Autolinks (599)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://foo.bar/baz bim>
"###, DANGER),
        r###"<p>&lt;http://foo.bar/baz bim&gt;</p>
"###,
        r###"Autolinks (600)"###
);

    assert_eq!(
        micromark_with_options(r###"<http://example.com/\[\>
"###, DANGER),
        r###"<p><a href="http://example.com/%5C%5B%5C">http://example.com/\[\</a></p>
"###,
        r###"Autolinks (601)"###
);

    assert_eq!(
        micromark_with_options(r###"<foo@bar.example.com>
"###, DANGER),
        r###"<p><a href="mailto:foo@bar.example.com">foo@bar.example.com</a></p>
"###,
        r###"Autolinks (602)"###
);

    assert_eq!(
        micromark_with_options(r###"<foo+special@Bar.baz-bar0.com>
"###, DANGER),
        r###"<p><a href="mailto:foo+special@Bar.baz-bar0.com">foo+special@Bar.baz-bar0.com</a></p>
"###,
        r###"Autolinks (603)"###
);

    assert_eq!(
        micromark_with_options(r###"<foo\+@bar.example.com>
"###, DANGER),
        r###"<p>&lt;foo+@bar.example.com&gt;</p>
"###,
        r###"Autolinks (604)"###
);

    assert_eq!(
        micromark_with_options(r###"<>
"###, DANGER),
        r###"<p>&lt;&gt;</p>
"###,
        r###"Autolinks (605)"###
);

    assert_eq!(
        micromark_with_options(r###"< http://foo.bar >
"###, DANGER),
        r###"<p>&lt; http://foo.bar &gt;</p>
"###,
        r###"Autolinks (606)"###
);

    assert_eq!(
        micromark_with_options(r###"<m:abc>
"###, DANGER),
        r###"<p>&lt;m:abc&gt;</p>
"###,
        r###"Autolinks (607)"###
);

    assert_eq!(
        micromark_with_options(r###"<foo.bar.baz>
"###, DANGER),
        r###"<p>&lt;foo.bar.baz&gt;</p>
"###,
        r###"Autolinks (608)"###
);

    assert_eq!(
        micromark_with_options(r###"http://example.com
"###, DANGER),
        r###"<p>http://example.com</p>
"###,
        r###"Autolinks (609)"###
);

    assert_eq!(
        micromark_with_options(r###"foo@bar.example.com
"###, DANGER),
        r###"<p>foo@bar.example.com</p>
"###,
        r###"Autolinks (610)"###
);

    assert_eq!(
        micromark_with_options(r###"<a><bab><c2c>
"###, DANGER),
        r###"<p><a><bab><c2c></p>
"###,
        r###"Raw HTML (611)"###
);

    assert_eq!(
        micromark_with_options(r###"<a/><b2/>
"###, DANGER),
        r###"<p><a/><b2/></p>
"###,
        r###"Raw HTML (612)"###
);

    assert_eq!(
        micromark_with_options(r###"<a  /><b2
data="foo" >
"###, DANGER),
        r###"<p><a  /><b2
data="foo" ></p>
"###,
        r###"Raw HTML (613)"###
);

    assert_eq!(
        micromark_with_options(r###"<a foo="bar" bam = 'baz <em>"</em>'
_boolean zoop:33=zoop:33 />
"###, DANGER),
        r###"<p><a foo="bar" bam = 'baz <em>"</em>'
_boolean zoop:33=zoop:33 /></p>
"###,
        r###"Raw HTML (614)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo <responsive-image src="foo.jpg" />
"###, DANGER),
        r###"<p>Foo <responsive-image src="foo.jpg" /></p>
"###,
        r###"Raw HTML (615)"###
);

    assert_eq!(
        micromark_with_options(r###"<33> <__>
"###, DANGER),
        r###"<p>&lt;33&gt; &lt;__&gt;</p>
"###,
        r###"Raw HTML (616)"###
);

    assert_eq!(
        micromark_with_options(r###"<a h*#ref="hi">
"###, DANGER),
        r###"<p>&lt;a h*#ref=&quot;hi&quot;&gt;</p>
"###,
        r###"Raw HTML (617)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="hi'> <a href=hi'>
"###, DANGER),
        r###"<p>&lt;a href=&quot;hi'&gt; &lt;a href=hi'&gt;</p>
"###,
        r###"Raw HTML (618)"###
);

    assert_eq!(
        micromark_with_options(r###"< a><
foo><bar/ >
<foo bar=baz
bim!bop />
"###, DANGER),
        r###"<p>&lt; a&gt;&lt;
foo&gt;&lt;bar/ &gt;
&lt;foo bar=baz
bim!bop /&gt;</p>
"###,
        r###"Raw HTML (619)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href='bar'title=title>
"###, DANGER),
        r###"<p>&lt;a href='bar'title=title&gt;</p>
"###,
        r###"Raw HTML (620)"###
);

    assert_eq!(
        micromark_with_options(r###"</a></foo >
"###, DANGER),
        r###"<p></a></foo ></p>
"###,
        r###"Raw HTML (621)"###
);

    assert_eq!(
        micromark_with_options(r###"</a href="foo">
"###, DANGER),
        r###"<p>&lt;/a href=&quot;foo&quot;&gt;</p>
"###,
        r###"Raw HTML (622)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <!-- this is a
comment - with hyphen -->
"###, DANGER),
        r###"<p>foo <!-- this is a
comment - with hyphen --></p>
"###,
        r###"Raw HTML (623)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <!-- not a comment -- two hyphens -->
"###, DANGER),
        r###"<p>foo &lt;!-- not a comment -- two hyphens --&gt;</p>
"###,
        r###"Raw HTML (624)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <!--> foo -->

foo <!-- foo--->
"###, DANGER),
        r###"<p>foo &lt;!--&gt; foo --&gt;</p>
<p>foo &lt;!-- foo---&gt;</p>
"###,
        r###"Raw HTML (625)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <?php echo $a; ?>
"###, DANGER),
        r###"<p>foo <?php echo $a; ?></p>
"###,
        r###"Raw HTML (626)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <!ELEMENT br EMPTY>
"###, DANGER),
        r###"<p>foo <!ELEMENT br EMPTY></p>
"###,
        r###"Raw HTML (627)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <![CDATA[>&<]]>
"###, DANGER),
        r###"<p>foo <![CDATA[>&<]]></p>
"###,
        r###"Raw HTML (628)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <a href="&ouml;">
"###, DANGER),
        r###"<p>foo <a href="&ouml;"></p>
"###,
        r###"Raw HTML (629)"###
);

    assert_eq!(
        micromark_with_options(r###"foo <a href="\*">
"###, DANGER),
        r###"<p>foo <a href="\*"></p>
"###,
        r###"Raw HTML (630)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="\"">
"###, DANGER),
        r###"<p>&lt;a href=&quot;&quot;&quot;&gt;</p>
"###,
        r###"Raw HTML (631)"###
);

    assert_eq!(
        micromark_with_options(r###"foo  
baz
"###, DANGER),
        r###"<p>foo<br />
baz</p>
"###,
        r###"Hard line breaks (632)"###
);

    assert_eq!(
        micromark_with_options(r###"foo\
baz
"###, DANGER),
        r###"<p>foo<br />
baz</p>
"###,
        r###"Hard line breaks (633)"###
);

    assert_eq!(
        micromark_with_options(r###"foo       
baz
"###, DANGER),
        r###"<p>foo<br />
baz</p>
"###,
        r###"Hard line breaks (634)"###
);

    assert_eq!(
        micromark_with_options(r###"foo  
     bar
"###, DANGER),
        r###"<p>foo<br />
bar</p>
"###,
        r###"Hard line breaks (635)"###
);

    assert_eq!(
        micromark_with_options(r###"foo\
     bar
"###, DANGER),
        r###"<p>foo<br />
bar</p>
"###,
        r###"Hard line breaks (636)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo  
bar*
"###, DANGER),
        r###"<p><em>foo<br />
bar</em></p>
"###,
        r###"Hard line breaks (637)"###
);

    assert_eq!(
        micromark_with_options(r###"*foo\
bar*
"###, DANGER),
        r###"<p><em>foo<br />
bar</em></p>
"###,
        r###"Hard line breaks (638)"###
);

    assert_eq!(
        micromark_with_options(r###"`code  
span`
"###, DANGER),
        r###"<p><code>code   span</code></p>
"###,
        r###"Hard line breaks (639)"###
);

    assert_eq!(
        micromark_with_options(r###"`code\
span`
"###, DANGER),
        r###"<p><code>code\ span</code></p>
"###,
        r###"Hard line breaks (640)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="foo  
bar">
"###, DANGER),
        r###"<p><a href="foo  
bar"></p>
"###,
        r###"Hard line breaks (641)"###
);

    assert_eq!(
        micromark_with_options(r###"<a href="foo\
bar">
"###, DANGER),
        r###"<p><a href="foo\
bar"></p>
"###,
        r###"Hard line breaks (642)"###
);

    assert_eq!(
        micromark_with_options(r###"foo\
"###, DANGER),
        r###"<p>foo\</p>
"###,
        r###"Hard line breaks (643)"###
);

    assert_eq!(
        micromark_with_options(r###"foo  
"###, DANGER),
        r###"<p>foo</p>
"###,
        r###"Hard line breaks (644)"###
);

    assert_eq!(
        micromark_with_options(r###"### foo\
"###, DANGER),
        r###"<h3>foo\</h3>
"###,
        r###"Hard line breaks (645)"###
);

    assert_eq!(
        micromark_with_options(r###"### foo  
"###, DANGER),
        r###"<h3>foo</h3>
"###,
        r###"Hard line breaks (646)"###
);

    assert_eq!(
        micromark_with_options(r###"foo
baz
"###, DANGER),
        r###"<p>foo
baz</p>
"###,
        r###"Soft line breaks (647)"###
);

    assert_eq!(
        micromark_with_options(r###"foo 
 baz
"###, DANGER),
        r###"<p>foo
baz</p>
"###,
        r###"Soft line breaks (648)"###
);

    assert_eq!(
        micromark_with_options(r###"hello $.;'there
"###, DANGER),
        r###"<p>hello $.;'there</p>
"###,
        r###"Textual content (649)"###
);

    assert_eq!(
        micromark_with_options(r###"Foo χρῆν
"###, DANGER),
        r###"<p>Foo χρῆν</p>
"###,
        r###"Textual content (650)"###
);

    assert_eq!(
        micromark_with_options(r###"Multiple     spaces
"###, DANGER),
        r###"<p>Multiple     spaces</p>
"###,
        r###"Textual content (651)"###
);
}