summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbscan <10503608+bscan@users.noreply.github.com>2023-10-29 19:10:54 -0400
committerbscan <10503608+bscan@users.noreply.github.com>2023-10-29 19:10:54 -0400
commit9d170b009cc9c84dbf79fcd339e92e04b7d59e33 (patch)
treeed85ae2f7c6f8c0877149251ab0ad05e22827340
parente28bf30c15f49f8ecbac61fd642d071023b8b6f8 (diff)
downloadPerlNavigator-9d170b009cc9c84dbf79fcd339e92e04b7d59e33.zip
Fixing pod display issue for code blocks with links inside
-rw-r--r--server/src/pod.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/server/src/pod.ts b/server/src/pod.ts
index 672c9fb..f8d2497 100644
--- a/server/src/pod.ts
+++ b/server/src/pod.ts
@@ -379,6 +379,9 @@ const processInlineElements = (line: string): string => {
line = line.replaceAll('`', tempPlaceholder);
+ // WWW::Mechanize is a good test for this one. Code blocks with embedded link
+ line = line.replace(/C<([^<>]*)L<< (?:.+?\|\/?)?(.+?) >>([^<>]*)>/g, "C<< $1 $2 $3 >>");
+
// Handle code (C<code>), while allowing E<> replacements
line = line.replace(/C<((?:[^<>]|[EL]<[^<>]+>)+?)>/g, (match, code) => escapeBackticks(code));
@@ -393,26 +396,27 @@ const processInlineElements = (line: string): string => {
line = line.replace(new RegExp(tempPlaceholder, 'g'), '\\`');
// Handle bold (B<bold>)
- line = line.replace(/B<([^>]+)>/g, "**$1**");
+ line = line.replace(/B<([^<>]+)>/g, "**$1**");
+ line = line.replace(/B<< (.+?) >>/g, "**$1**");
// Handle italics (I<italic>)
- line = line.replace(/I<([^>]+)>/g, "*$1*");
- line = line.replace(/I<< (.+?) >>>/g, "*$1*");
+ line = line.replace(/I<([^<>]+)>/g, "*$1*");
+ line = line.replace(/I<< (.+?) >>/g, "*$1*");
// Handle links (L<name>), URLS auto-link in vscode's markdown
line = line.replace(/L<(http[^>]+)>/g, " $1 ");
- line = line.replace(/L<([^>]+)>/g, "`$1`");
+ line = line.replace(/L<([^<>]+)>/g, "`$1`");
line = line.replace(/L<< (.*?) >>/g, "`$1`");
// Handle non-breaking spaces (S<text>)
- line = line.replace(/S<([^>]+)>/g, "$1");
+ line = line.replace(/S<([^<>]+)>/g, "$1");
// Handle file names (F<name>), converting to italics
- line = line.replace(/F<([^>]+)>/g, "*$1*");
+ line = line.replace(/F<([^<>]+)>/g, "*$1*");
// Handle index entries (X<entry>), ignoring as Markdown doesn't have an index
- line = line.replace(/X<([^>]+)>/g, "");
+ line = line.replace(/X<([^<>]+)>/g, "");
// Escape HTML entities last since we use them above
line = escapeHTML(line);