1

Pod::Markdown在使用方括号<>. 例如:

use strict;
use warnings;

use Data::Dump;
use Pod::Markdown;

my $str = "=head1 OPTIONS\n\n=over 4\n\n=item B<< --file=<filename> >>\n\nFile name \n\n=back\n";

my $parser = Pod::Markdown->new;
my $markdown;
$parser->output_string( \$markdown );
$parser->parse_string_document($str);

dd $markdown;

给出输出:

"# OPTIONS\n\n- **--file=<filename>**\n\n    File name \n"

这使

在此处输入图像描述

在 GitHub 上。因此,标签<filename>内的部分**可能被视为 HTML 标签,因此未显示。所需的输出将是

"# OPTIONS\n\n- **--file=\<filename\>**\n\n    File name \n"

其中括号<>应该用反斜杠转义。

更新

似乎问题不仅限于双星序列。我根据这个更新了问题..

4

2 回答 2

1

目前,一种解决方法似乎是在后处理步骤中插入反斜杠。例如:

$parser->output_string( \$markdown );
$parser->parse_string_document($str);
fix_escape_chars(\$markdown);

sub fix_escape_chars {
    my ($str) = @_;

    $$str =~ s/(?<!\\)>/\\>/g;
    $$str =~ s/(?<!\\)</\\</g;
}

这似乎运作良好..(它甚至在与此问题中声称的相反的 URL 内也有效)..

于 2015-02-13T14:36:40.323 回答
1

Pod::Markdown3.000 已发布并修复了此问题。并非所有降价处理器都识别反斜杠转义<字符,所以我遵循了 Markdown 规范建议的转义&<作为 html 实体(&amp;&lt;)。

于 2015-08-16T22:17:39.323 回答