Diff for /loncom/homework/cleanxml/post_xml.pm between versions 1.7 and 1.9

version 1.7, 2016/01/14 16:28:06 version 1.9, 2016/01/21 22:09:38
Line 128  sub post_xml { Line 128  sub post_xml {
       
   remove_useless_notsolved($root);    remove_useless_notsolved($root);
       
     fix_comments($root);
     
   fix_paragraphs_inside($root, \@all_block);    fix_paragraphs_inside($root, \@all_block);
   
   remove_empty_style($root);    remove_empty_style($root);
Line 1810  sub remove_useless_notsolved { Line 1812  sub remove_useless_notsolved {
   }    }
 }  }
   
   # Use <pre> for multi-line comments without elements.
   sub fix_comments {
     my ($root) = @_;
     my $doc = $root->ownerDocument;
     my @comments = $root->getElementsByTagName('comment');
     foreach my $comment (@comments) {
       my $first = $comment->firstChild;
       if (defined $first) {
         if ($first->nodeType == XML_TEXT_NODE && $first->nodeValue =~ /\n/ &&
             !defined $first->nextSibling) {
           my $pre = $doc->createElement('pre');
           $comment->removeChild($first);
           $comment->appendChild($pre);
           $pre->appendChild($first);
         }
       }
     }
   }
   
 # adds a paragraph inside if needed and calls fix_paragraph for all paragraphs (including new ones)  # adds a paragraph inside if needed and calls fix_paragraph for all paragraphs (including new ones)
 sub fix_paragraphs_inside {  sub fix_paragraphs_inside {
   my ($node, $all_block) = @_;    my ($node, $all_block) = @_;
   # blocks in which paragrahs will be added:    # blocks in which paragrahs will be added:
   my @blocks_with_p = ('loncapa','library','problem','part','problemtype','window','block','while','postanswerdate','preduedate','solved','notsolved','languageblock','instructorcomment','togglebox','standalone','body','form');    my @blocks_with_p = ('loncapa','library','problem','part','problemtype','window','block','while','postanswerdate','preduedate','languageblock','instructorcomment','togglebox','standalone','body','form');
   my @fix_p_if_br_or_p = (@responses,'foil','item','text','label','hintgroup','hintpart','hint','web','windowlink','div','li','dd','td','th','blockquote');    my @fix_p_if_br_or_p = (@responses,'foil','item','text','label','hintgroup','hintpart','hint','web','windowlink','div','li','dd','td','th','blockquote','solved','notsolved');
   if ((string_in_array(\@blocks_with_p, $node->nodeName) && paragraph_needed($node)) ||    if ((string_in_array(\@blocks_with_p, $node->nodeName) && paragraph_needed($node)) ||
       (string_in_array(\@fix_p_if_br_or_p, $node->nodeName) && paragraph_inside($node))) {        (string_in_array(\@fix_p_if_br_or_p, $node->nodeName) && paragraph_inside($node))) {
     # if non-empty, add paragraphs where needed between all br and remove br      # if non-empty, add paragraphs where needed between all br and remove br

Removed from v.1.7  
changed lines
  Added in v.1.9


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>