Media type @{[htescape $input_format]}
is not supported!
@@ -181,28 +182,97 @@
Document Errors
-
+
];
push @nav, ['#document-errors' => 'Document Error'];
require Whatpm::ContentChecker;
my $onerror = sub {
my %opt = @_;
- print STDOUT qq[
- ],
- htescape get_node_path ($opt{node}),
- ": ", htescape $opt{type}, "
\n";
+ print STDOUT qq[- ] . get_node_link ($opt{node}) .
+ "
\n- ", htescape $opt{type}, "
\n";
};
+ my $elements;
if ($el) {
- Whatpm::ContentChecker->check_element ($el, $onerror);
+ $elements = Whatpm::ContentChecker->check_element ($el, $onerror);
} else {
- Whatpm::ContentChecker->check_document ($doc, $onerror);
+ $elements = Whatpm::ContentChecker->check_document ($doc, $onerror);
}
print STDOUT qq[
-
+
];
+
+ if (@{$elements->{table}}) {
+ require JSON;
+
+ print STDOUT qq[
+
+
Tables
+
+
+
+
+];
+
+ my $i = 0;
+ for my $table_el (@{$elements->{table}}) {
+ $i++;
+ print STDOUT qq[
] .
+ get_node_link ($table_el) . q[
];
+
+ my $table = Whatpm::HTMLTable->form_table ($table_el);
+
+ for (@{$table->{column_group}}, @{$table->{column}}, $table->{caption}) {
+ next unless $_;
+ delete $_->{element};
+ }
+
+ for (@{$table->{row_group}}) {
+ next unless $_;
+ next unless $_->{element};
+ $_->{type} = $_->{element}->manakai_local_name;
+ delete $_->{element};
+ }
+
+ for (@{$table->{cell}}) {
+ next unless $_;
+ for (@{$_}) {
+ next unless $_;
+ for (@$_) {
+ $_->{id} = refaddr $_->{element} if defined $_->{element};
+ delete $_->{element};
+ }
+ }
+ }
+
+ print STDOUT '];
+ }
+
+ print STDOUT qq[
];
+ }
+
+ if (keys %{$elements->{term}}) {
+ print STDOUT qq[
+
+
Terms
+
+
+];
+ for my $term (sort {$a cmp $b} keys %{$elements->{term}}) {
+ print STDOUT qq[- @{[htescape $term]}
];
+ for (@{$elements->{term}->{$term}}) {
+ print STDOUT qq[- ].get_node_link ($_).qq[
];
+ }
+ }
+ print STDOUT qq[
];
+ }
}
## TODO: Show result
@@ -250,14 +320,15 @@
my $node_id = 'node-'.refaddr $child;
my $nt = $child->node_type;
if ($nt == $child->ELEMENT_NODE) {
- $r .= qq'
' . htescape ($child->tag_name) .
+ my $child_nsuri = $child->namespace_uri;
+ $r .= qq[] . htescape ($child->tag_name) .
'
'; ## ISSUE: case
if ($child->has_attributes) {
$r .= '';
- for my $attr (sort {$a->[0] cmp $b->[0]} map { [$_->name, $_->value, 'node-'.refaddr $_] }
+ for my $attr (sort {$a->[0] cmp $b->[0]} map { [$_->name, $_->value, $_->namespace_uri, 'node-'.refaddr $_] }
@{$child->attributes}) {
- $r .= qq'' . htescape ($attr->[0]) . '
= '; ## ISSUE: case?
+ $r .= qq[] . htescape ($attr->[0]) . '
= '; ## ISSUE: case?
$r .= '' . htescape ($attr->[1]) . '
'; ## TODO: children
}
$r .= '
';
@@ -265,31 +336,32 @@
if ($node->has_child_nodes) {
$r .= '';
- unshift @node, @{$child->child_nodes}, '
';
+ unshift @node, @{$child->child_nodes}, '';
+ } else {
+ $r .= '
';
}
} elsif ($nt == $child->TEXT_NODE) {
- $r .= qq'
' . htescape ($child->data) . '
';
+ $r .= qq'
' . htescape ($child->data) . '
';
} elsif ($nt == $child->CDATA_SECTION_NODE) {
- $r .= qq'
<[CDATA[
' . htescape ($child->data) . '
]]>
';
+ $r .= qq'
<[CDATA[
' . htescape ($child->data) . '
]]>
';
} elsif ($nt == $child->COMMENT_NODE) {
- $r .= qq'
<!--
' . htescape ($child->data) . '
-->
';
+ $r .= qq'';
} elsif ($nt == $child->DOCUMENT_NODE) {
- $r .= qq'
Document';
+ $r .= qq'
Document';
if ($child->has_child_nodes) {
$r .= '';
- unshift @node, @{$child->child_nodes}, '
';
+ unshift @node, @{$child->child_nodes}, '';
}
} elsif ($nt == $child->DOCUMENT_TYPE_NODE) {
- $r .= qq'
<!DOCTYPE>
';
- $r .= '- Name =
@{[htescape ($child->name)]}
';
- $r .= '- Public identifier =
@{[htescape ($child->public_id)]}
';
- $r .= '- System identifier =
@{[htescape ($child->system_id)]}
';
+ $r .= qq'<!DOCTYPE>
';
+ $r .= qq[- Name =
@{[htescape ($child->name)]}
];
+ $r .= qq[- Public identifier =
@{[htescape ($child->public_id)]}
];
+ $r .= qq[- System identifier =
@{[htescape ($child->system_id)]}
];
$r .= '
';
} elsif ($nt == $child->PROCESSING_INSTRUCTION_NODE) {
- $r .= qq'<?@{[htescape ($child->target)]}?>
';
- $r .= '- @{[htescape ($child->data)]}
';
+ $r .= qq'<?@{[htescape ($child->target)]}
@{[htescape ($child->data)]}
?>
';
} else {
- $r .= qq'- @{[$child->node_type]} @{[htescape ($child->node_name)]}
'; # error
+ $r .= qq'- @{[$child->node_type]} @{[htescape ($child->node_name)]}
'; # error
}
}
@@ -323,6 +395,11 @@
return join '/', @r;
} # get_node_path
+sub get_node_link ($) {
+ return qq[] .
+ htescape (get_node_path ($_[0])) . qq[];
+} # get_node_link
+
=head1 AUTHOR
Wakaba .
@@ -336,4 +413,4 @@
=cut
-## $Date: 2007/06/27 13:30:15 $
+## $Date: 2007/06/30 14:51:10 $