Skip to content

Commit

Permalink
Fix more explosions with nested formatting codes
Browse files Browse the repository at this point in the history
  • Loading branch information
zoffixznet committed Apr 27, 2018
1 parent 128a5f4 commit a7fe99b
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions htmlify.p6
Expand Up @@ -450,12 +450,12 @@ sub register-reference(:$pod!, :$origin, :$url) {
for @( $pod.meta ) -> $meta {
my $name;
if $meta.elems > 1 {
my $last = $meta[*-1];
my $rest = $meta[0..*-2].join;
my $last = htmlify-guts $meta[*-1];
my $rest = $meta[0..*-2]».&htmlify-guts.join;
$name = "$last ($rest)";
}
else {
$name = $meta.Str;
$name = htmlify-guts $meta;
}
$*DR.add-new(
:$pod,
Expand All @@ -474,11 +474,24 @@ sub register-reference(:$pod!, :$origin, :$url) {
:$url,
:kind<reference>,
:subkinds['reference'],
:$name,
:name(htmlify-guts $name),
);
}
}

multi htmlify-guts (Any:U) { '' }
multi htmlify-guts (Str:D \v ) { v }
multi htmlify-guts (List:D \v ) { v».&htmlify-guts.Str }
multi htmlify-guts (Pod::Block \v ) {
CATCH {
default {
say "CAUGHT: {.^name}\n{.message.indent: 4}\n{.backtrace.full.indent: 4}\n when processing {v.perl}";
exit;
}
}
node2html v;
}

#| A one-pass-parser for pod headers that define something documentable.
sub find-definitions(:$pod, :$origin, :$min-level = -1, :$url) {
# Runs through the pod content, and looks for headings.
Expand Down Expand Up @@ -507,10 +520,6 @@ sub find-definitions(:$pod, :$origin, :$min-level = -1, :$url) {
my @definitions; # [subkind, name]
my $unambiguous = False;
given @header {
multi htmlify-guts (Any:U) { '' }
multi htmlify-guts (Str:D \v ) { v }
multi htmlify-guts (Pod::Block \v ) { node2html v }

when :(Pod::FormattingCode $) {
my $fc := .[0];
proceed unless $fc.type eq "X";
Expand Down

0 comments on commit a7fe99b

Please sign in to comment.