wikiheaders: Fix wikilinks inside code sections a little. Not perfect yet.

(cherry picked from commit 5b0351a672701e28c3bfb17d44a458b82e8a4175)
This commit is contained in:
Ryan C. Gordon 2023-02-24 14:26:05 -05:00
parent ad09976eca
commit 171fba320f
No known key found for this signature in database
GPG Key ID: FA148B892AB48044

View File

@ -260,9 +260,11 @@ sub wikify_chunk {
$str .= "<syntaxhighlight lang='$codelang'>$code<\/syntaxhighlight>"; $str .= "<syntaxhighlight lang='$codelang'>$code<\/syntaxhighlight>";
} }
} elsif ($wikitype eq 'md') { } elsif ($wikitype eq 'md') {
# Convert obvious API things to wikilinks. # Convert obvious API things to wikilinks. You can't make links
# inside code blocks, but you _can_ make sure that single identifiers
# wrapped in backticks encode correctly.
if (defined $apiprefixregex) { if (defined $apiprefixregex) {
$str =~ s/\b($apiprefixregex[a-zA-Z0-9_]+)/[$1]($1)/gms; $str =~ s/(?<LEFT>\b|\`?)(?<SYM>$apiprefixregex[a-zA-Z0-9_]+)(?<RIGHT>\`?)/[$+{"LEFT"}$+{"SYM"}$+{"RIGHT"}]($+{"SYM"})/gms;
} }
if (defined $code) { if (defined $code) {
$str .= "```$codelang$code```"; $str .= "```$codelang$code```";
@ -333,7 +335,7 @@ sub dewikify_chunk {
} elsif ($wikitype eq 'md') { } elsif ($wikitype eq 'md') {
# Dump obvious wikilinks. The rest can just passthrough. # Dump obvious wikilinks. The rest can just passthrough.
if (defined $apiprefixregex) { if (defined $apiprefixregex) {
$str =~ s/\[($apiprefixregex[a-zA-Z0-9_]+)\]\(($apiprefixregex[a-zA-Z0-9_]+)\)/$1/gms; $str =~ s/\[(?<LEFT>\`?)(?<SYM>$apiprefixregex[a-zA-Z0-9_]+)(?<RIGHT>\`?)\]\(($apiprefixregex[a-zA-Z0-9_]+)\)/$+{"LEFT"}$+{"SYM"}$+{"RIGHT"}/gms;
} }
} }
@ -368,7 +370,7 @@ sub dewikify_chunk {
} elsif ($wikitype eq 'md') { } elsif ($wikitype eq 'md') {
# Dump obvious wikilinks. # Dump obvious wikilinks.
if (defined $apiprefixregex) { if (defined $apiprefixregex) {
$str =~ s/\[($apiprefixregex[a-zA-Z0-9_]+)\]\(($apiprefixregex[a-zA-Z0-9_]+)\)/\n.BR $1\n/gms; $str =~ s/\[(?<LEFT>\`?)(?<SYM>$apiprefixregex[a-zA-Z0-9_]+)(?<RIGHT>\`?)\]\(($apiprefixregex[a-zA-Z0-9_]+)\)/\n.BR $+{"SYM"}\n/gms;
} }
# links # links