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 に答える