From: <de...@de...> - 2008-10-29 12:53:17
|
Author: SopanShewale Date: 2008-10-29 07:53:10 -0500 (Wed, 29 Oct 2008) New Revision: 17714 Trac url: http://develop.twiki.org/trac/changeset/17714 Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/Constants.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Base.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Leaf.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Node.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/WC.pm twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/TML2HTML.pm Log: Item6088: The Perl modules do not have fully qualified names and wrong convention/or error in the name of the file/module name - corrected this and verified on a few instances of TWiki Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/Constants.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/Constants.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/Constants.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -1,7 +1,13 @@ #package TWiki::Plugins::WysiwygPlugin::Constants; # Use s simpler-named namespace for constants to improve code readability -package WC; +#package WC; +#This is corrected to following on 21/Oct/2008 +#The package name should be fully qualified name +#suggestion was taken from Chris - rpm build was generating error while installing the package as rpm +# code corrected - Sopan Shewale +package TWiki::Plugins::WysiwygPlugin::Constants; + use strict; our (%ALWAYS_BLOCK, $ALWAYS_BLOCK_S, $STARTWW, $ENDWW, $PROTOCOL); Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Base.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Base.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Base.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -3,20 +3,6 @@ use Assert; -sub isLeafNode { - my $node = shift; - return ($node->{nodeType} == 3 || !$node->{head}); -} - -sub isBlockNode { - return 0; -} - -sub isTextNode { - my $node = shift; - return (isLeafNode($node) || isBlockNode($node)); -} - # pure virtual sub generate { ASSERT(0); Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Leaf.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Leaf.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Leaf.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -38,7 +38,6 @@ my $this = {}; $this->{tag} = ''; - $this->{nodeType} = 3; $this->{text} = $text; return bless( $this, $class ); } @@ -55,20 +54,20 @@ my( $this, $options ) = @_; my $t = $this->{text}; - if (!($options & $WC::KEEP_WS)) { + if (!($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS)) { $t =~ s/\t/ /g; - $t =~ s/\n/$WC::CHECKw/g; + $t =~ s/\n/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw/g; $t =~ s/ +/ /g; } - if( $options & $WC::NOP_ALL ) { + if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NOP_ALL ) { # escape all embedded wikiwords - $t =~ s/$WC::STARTWW($TWiki::regex{wikiWordRegex})/<nop>$1/go; - $t =~ s/$WC::STARTWW($TWiki::regex{abbrevRegex})/<nop>$1/go; + $t =~ s/$TWiki::Plugins::WysiwygPlugin::Constants::STARTWW($TWiki::regex{wikiWordRegex})/<nop>$1/go; + $t =~ s/$TWiki::Plugins::WysiwygPlugin::Constants::STARTWW($TWiki::regex{abbrevRegex})/<nop>$1/go; $t =~ s/\[/<nop>[/g; } - unless ($options & $WC::KEEP_ENTITIES) { + unless ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_ENTITIES) { $t =~ s/&($text_entities_re);/chr($text_entities{$1})/ego; - $t =~ s/ /$WC::NBSP/g; + $t =~ s/ /$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/g; } return (0, $t); } Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Node.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Node.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/Node.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -61,7 +61,6 @@ $this->{context} = $context; $this->{tag} = $tag; - $this->{nodeType} = 2; $this->{attrs} = {}; if( $attrs ) { foreach my $attr ( keys %$attrs ) { @@ -131,8 +130,8 @@ # Item5076: removed CHECKn from the following exprs, because loss of it # breaks line-sensitive TML content inside flattened content. - $s =~ s/^[ \t\n$WC::CHECKw$WC::CHECKs]+/$WC::CHECKw/o; - $s =~ s/[ \t\n$WC::CHECKw]+$/$WC::CHECKw/o; + $s =~ s/^[ \t\n$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs]+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw/o; + $s =~ s/[ \t\n$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw]+$/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw/o; return $s; } @@ -232,46 +231,47 @@ # Move leading \n out of protected region. Delicate hack fix required to # maintain TWiki variables at the start of lines. - $text =~ s/$WC::PON$WC::NBBR/$WC::CHECKn$WC::PON/g; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON/g; # isolate whitespace checks and convert to $NBSP - $text =~ s/$WC::CHECKw$WC::CHECKw+/$WC::CHECKw/go; - $text =~ s/([$WC::CHECKn$WC::CHECKs$WC::NBSP $WC::TAB$WC::NBBR]($WC::PON|$WC::POFF)?)$WC::CHECKw/$1/go; - $text =~ s/$WC::CHECKw(($WC::PON|$WC::POFF)?[$WC::CHECKn$WC::CHECKs$WC::NBSP $WC::NBBR])/$1/go; - $text =~ s/^($WC::CHECKw)+//gos; - $text =~ s/($WC::CHECKw)+$//gos; - $text =~ s/($WC::CHECKw)+/$WC::NBSP/go; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw/go; + $text =~ s/([$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR]($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF)?)$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw/$1/go; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw(($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF)?[$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR])/$1/go; + $text =~ s/^($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw)+//gos; + $text =~ s/($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw)+$//gos; + $text =~ s/($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw)+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; # isolate $CHECKs and convert to $NBSP - $text =~ s/$WC::CHECKs$WC::CHECKs+/$WC::CHECKs/go; - $text =~ s/([ $WC::NBSP$WC::TAB])$WC::CHECKs/$1/go; - $text =~ s/$WC::CHECKs( |$WC::NBSP)/$1/go; - $text =~ s/($WC::CHECKs)+/$WC::NBSP/go; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs/go; + $text =~ s/([ $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB])$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs/$1/go; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs( |$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP)/$1/go; + $text =~ s/($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs)+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; - $text =~ s/<br( \/)?>$WC::NBBR/$WC::NBBR/g; # Remove BR before P + $text =~ s/<br( \/)?>$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/g; # Remove BR before P #die "Converted ",WC::debugEncode($text),"\n"; - my @regions = split(/([$WC::PON$WC::POFF])/o, $text); + my @regions = split(/([$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF])/o, $text); my $protect = 0; $text = ''; + foreach my $tml (@regions) { - if ($tml eq $WC::PON) { + if ($tml eq $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON) { $protect++; next; - } elsif ($tml eq $WC::POFF) { + } elsif ($tml eq $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF) { $protect--; next; } # isolate $NBBR and convert to \n. unless ($protect) { - $tml =~ s/\n$WC::NBBR/$WC::NBBR$WC::NBBR/go; - $tml =~ s/$WC::NBBR\n/$WC::NBBR$WC::NBBR/go; - $tml =~ s/$WC::NBBR( |$WC::NBSP)+$WC::NBBR/$WC::NBBR$WC::NBBR/go; - $tml =~ s/ +$WC::NBBR/$WC::NBBR/go; - $tml =~ s/$WC::NBBR +/$WC::NBBR/go; - $tml =~ s/$WC::NBBR$WC::NBBR+/$WC::NBBR$WC::NBBR/go; + $tml =~ s/\n$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR\n/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR( |$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP)+$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; + $tml =~ s/ +$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR +/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/go; # Now convert adjacent NBBRs to recreate empty lines # 1 NBBR -> 1 newline @@ -282,41 +282,41 @@ # 6 NBBRs -> <p /><p /><p /> - 3 blank lines - 4 newlines # 7 NBBRs -> 5 newlines # 8 NBBRs -> <p /><p /><p /><p /> - 4 blank lines - 5 newlines - $tml =~ s.($WC::NBBR$WC::NBBR$WC::NBBR$WC::NBBR+). + $tml =~ s.($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR+). "\n" x ((length($1) + 1) / 2 + 1) .geo; } # isolate $CHECKn and convert to $NBBR - $tml =~ s/$WC::CHECKn([$WC::NBSP $WC::TAB])*$WC::CHECKn/$WC::CHECKn/go; - $tml =~ s/$WC::CHECKn$WC::CHECKn+/$WC::CHECKn/go; - $tml =~ s/(?<=$WC::NBBR)$WC::CHECKn//gom; - $tml =~ s/$WC::CHECKn(?=$WC::NBBR)//gom; - $tml =~ s/$WC::CHECKn+/$WC::NBBR/gos; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn([$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB])*$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn/go; + $tml =~ s/(?<=$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR)$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn//gom; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn(?=$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR)//gom; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/gos; - $tml =~ s/$WC::NBBR/\n/gos; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/\n/gos; # Convert tabs to NBSP - $tml =~ s/$WC::TAB/$WC::NBSP$WC::NBSP$WC::NBSP/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; # isolate $NBSP and convert to space unless ($protect) { - $tml =~ s/ +$WC::NBSP/$WC::NBSP/go; - $tml =~ s/$WC::NBSP +/$WC::NBSP/go; + $tml =~ s/ +$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP +/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; } - $tml =~ s/$WC::NBSP/ /go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/ /go; - $tml =~ s/$WC::CHECK1$WC::CHECK1+/$WC::CHECK1/go; - $tml =~ s/$WC::CHECK2$WC::CHECK2+/$WC::CHECK2/go; - $tml =~ s/$WC::CHECK2$WC::CHECK1/$WC::CHECK2/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2+/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2/go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2/go; - $tml =~ s/(^|[\s\(])$WC::CHECK1/$1/gso; - $tml =~ s/$WC::CHECK2($|[\s\,\.\;\:\!\?\)\*])/$1/gso; + $tml =~ s/(^|[\s\(])$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1/$1/gso; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2($|[\s\,\.\;\:\!\?\)\*])/$1/gso; - $tml =~ s/$WC::CHECK1(\s|$)/$1/gso; - $tml =~ s/(^|\s)$WC::CHECK2/$1/gso; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1(\s|$)/$1/gso; + $tml =~ s/(^|\s)$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2/$1/gso; - $tml =~ s/$WC::CHECK1/ /go; - $tml =~ s/$WC::CHECK2/ /go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1/ /go; + $tml =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2/ /go; #print STDERR WC::debugEncode($before); #print STDERR " -> '",WC::debugEncode($tml),"'\n"; $text .= $tml; @@ -362,7 +362,7 @@ $meal->_remove(); if ($meal->{tag}) { require TWiki::Plugins::WysiwygPlugin::HTML2TML::Leaf; - $node->addChild(new TWiki::Plugins::WysiwygPlugin::HTML2TML::Leaf($WC::NBBR)); + $node->addChild(new TWiki::Plugins::WysiwygPlugin::HTML2TML::Leaf($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR)); $node->_eat($meal); } } @@ -382,12 +382,12 @@ # If this is an emphasis (b, i, code, tt, strong) then # flatten out any child nodes that express the same emphasis. # This has to be done because TWiki emphases are single level. - if ($WC::EMPHTAG{$node->{tag}}) { + if ($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::EMPHTAG{$node->{tag}}) { my $kid = $node->{head}; while ($kid) { - if ($WC::EMPHTAG{$kid->{tag}} && - $WC::EMPHTAG{$kid->{tag}} eq - $WC::EMPHTAG{$node->{tag}}) { + if ($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::EMPHTAG{$kid->{tag}} && + $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::EMPHTAG{$kid->{tag}} eq + $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::EMPHTAG{$node->{tag}}) { $kid = $kid->_inline(); } else { $kid = $kid->{next}; @@ -432,13 +432,13 @@ return ( 0, '<literal>'.$text.'</literal>' ); } - if( $options & $WC::NO_HTML ) { + if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_HTML ) { # NO_HTML implies NO_TML my $brats = $this->_flatten( $options ); return ( 0, $brats ); } - if( $options & $WC::NO_TML ) { + if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_TML ) { return ( 0, $this->stringify() ); } @@ -472,20 +472,20 @@ my $text = ''; my $flags = 0; - my $protected = ($options & $WC::PROTECTED) || + my $protected = ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PROTECTED) || $this->hasClass('WYSIWYG_PROTECTED') || $this->hasClass('WYSIWYG_STICKY') || 0; if ($protected) { # Expand brs, which are used in the protected encoding in place of # newlines, and protect whitespace - $options |= $WC::BR2NL | $WC::KEEP_WS; + $options |= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BR2NL | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS; } my $kid = $this->{head}; while ($kid) { my( $f, $t ) = $kid->generate( $options ); - if (!($options & $WC::KEEP_WS) + if (!($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS) && $text && $text =~ /\w$/ && $t =~ /^\w/) { # if the last child ends in a \w and this child # starts in a \w, we need to insert a space @@ -496,20 +496,20 @@ $kid = $kid->{next}; } if ($protected) { - $text =~ s/[$WC::PON$WC::POFF]//g; + $text =~ s/[$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF]//g; - unless ($options & $WC::KEEP_ENTITIES) { + unless ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_ENTITIES) { require HTML::Entities; $text = HTML::Entities::decode_entities($text); # decodes to \240, which we want to make a space. - $text =~ s/\240/$WC::NBSP/g; + $text =~ s/\240/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/g; } - $text =~ s/ /$WC::NBSP/g; - $text =~ s/\n/$WC::NBBR/g; - $text = $WC::PON.$text.$WC::POFF; + $text =~ s/ /$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/g; + $text =~ s/\n/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/g; + $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PON.$text.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::POFF; } - $text = _trim($text) unless ($options & $WC::KEEP_WS); + $text = _trim($text) unless ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS); return ( $flags, $text ); } @@ -523,7 +523,7 @@ next unless $k; if( $k eq 'class' ) { # if cleaning aggressively, remove class attributes completely - next if ($options & $WC::VERY_CLEAN); + next if ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::VERY_CLEAN); foreach my $c qw(WYSIWYG_PROTECTED WYSIWYG_STICKY TMLverbatim WYSIWYG_LINK) { $v =~ s/\b$c\b//; } @@ -546,7 +546,7 @@ my $tag = $this->{tag}; my $p = _htmlParams( $this->{attrs}, $options ); - if( $text =~ /^\s*$/ && $WC::SELFCLOSING{$tag}) { + if( $text =~ /^\s*$/ && $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::SELFCLOSING{$tag}) { return ( $flags, '<'.$tag.$p.' />' ); } else { return ( $flags, '<'.$tag.$p.'>'.$text.'</'.$tag.'>' ); @@ -589,7 +589,7 @@ while ($kid) { # be tolerant of dl, ol and ul with no li if( $kid->{tag} =~ m/^[dou]l$/i ) { - $text .= $kid->_convertList( $indent.$WC::TAB ); + $text .= $kid->_convertList( $indent.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB ); $kid = $kid->{next}; next; } @@ -599,10 +599,10 @@ } if( $isdl && ( $kid->{tag} eq 'dt' )) { # DT, set the bullet type for subsequent DT - $basebullet = $kid->_flatten( $WC::NO_BLOCK_TML ); - $basebullet =~ s/[\s$WC::CHECKw$WC::CHECKs]+$//; + $basebullet = $kid->_flatten( $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); + $basebullet =~ s/[\s$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs]+$//; $basebullet .= ':'; - $basebullet =~ s/$WC::CHECKn/ /g; + $basebullet =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn/ /g; $basebullet =~ s/^\s+//; $basebullet = '$ '.$basebullet; $pendingDT = 1; # remember in case there is no DD @@ -626,10 +626,10 @@ while ($grandkid) { if( $grandkid->{tag} =~ /^[dou]l$/i ) { #$spawn = _trim( $spawn ); - $t = $grandkid->_convertList( $indent.$WC::TAB ); + $t = $grandkid->_convertList( $indent.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB ); } else { - ( $f, $t ) = $grandkid->generate( $WC::NO_BLOCK_TML ); - $t =~ s/$WC::CHECKn/ /g; + ( $f, $t ) = $grandkid->generate( $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); + $t =~ s/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn/ /g; # Item5257: If this is the last child of the LI, trim # trailing spaces. Otherwise spaces generated by the # editor before the </li> will be appended to the line. @@ -643,14 +643,14 @@ $grandkid = $grandkid->{next}; } #$spawn = _trim($spawn); - $text .= $WC::CHECKn.$indent.$bullet.$WC::CHECKs.$spawn.$WC::CHECKn; + $text .= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.$indent.$bullet.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs.$spawn.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn; $pendingDT = 0; $basebullet = '' if $isdl; $kid = $kid->{next}; } if( $pendingDT ) { # DT with no corresponding DD - $text .= $WC::CHECKn.$indent.$basebullet.$WC::CHECKn; + $text .= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.$indent.$basebullet.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn; } return $text; } @@ -701,7 +701,7 @@ } } else { ( $flags, $text ) = $kid->generate( $options ); - if( $flags & $WC::BLOCK_TML ) { + if( $flags & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML ) { return 0; } } @@ -744,8 +744,8 @@ # BRs, as added by some table editors. sub _TDtrim { my $td = shift; - $td =~ s/^($WC::NBSP|$WC::NBBR|$WC::CHECKn|$WC::CHECKs|$WC::CHECKw|$WC::CHECK1|$WC::CHECK2|$WC::TAB|\s)+//so; - $td =~ s/(<br \/>|<br>|$WC::NBSP|$WC::NBBR|$WC::CHECKn|$WC::CHECKs|$WC::CHECKw|$WC::CHECK1|$WC::CHECK2|$WC::TAB|\s)+$//so; + $td =~ s/^($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB|\s)+//so; + $td =~ s/(<br \/>|<br>|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB|\s)+$//so; return $td; } @@ -775,30 +775,30 @@ # some other sort of (unexpected) tag return 0; } - return 0 if( $flags & $WC::BLOCK_TML ); + return 0 if( $flags & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML ); if( $kid->{attrs} ) { my $a = _deduceAlignment( $kid ); if( $text && $a eq 'right' ) { - $text = $WC::NBSP.$text; + $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP.$text; } elsif( $text && $a eq 'center' ) { - $text = $WC::NBSP.$text.$WC::NBSP; + $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP.$text.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP; } elsif( $text && $a eq 'left' ) { - $text .= $WC::NBSP; + $text .= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP; } if( $kid->{attrs}->{rowspan} && $kid->{attrs}->{rowspan} > 1 ) { return 0; } } - $text =~ s/ /$WC::NBSP/g; + $text =~ s/ /$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/g; #if (--$ignoreCols > 0) { # # colspanned # $text = ''; #} els - if ($text =~ /^$WC::NBSP*$/) { - $text = $WC::NBSP; + if ($text =~ /^$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP*$/) { + $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP; } else { - $text = $WC::NBSP.$text.$WC::NBSP; + $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP.$text.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP; } if( $kid->{attrs} && $kid->{attrs}->{colspan} && $kid->{attrs}->{colspan} > 1 ) { @@ -837,7 +837,7 @@ sub _H { my( $this, $options, $depth ) = @_; my( $flags, $contents ) = $this->_flatten( $options ); - return ( 0, undef ) if( $flags & $WC::BLOCK_TML ); + return ( 0, undef ) if( $flags & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML ); my $notoc = ''; if( $this->hasClass( 'notoc' )) { $notoc = '!!'; @@ -848,21 +848,20 @@ } $contents =~ s/^\s+/ /; $contents =~ s/\s+$//; - my $res = $WC::CHECKn.'---'.($indicator x $depth).$notoc. - $WC::CHECKs.$contents.$WC::CHECKn; - return ( $flags | $WC::BLOCK_TML, $res ); + my $res = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.'---'.($indicator x $depth).$notoc. + $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKs.$contents.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn; + return ( $flags | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, $res ); } # generate an emphasis sub _emphasis { my( $this, $options, $ch ) = @_; - my( $flags, $contents ) = $this->_flatten( $options | $WC::NO_BLOCK_TML ); - return ( 0, undef ) if( !defined( $contents ) || ( $flags & $WC::BLOCK_TML )); - + my( $flags, $contents ) = $this->_flatten( $options | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); + return ( 0, undef ) if( !defined( $contents ) || ( $flags & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML )); # Remove whitespace from either side of the contents, retaining the # whitespace - $contents =~ s/ /$WC::NBSP/go; - $contents =~ /^($WC::WS)(.*?)($WC::WS)$/; + $contents =~ s/ /$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/go; + $contents =~ /^($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::WS)(.*?)($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::WS)$/; my ($pre, $post) = ($1, $3); $contents = $2; return (0, undef) if( $contents =~ /^</ || $contents =~ />$/ ); @@ -879,93 +878,20 @@ return (0, undef); } - my $be = $this->_checkBeforeEmphasis(); - my $ae = $this->_checkAfterEmphasis(); - return ( 0, undef ) unless $ae && $be; - - return ( $flags, $pre.$WC::CHECKw.$ch.$contents.$ch.$WC::CHECK2.$post ); + return ( $flags, $pre.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw.$ch.$contents.$ch.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2.$post ); } -sub isBlockNode { - my $node = shift; - return ($node->{tag} && $node->{tag} =~ /^(ADDRESS|BLOCKQUOTE|CENTER|DIR|DIV|DL|FIELDSET|FORM|H\d|HR|ISINDEX|MENU|NOFRAMES|NOSCRIPT|OL|P|PRE|TABLE|UL)$/i); -} - -sub previousLeaf { - my $node = shift; - if (!$node) { - return undef; - } - do { - while (!$node->{prev}) { - if (!$node->{parent}) { - return undef; # can't go any further back - } - $node = $node->{parent}; - } - $node = $node->{prev}; - while (!$node->isTextNode()) { - $node = $node->{tail}; - } - } while (!$node->isTextNode()); - return $node; -} - -# Test for /^|(?<=[\s\(])/ at the end of the leaf node before. -sub _checkBeforeEmphasis { - my ($this) = @_; - my $tb = $this->previousLeaf(); - return 1 unless $tb; - return 1 if ($tb->isBlockNode()); - return 1 if ($tb->{nodeType} == 3 && $tb->{text} =~ /[\s(*_=]$/); - return 0; -} - -sub nextLeaf { - my $node = shift; - if (!$node) { - return undef; - } - do { - while (!$node->{next}) { - if (!$node->{parent}) { - return; # end of the road - } - $node = $node->{parent}; - if ($node->isBlockNode()) { - # leaving this $node - return $node; - } - } - $node = $node->{next}; - while (!$node->isTextNode()) { - $node = $node->{head}; - } - } while (!$node->isTextNode()); - return $node; -} - -# Test for /$|(?=[\s,.;:!?)])/ at the start of the leaf node after. -sub _checkAfterEmphasis { - my ($this) = @_; - my $tb = $this->nextLeaf(); - return 1 unless $tb; - return 1 if ($tb->isBlockNode()); - return 1 if ($tb->{nodeType} == 3 && $tb->{text} =~ /^[\s,.;:!?)*_=]/); - return 0; -} - # generate verbatim for P, SPAN or PRE sub _verbatim { my ($this, $tag, $options) = @_; - $options |= $WC::PROTECTED|$WC::KEEP_ENTITIES|$WC::BR2NL | $WC::KEEP_WS; + $options |= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PROTECTED|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_ENTITIES|$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BR2NL | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS; my( $flags, $text ) = $this->_flatten($options); # decode once, and once only require HTML::Entities; $text = HTML::Entities::decode_entities($text); # decodes to \240, which we want to make a space. - $text =~ s/\240/$WC::NBSP/g; + $text =~ s/\240/$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBSP/g; my $p = _htmlParams($this->{attrs}, $options); return ($flags, "<$tag$p>$text</$tag>"); } @@ -989,18 +915,18 @@ sub _LIST { my( $this, $options ) = @_; - if( ( $options & $WC::NO_BLOCK_TML ) || - !$this->_isConvertableList( $options | $WC::NO_BLOCK_TML )) { + if( ( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ) || + !$this->_isConvertableList( $options | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML )) { return ( 0, undef ); } - return ( $WC::BLOCK_TML, $this->_convertList( $WC::TAB )); + return ( $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, $this->_convertList( $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::TAB )); } # Performs initial cleanup of the parse tree before generation. Walks the # tree, making parent links and removing attributes that don't add value. # This simplifies determining whether a node is to be kept, or flattened # out. -# $opts may include $WC::VERY_CLEAN +# $opts may include $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::VERY_CLEAN sub cleanNode { my( $this, $opts ) = @_; my $a; @@ -1041,7 +967,7 @@ sub _handleA { my( $this, $options ) = @_; - my( $flags, $text ) = $this->_flatten( $options | $WC::NO_BLOCK_TML ); + my( $flags, $text ) = $this->_flatten( $options | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); if( $text && $text =~ /\S/ && $this->{attrs}->{href}) { # there's text and an href my $href = $this->{attrs}->{href}; @@ -1053,7 +979,7 @@ } $reww = TWiki::Func::getRegularExpression('wikiWordRegex') unless $reww; - my $nop = ($options & $WC::NOP_ALL) ? '<nop>' : ''; + my $nop = ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NOP_ALL) ? '<nop>' : ''; if( $href =~ /^(\w+\.)?($reww)(#\w+)?$/ ) { my $web = $1 || ''; my $topic = $2; @@ -1064,17 +990,17 @@ # if the clean text is the known topic we can ignore it if( ($cleantext eq $href || $href =~ /\.$cleantext$/)) { - return (0, $WC::CHECK1.$nop.$web.$topic.$anchor.$WC::CHECK2); + return (0, $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1.$nop.$web.$topic.$anchor.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2); } } - if( $href =~ /${WC::PROTOCOL}[^?]*$/ && $text eq $href ) { - return (0, $WC::CHECK1.$nop.$text.$WC::CHECK2); + if( $href =~ /${TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::PROTOCOL}[^?]*$/ && $text eq $href ) { + return (0, $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK1.$nop.$text.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECK2); } if( $text eq $href ) { - return (0, $WC::CHECKw.'['.$nop.'['.$href.']]' ); + return (0, $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw.'['.$nop.'['.$href.']]' ); } - return (0, $WC::CHECKw.'['.$nop.'['.$href.']['.$text. + return (0, $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKw.'['.$nop.'['.$href.']['.$text. ']]' ); } elsif( $this->{attrs}->{name} ) { # allow anchors to be expanded normally. This won't generate @@ -1109,15 +1035,15 @@ # 3. The previous node is an inline element node or text node # 4. The next node is an inline element or text node my $sep = "\n"; - if ($options & $WC::BR2NL) { - } elsif ($options & $WC::NO_BLOCK_TML) { + if ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BR2NL) { + } elsif ($options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML) { $sep = '<br />'; } elsif ($this->prevIsInline()) { if ($this->isInline()) { # Both <br> and </br> cause a NL # if this is empty, look at next if ($kids !~ /^[\000-\037]*$/ && - $kids !~ /^[\000-\037]*$WC::NBBR/ || + $kids !~ /^[\000-\037]*$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR/ || $this->nextIsInline()) { $sep = '<br />'; } @@ -1175,7 +1101,7 @@ } } # OK, just the colour - $colour = $WC::KNOWN_COLOUR{uc($colour)}; + $colour = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KNOWN_COLOUR{uc($colour)}; if (!$colour) { # Not a recognised colour return ( 0, undef ); @@ -1193,8 +1119,8 @@ my( $this, $options ) = @_; my( $f, $kids ) = $this->_flatten( $options ); - return ($f, '<hr />'.$kids) if( $options & $WC::NO_BLOCK_TML ); - return ( $f | $WC::BLOCK_TML, $WC::CHECKn.'---'.$WC::CHECKn.$kids); + return ($f, '<hr />'.$kids) if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); + return ( $f | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.'---'.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.$kids); } sub _handleHTML { return _flatten( @_ ); } @@ -1260,12 +1186,12 @@ } my( $f, $kids ) = $this->_flatten( $options ); - return ($f, '<p>'.$kids.'</p>') if( $options & $WC::NO_BLOCK_TML ); + return ($f, '<p>'.$kids.'</p>') if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); my $pre = ''; if ($this->prevIsInline()) { - $pre = $WC::NBBR; + $pre = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR; } - return ($f | $WC::BLOCK_TML, $pre.$WC::NBBR.$kids.$WC::NBBR); + return ($f | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, $pre.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR.$kids.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NBBR); } # PARAM @@ -1280,11 +1206,11 @@ if ($this->hasClass('WYSIWYG_STICKY')) { return $this->_verbatim('sticky', $options); } - unless( $options & $WC::NO_BLOCK_TML ) { + unless( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ) { my( $flags, $text ) = $this->_flatten( - $options | $WC::NO_BLOCK_TML | $WC::BR2NL | $WC::KEEP_WS ); + $options | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BR2NL | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::KEEP_WS ); my $p = _htmlParams( $this->{attrs}, $options); - return ($WC::BLOCK_TML, "<$tag$p>$text</$tag>"); + return ($TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, "<$tag$p>$text</$tag>"); } return ( 0, undef ); } @@ -1308,7 +1234,7 @@ } if( _removeClass(\%atts, 'WYSIWYG_LINK')) { - $options |= $WC::NO_BLOCK_TML; + $options |= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML; } if( _removeClass(\%atts, 'WYSIWYG_TT')) { @@ -1318,7 +1244,7 @@ # Remove all other classes delete $atts{class}; - if( $options & $WC::VERY_CLEAN ) { + if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::VERY_CLEAN ) { # remove style attribute if cleaning aggressively. Have to do this # because TWiki generates these. delete $atts{style} if defined $atts{style} @@ -1343,15 +1269,15 @@ sub _handleTABLE { my( $this, $options ) = @_; - return ( 0, undef) if( $options & $WC::NO_BLOCK_TML ); + return ( 0, undef) if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); # Should really look at the table attrs, but to heck with it - return ( 0, undef ) if( $options & $WC::NO_BLOCK_TML ); + return ( 0, undef ) if( $options & $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML ); my @table; return ( 0, undef ) unless - $this->_isConvertableTable( $options | $WC::NO_BLOCK_TML, \@table ); + $this->_isConvertableTable( $options | $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::NO_BLOCK_TML, \@table ); my $maxrow = 0; my $row; @@ -1364,13 +1290,13 @@ push( @$row, '' ); } } - my $text = $WC::CHECKn; + my $text = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn; foreach $row ( @table ) { # isConvertableTableRow has already formatted the cell - $text .= $WC::CHECKn.'|'.join('|', @$row).'|'.$WC::CHECKn; + $text .= $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn.'|'.join('|', @$row).'|'.$TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::CHECKn; } - return ( $WC::BLOCK_TML, $text ); + return ( $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::BLOCK_TML, $text ); } # TBODY Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/WC.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/WC.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML/WC.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -23,7 +23,12 @@ =cut -package WC; +#package WC; +#This is corrected to following on 21/Oct/2008 +#The package name should be fully qualified name +#suggestion was taken from Chris - rpm build was generating error while installing the package as rpm +# code corrected - Sopan Shewale +package TWiki::Plugins::WysiwygPlugin::HTML2TML::WC; =pod Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/HTML2TML.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -104,12 +104,12 @@ $this->{opts} = $options; my $opts = 0; - $opts = $WC::VERY_CLEAN + $opts = $TWiki::Plugins::WysiwygPlugin::HTML2TML::WC::VERY_CLEAN if ( $options->{very_clean} ); # If the text is UTF8-encoded we have to decode it first, otherwise # the HTML parser will barf. - if (WC::encoding() =~ /^utf-?8/) { + if (TWiki::Plugins::WysiwygPlugin::Constants::encoding() =~ /^utf-?8/) { $text = Encode::decode_utf8($text); } @@ -126,7 +126,7 @@ $text = $this->{stackTop}->rootGenerate( $opts ); # If the site charset is UTF8, we need to recode - if (WC::encoding() =~ /^utf-?8/) { + if (TWiki::Plugins::WysiwygPlugin::Constants::encoding() =~ /^utf-?8/) { $text = Encode::encode_utf8($text); } @@ -134,11 +134,11 @@ # site charset. Numeric entities are mapped straight to the # corresponding code point unless their value overflow. require HTML::Entities; - HTML::Entities::_decode_entities($text, WC::safeEntities()); + HTML::Entities::_decode_entities($text, TWiki::Plugins::WysiwygPlugin::Constants::safeEntities()); # After decoding entities, we have to map unicode characters # back to high bit - WC::mapUnicode2HighBit($text); + TWiki::Plugins::WysiwygPlugin::Constants::mapUnicode2HighBit($text); return $text; } Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/TML2HTML.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/TML2HTML.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin/TML2HTML.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -92,6 +92,9 @@ return '' unless $content; + $content =~ s/\\\n/ /g; + $content =~ s/\t/ /g; + $content =~ s/[$TT0$TT1$TT2]/?/go; # Render TML constructs to tagged HTML @@ -231,9 +234,6 @@ $text = $this->_takeOutSets( $text ); - $text =~ s/\\\n/ /g; - $text =~ s/\t/ /g; - # Remove PRE to prevent TML interpretation of text inside it $text = $this->_takeOutBlocks( $text, 'pre' ); @@ -245,7 +245,7 @@ $text =~ s/<\/img>//gi; # Handle colour tags specially (hack, hack, hackity-HACK!) - my $colourMatch = join('|',grep(/^[A-Z]/, keys %WC::KNOWN_COLOUR)); + my $colourMatch = join('|',grep(/^[A-Z]/, keys %TWiki::Plugins::WysiwygPlugin::Constants::KNOWN_COLOUR)); while ($text =~ s#%($colourMatch)%(.*?)%ENDCOLOR%#<font color="\L$1\E">$2</font>#og) {}; # Convert TWiki tags to spans outside protected text @@ -413,16 +413,16 @@ $text =~ s#^(\s*<p>\s*</p>)+##s; $text =~ s#(<p>\s*</p>\s*)+$##s; - $text =~ s(${WC::STARTWW}==([^\s]+?|[^\s].*?[^\s])==$WC::ENDWW) + $text =~ s(${TWiki::Plugins::WysiwygPlugin::Constants::STARTWW}==([^\s]+?|[^\s].*?[^\s])==$TWiki::Plugins::WysiwygPlugin::Constants::ENDWW) (CGI::b(CGI::span({class => 'WYSIWYG_TT'}, $1)))gem; - $text =~ s(${WC::STARTWW}__([^\s]+?|[^\s].*?[^\s])__$WC::ENDWW) + $text =~ s(${TWiki::Plugins::WysiwygPlugin::Constants::STARTWW}__([^\s]+?|[^\s].*?[^\s])__$TWiki::Plugins::WysiwygPlugin::Constants::ENDWW) (CGI::b(CGI::i($1)))gem; - $text =~ s(${WC::STARTWW}\*([^\s]+?|[^\s].*?[^\s])\*$WC::ENDWW) + $text =~ s(${TWiki::Plugins::WysiwygPlugin::Constants::STARTWW}\*([^\s]+?|[^\s].*?[^\s])\*$TWiki::Plugins::WysiwygPlugin::Constants::ENDWW) (CGI::b($1))gem; - $text =~ s(${WC::STARTWW}\_([^\s]+?|[^\s].*?[^\s])\_$WC::ENDWW) + $text =~ s(${TWiki::Plugins::WysiwygPlugin::Constants::STARTWW}\_([^\s]+?|[^\s].*?[^\s])\_$TWiki::Plugins::WysiwygPlugin::Constants::ENDWW) (CGI::i($1))gem; - $text =~ s(${WC::STARTWW}\=([^\s]+?|[^\s].*?[^\s])\=$WC::ENDWW) + $text =~ s(${TWiki::Plugins::WysiwygPlugin::Constants::STARTWW}\=([^\s]+?|[^\s].*?[^\s])\=$TWiki::Plugins::WysiwygPlugin::Constants::ENDWW) (CGI::span({class => 'WYSIWYG_TT'}, $1))gem; # Handle [[][] and [[]] links @@ -432,7 +432,7 @@ # [[][]] $text =~ s/(\[\[[^\]]*\](\[[^\]]*\])?\])/$this->_liftOut($1, 'LINK')/ge; - $text =~ s/$WC::STARTWW(($TWiki::regex{webNameRegex}\.)?$TWiki::regex{wikiWordRegex}($TWiki::regex{anchorRegex})?)/$this->_liftOut($1, 'LINK')/geom; + $text =~ s/$TWiki::Plugins::WysiwygPlugin::Constants::STARTWW(($TWiki::regex{webNameRegex}\.)?$TWiki::regex{wikiWordRegex}($TWiki::regex{anchorRegex})?)/$this->_liftOut($1, 'LINK')/geom; while (my ($placeholder, $val) = each %{$this->{removed}} ) { if( $placeholder =~ /^verbatim/i ) { @@ -595,7 +595,7 @@ my $val = $val->{text}; $val = &$callback( $val ) if ( defined( $callback )); # Use div instead of span if the block contains block HTML - if ($newtag eq 'span' && $val =~ m#</?($WC::ALWAYS_BLOCK_S)\b#io) { + if ($newtag eq 'span' && $val =~ m#</?($TWiki::Plugins::WysiwygPlugin::Constants::ALWAYS_BLOCK_S)\b#io) { $fn = 'CGI::div'; } else { $fn = 'CGI::'.$newtag; Modified: twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin.pm =================================================================== --- twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin.pm 2008-10-28 13:53:54 UTC (rev 17713) +++ twiki/trunk/WysiwygPlugin/lib/TWiki/Plugins/WysiwygPlugin.pm 2008-10-29 12:53:10 UTC (rev 17714) @@ -620,7 +620,7 @@ $text = Encode::decode_utf8($text, Encode::FB_PERLQQ); - WC::mapUnicode2HighBit($text); + TWiki::Plugins::WysiwygPlugin::Constants::mapUnicode2HighBit($text); if ($TWiki::cfg{Site}{CharSet}) { $text = Encode::encode( @@ -643,7 +643,7 @@ $TWiki::cfg{Site}{CharSet}, $text, Encode::FB_PERLQQ); } - WC::mapHighBit2Unicode($text); + TWiki::Plugins::WysiwygPlugin::Constants::mapHighBit2Unicode($text); $text = Encode::encode_utf8($text); |