Text-HTML-Turndown
view release on metacpan or search on metacpan
lib/Text/HTML/Turndown/Node.pm view on Meta::CPAN
package Text::HTML::Turndown::Node 0.12;
use 5.020;
use Moo;
use experimental 'signatures';
use stable 'postderef';
our @blockElements = (
'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS',
'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',
'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'HEADER',
'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES',
'NOSCRIPT', 'OL', 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD',
'TFOOT', 'TH', 'THEAD', 'TR', 'UL'
);
our %blockElements = map { $_ => 1, lc $_ => 1 } @blockElements;
sub _isBlock ($self) {
$blockElements{ $self->nodeName }
};
our @voidElements = (
'AREA', 'BASE', 'BR', 'COL', 'COMMAND', 'EMBED', 'HR', 'IMG', 'INPUT',
'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'
);
our %voidElements = map { $_ => 1, lc $_ => 1 } @voidElements;
has '_node' => (
is => 'ro',
required => 1,
handles => [qw[
parentNode
firstChild
previousSibling
nextSibling
childNodes
lastChild
nodeName
nodeValue
nodeType
textContent
getAttribute
isEqual
toString
find
]],
);
sub _isVoid( $self ) {
$voidElements{ $self->nodeName }
}
sub _hasVoid( $self ) {
return _has($self, \%voidElements)
}
has ['isVoid', 'hasVoid', 'isBlock', 'isMeaningfulWhenBlank', 'hasMeaningfulWhenBlank',
'isCode'] => (
is => 'ro',
required => 1,
);
sub className( $self ) {
$self->getAttribute('class');
}
sub _isCode( $self ) {
return 1 if uc $self->nodeName eq 'CODE';
my $p = $self->parentNode;
if( $p and $p->can('nodeName')) {
return _isCode($self->parentNode)
};
}
our @meaningfulWhenBlankElements = (
'A', 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TH', 'TD', 'IFRAME', 'SCRIPT',
'AUDIO', 'VIDEO'
);
our %meaningfulWhenBlankElements = map { $_ => 1, lc $_ => 1 } @meaningfulWhenBlankElements;
( run in 1.185 second using v1.01-cache-2.11-cpan-71847e10f99 )