Markdown.pl根据第一个字符添加特殊的分类段落

时间:2012-05-27 14:23:54

标签: perl markdown

我是perl语法的新手,但不是regexp,

我正在尝试为Markdown.pl中的段落添加几个类,具体取决于第一个字符,例如

Normal paragraph

? Info paragraph

! Important paragraph

,并提供:

<p>Normal paragraph</p>
<p class="info">Info paragraph</p>
<p class="important">Important paragraph</p>

这是Markdown.pl中包含<p>标记

的代码
my @grafs = split(/\n{2,}/, $text);

foreach (@grafs) {
    unless (defined( $g_html_blocks{$_} )) {
        $_ = _RunSpanGamut($_);
        s/^([ \t]*)/<p>/;
        $_ .= "</p>";
    }
}

我是否需要使用条件语句或perl中有一种我不知道的智能方法?

也很高兴有机会使用!?作为第一个使用\ 逃脱的第一个字符(不是强制性的,我真的需要的机会)这是0

2 个答案:

答案 0 :(得分:1)

这是我到目前为止所做的,它有效,但我想知道在perl中是否有更聪明的方法可以做到这一点

my @grafs = split(/\n{2,}/, $text);

#
# Wrap <p> tags.
#
foreach (@grafs) {
    unless (defined( $g_html_blocks{$_} )) {
        $_ = _RunSpanGamut($_);
        if ( m/^[ \t]*\?/ ){
            s/^([ \t]*\?[ \t]*)/<p class="Information">/;
        } elsif ( m/^[ \t]*\!/ ){
            s/^([ \t]*\![ \t]*)/<p class="Important">/;
        } else {
            s/^([ \t]*)/<p>/;
        }
        $_ .= "</p>";
    }
}

答案 1 :(得分:1)

我对Perl完全不熟悉,并希望制作特别的段落。我看到这篇文章,我认为这对你的情况很有帮助。

http://www.pingtrip.com/weblog/2008/04/adding-custom-tags-to-markdown

他的修改使divclass="note"

成为"warning"
~? This is a Note Block ~?

~! This is a Warning Block ~!

我遵循他的指示,他们工作正常。