add block versions of doclink, formlink, popdoclink, popformlink
authorTony Cook <tony@develop-help.com>
Thu, 24 Oct 2013 06:04:49 +0000 (17:04 +1100)
committerTony Cook <tony@develop-help.com>
Sun, 3 Nov 2013 23:20:24 +0000 (10:20 +1100)
site/cgi-bin/modules/BSE/Formatter.pm
t/060-generate/010-generate.t

index a4a1268..e392eb3 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use BSE::Util::HTML;
 use Carp 'confess';
 
-our $VERSION = "1.005";
+our $VERSION = "1.006";
 
 use base 'DevHelp::Formatter';
 
@@ -322,21 +322,35 @@ sub replace {
     and return 1;
   $$rpart =~ s#gimage\[([^\]\[]+)\]# $self->gimage($1) #ige
     and return 1;
+  $$rpart =~ s#popdoclink\[([\w-]+)\|([^\]\[]*\n\s*\n[^\]\[]*)\]#
+      "\n\n\x02" . $self->doclink($1, $self->_blockify($2), "_blank", 'popdoclink')
+       . "\x03\n\n" #ige
+    and return 1;
   $$rpart =~ s#popdoclink\[([\w-]+)\|([^\]\[]+)\]# $self->doclink($1, $2, "_blank", 'popdoclink') #ige
     and return 1;
   $$rpart =~ s#popdoclink\[([\w-]+)\]# $self->doclink($1, undef, "_blank", 'popdoclink') #ige
     and return 1;
+  $$rpart =~ s#doclink\[([\w-]+)\|([^\]\[]*\n\s*\n[^\]\[]*)\]#
+      "\n\n\x02" . $self->doclink($1, $self->_blockify($2), undef, 'doclink')
+       . "\x03\n\n" #ige
+    and return 1;
   $$rpart =~ s#doclink\[([\w-]+)\|([^\]\[]+)\]# $self->doclink($1, $2, undef, 'doclink') #ige
     and return 1;
   $$rpart =~ s#doclink\[([\w-]+)\]# $self->doclink($1,  undef, undef, 'doclink') #ige
     and return 1;
 
+  $$rpart =~ s#popformlink\[(\w+)\|([^\]\[]*\n\s*\n[^\]\[]*)\]#
+    "\n\n\x02" . $self->formlink($1, 'popformlink', $self->_blockify($2), '_blank') . "\x03\n\n"#ige
+    and return 1;
   $$rpart =~ s#popformlink\[(\w+)\|([^\]\[]+)\]#
     $self->formlink($1, 'popformlink', $2, '_blank') #ige
     and return 1;
   $$rpart =~ s#popformlink\[(\w+)\]#
     $self->formlink($1, 'popformlink', undef, '_blank') #ige
     and return 1;
+  $$rpart =~ s#formlink\[(\w+)\|([^\]\[]*\n\s*\n[^\]\[]*)\]#
+    "\n\n\x02" . $self->formlink($1, 'formlink', $self->_blockify($2)) . "\x03\n\n" #ige
+    and return 1;
   $$rpart =~ s#formlink\[(\w+)\|([^\]\[]+)\]#
     $self->formlink($1, 'formlink', $2) #ige
     and return 1;
index 2d553b0..d54923c 100644 (file)
@@ -27,7 +27,41 @@ sub dyn_template_test($$$$);
 my $parent = add_article
   (
    title=>'Parent', 
-   body=>'parent article doclink[shop|foo]',
+   body=><<'BODY',
+parent article doclink[shop|foo]
+
+doclink[shop|
+paragraph
+
+paragraph
+]
+
+formlink[test|simple]
+
+formlink[test|
+multiple
+
+lines
+]
+
+popdoclink[shop|shop]
+
+popdoclink[shop|
+
+one
+
+two
+]
+
+popformlink[test|test form]
+
+popformlink[test|
+one
+
+two
+]
+
+BODY
    lastModified => '2004-09-23 06:00:00',
    threshold => 2,
   );
@@ -372,6 +406,25 @@ template_test "body", $parent, <<'TEMPLATE', <<EXPECTED;
 <:body:>
 TEMPLATE
 <p>parent article <a href="$base_securl/shop/" title="The Shop" class="doclink">foo</a></p>
+<a href="$base_securl/shop/" title="The Shop" class="doclink">
+<p>paragraph</p>
+<p>paragraph</p>
+</a>
+<p><a href="/cgi-bin/fmail.pl?form=test" title="Send us a comment" class="formlink">simple</a></p>
+<a href="/cgi-bin/fmail.pl?form=test" title="Send us a comment" class="formlink">
+<p>multiple</p>
+<p>lines</p>
+</a>
+<p><a href="$base_securl/shop/" title="The Shop" target="_blank" class="popdoclink">shop</a></p>
+<a href="$base_securl/shop/" title="The Shop" target="_blank" class="popdoclink">
+<p>one</p>
+<p>two</p>
+</a>
+<p><a href="/cgi-bin/fmail.pl?form=test" title="Send us a comment" class="popformlink" target="_blank">test form</a></p>
+<a href="/cgi-bin/fmail.pl?form=test" title="Send us a comment" class="popformlink" target="_blank">
+<p>one</p>
+<p>two</p>
+</a>
 EXPECTED
 
 # not actually generation tests, but chekcs that the is_step_ancestor works