anchor.diff:  }
   
   class markdown_paragraph extends markdown_node {
  -    markdown_paragraph(String _content) : super() {
  -        children.add(new markdown_plaintext(_content.trim()));
  +    markdown_paragraph(String content) : super() {
  +        if (content.endsWith("\n"))
  +            content = content.substring(0, content.length-1);
  +        List<markdown_node> subcontent = generate_markdown_emphasis(content);
  +        for (markdown_node cur in subcontent) {
  +            children.add(cur);
  +        }
       }
   
       String generate_html() {
  
positive.code: }
  
  main_wrapped() {
      String inp = "A First Level Header\n====================\n\nA Second Level Header\n---------------------\n\nNow is the time for all good men to come to\nthe aid of their country. This is just a\nregular paragraph.\n\nThe quick brown fox jumped over the lazy\ndog's back.\n\n### Header 3\n\n> This is a blockquote.\n> \n> This is the second paragraph in the blockquote.\n>\n> ## This is an H2 in a blockquote";
      print(markdown_to_html(inp));
  }
  
negative.code: }
  
  class markdown_emphasis extends markdown_node {
      markdown_emphasis(String content) : super() {
          children.add(new markdown_plaintext(content));
      }
  
      String generate_html() {
          String ret = "<em>";
          for (markdown_node cur in children) {
              ret = "${ret}${cur.generate_html()}";
          }
          ret = "${ret}</em>";
          return ret;
  