[Po4a-commits] "po4a/lib/Locale/Po4a Text.pm,1.15,1.16"
Nicolas FRANCOIS
nekral-guest at alioth.debian.org
Mon Jul 14 15:55:46 UTC 2008
Update of /cvsroot/po4a/po4a/lib/Locale/Po4a
In directory alioth:/tmp/cvs-serv6797/lib/Locale/Po4a
Modified Files:
Text.pm
Log Message:
* lib/Locale/Po4a/Text.pm: Added support for the Markdown format,
as used with Ikiwiki.
Index: Text.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/Text.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- Text.pm 31 Mar 2008 20:28:45 -0000 1.15
+++ Text.pm 14 Jul 2008 15:55:43 -0000 1.16
@@ -92,6 +92,14 @@
my $fortunes = 0;
+=item B<markdown>
+
+Handle some special markup in Markdown-formatted texts.
+
+=cut
+
+my $markdown = 0;
+
sub initialize {
my $self = shift;
my %options = @_;
@@ -109,6 +117,10 @@
if (defined $options{'fortunes'}) {
$fortunes=1;
}
+
+ if (defined $options{'markdown'}) {
+ $markdown=1;
+ }
}
sub parse {
@@ -162,13 +174,33 @@
do_paragraph($self,$paragraph,$wrapped_mode);
$paragraph="";
$wrapped_mode = 1;
+ } elsif ($markdown and
+ ( $line =~ /^#/ # headline
+ or $line =~ /^\s*\[\[\!\S[^\]]*\]\]\s*$/)) { # sole macro
+ # Found Markdown markup that should be preserved as a single line
+ do_paragraph($self,$paragraph,$wrapped_mode);
+ $paragraph="$line\n";
+ $wrapped_mode = 0;
+ do_paragraph($self,$paragraph,$wrapped_mode);
+ $wrapped_mode = 1;
+ $paragraph="";
+ } elsif ($markdown and
+ ( $paragraph =~ m/^>/ # blockquote
+ or $paragraph =~ m/[<>]/ # maybe html
+ or $paragraph =~ m/^"""/ # textblock inside macro end
+ or $paragraph =~ m/"""$/)) { # textblock inside macro begin
+ # Found Markdown markup that might not survive wrapping
+ $wrapped_mode = 0;
+ $paragraph .= $line."\n";
} else {
if ($line =~ /^\s/) {
# A line starting by a space indicates a non-wrap
# paragraph
$wrapped_mode = 0;
}
- $line =~ s/%%(.*)$//;
+ if ($fortunes) {
+ $line =~ s/%%(.*)$//;
+ }
# TODO: comments
$paragraph .= $line."\n";
}
More information about the Po4a-commits
mailing list