XHTML-MediaWiki
view release on metacpan or search on metacpan
Build.PL
Changes
lib/XHTML/MediaWiki.pm
Makefile.PL
MANIFEST This list of files
META.yml
README
t/blending.t
t/cdata.t
t/changes.t
t/comment.t
t/div.t
t/footnotes.t
t/headers.t
t/html.t
t/line.t
t/links.t
t/misc.t
t/nowiki.t
Hash: SHA1
SHA1 f3f7dd180342534670eacefcecea9d18a6dbcbeb Build.PL
SHA1 3ed93500ad8ab019c5f5bb4100d225c6b423dfc9 Changes
SHA1 0c1dd3c98c2bac6514161b4b14f8b9e81e6e9773 MANIFEST
SHA1 cc5b703c7c2f15d62b622609e389e57c8dca619c META.yml
SHA1 188bad51492c8cfcdc301e0408c151e01c8d5785 Makefile.PL
SHA1 2885d6de16a4a2539f57e2de5823b1ae9284f625 README
SHA1 19302650213a8faac10ededc7883d41158aeac8e lib/XHTML/MediaWiki.pm
SHA1 c9bc56dc40af36d8b9a36ddde1a5586d751ee0da t/blending.t
SHA1 d5e8091b7e4ef0472247279110cbdd5ced38f5e8 t/cdata.t
SHA1 e7b32c4d75f3b316a10fc53a93965420d11bfe08 t/changes.t
SHA1 86c9715845d672e783b560bfe352189a37f57006 t/comment.t
SHA1 db053789dece0cb8aa2c16896f1c5c335d1482a3 t/div.t
SHA1 f2096d29c9a357963036e30c6f91407c2ac2430e t/footnotes.t
SHA1 e724b9968d66c4d0c3e3ff09b5787eaef6845639 t/headers.t
SHA1 518a498da2278e95c4b6d01ba087a47d39bbac49 t/html.t
SHA1 bec6fdebdff35273fcf135c826a075546fe43139 t/line.t
SHA1 1174bd5df8a3abefbbe34cd5cda611c8e8d08cbd t/links.t
SHA1 ef9bed598d69d3fa24273aa30e1939ec5fe81b4c t/misc.t
SHA1 8ee2fdd58f18d40893aad0c5105d9344c314cba2 t/nowiki.t
lib/XHTML/MediaWiki.pm view on Meta::CPAN
return;
}
sub _html_comment
{
# warn "_html_comment: " . join(' ', @_);
}
sub _html_text
{
my ($parser, $dtext, $skipped_text, $is_cdata) = @_;
my @tagstack = @{$parser->{tag_stack}};
my ($newtext, $newstate);
if (my ($leading) = ($dtext =~ /^(\n+)/m)) {
my $x = length($leading);
$parser->end_line($x);
$dtext = substr($dtext, $x);
}
if ($is_cdata && $parser->can_cdata) {
$newtext = $dtext;
} else {
$newtext = encode($dtext);
}
$parser->append_text($newtext);
# warn "Got skipped_text: `$skipped_text'\n[$dtext]\n" if $skipped_text;
}
{
package XHTML::MediaWiki::Parser;
use base 'HTML::Parser';
use Params::Validate qw (validate);
sub can_cdata
{
my $self = shift;
if (my $current = $self->check_current_block) {
return $self->{tags}{$current->{type}}{can_cdata};
}
return 0;
}
sub end_line
{
my $self = shift;
my $block = $self->get_last_line_block;
lib/XHTML/MediaWiki.pm view on Meta::CPAN
sub _find_blocks_in_html
{
my $self = shift;
my $text = shift || "";
die if @_;
my $parser = XHTML::MediaWiki::Parser->new
(start_h => [\&_html_tag, 'self, "S", tagname, text, attr'],
end_h => [\&_html_tag, 'self, "E", tagname, text'],
comment_h => [\&_html_comment, 'self, text'],
text_h => [\&_html_text, 'self, dtext, skipped_text, is_cdata'],
marked_sections => 1,
boolean_attribute_value => '__TEXT_MEDIAWIKIFORMAT_BOOL__',
);
$parser->{opts} = {},
$parser->{tags} = {
b => { phrase => 1 },
big => { phrase => 1 },
blockquote => { phrase => 1 },
br => { empty => 1 },
caption => {},
lib/XHTML/MediaWiki.pm view on Meta::CPAN
},
pre => {
block => 'pre',
# nowiki => 1,
},
rb => {},
rp => {},
rt => {},
ruby => {
block => 'ruby',
can_cdata => 1,
},
s => {},
samp => {},
small => {},
strike => {},
strong => {},
sub => {},
sup => {},
table => {},
td => {},
</div>
EOT
$cmp = <<EOP;
<div>
<p>a</p>
Ruby Data
</div>
EOP
is_xml($xhtml, $cmp, 'cdata');
( run in 0.793 second using v1.01-cache-2.11-cpan-454fe037f31 )