/[Frey]/trunk/lib/Frey/HTML.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/HTML.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 708 by dpavlin, Sat Nov 1 00:59:02 2008 UTC revision 709 by dpavlin, Wed Dec 3 22:24:18 2008 UTC
# Line 1  Line 1 
1  package Frey::HTML;  package Frey::HTML;
2  use Moose;  use Moose;
3    
4    extends 'Frey';
5    with 'Frey::Web';
6    
7  use HTML::TreeBuilder;  use HTML::TreeBuilder;
8  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
9    
10    =head1 DESCRIPTION
11    
12    Cleanup all attributes from html
13    
14    =cut
15    
16  has 'html' => (  has 'html' => (
17          is => 'rw',          is => 'rw',
18          isa => 'Str',          isa => 'Str',
19          required => 1,          required => 1,
20            default => '<b class="remove me">foo</b>',
21  );  );
22    
23  sub xhtml {  sub cleanup_as_markup {
24          my $self = shift;          my $self = shift;
25    
26          my $html = HTML::TreeBuilder->new;          my $html = HTML::TreeBuilder->new;
# Line 18  sub xhtml { Line 28  sub xhtml {
28          $html->parse( $self->html );          $html->parse( $self->html );
29          $html->eof;          $html->eof;
30    
31          my $result = $self->_parse( $html->guts );          sub _parse {
32                    foreach my $element ( @_ ) {
33                            if ( blessed $element && $element->isa('HTML::Element') ) {
34                                    my $tag = $element->tag;
35                                    my @kids = $element->content_list;
36                                    warn dump( $tag, @kids );
37                                    return "<$tag>" . _parse( @kids ) . "</$tag>";
38                            } else {
39                                    # plain text
40                                    warn dump( $element );
41                                    return $element;
42                            }
43                    }
44            }
45    
46            my $result = _parse( $html->guts );
47          $html->delete;          $html->delete;
48    
49          return $result;          return $result;
50  }  }
51    
 sub _parse {  
         my $self = shift;  
         foreach my $element ( @_ ) {  
                 if ( blessed $element && $element->isa('HTML::Element') ) {  
                         my $tag = $element->tag;  
                         my @kids = $element->content_list;  
                         warn dump( $tag, @kids );  
                         return "<$tag>" . _parse( @kids ) . "</$tag>";  
                 } else {  
                         # plain text  
                         warn dump( $element );  
                         return $self->html_escape( $element );  
                 }  
         }  
 }  
   
52  1;  1;

Legend:
Removed from v.708  
changed lines
  Added in v.709

  ViewVC Help
Powered by ViewVC 1.1.26