2012-05-27 54 views
0

我是新來的perl的語法,而不是正則表達式添加特殊段分班,Markdown.pl基於第一炭

我想在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中有一個我不知道的聰明方法?

也將是巨大的具有機會使用!?第一個字符只是\逃逸(不是強制性的,沒準我真的需要它是neart到0

+0

投票轉移到http://codereview.stackexchange.com/ – daxim

+0

無論將提供一個答案... – neurino

回答

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

做到這一點我是完全新的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 ~! 

我跟着他的指示,和他們很好地工作。