8
my $last_nl_count_level;
11
my $last_bl_count_level;
14
(my $s = $_[0]) =~ s{\#(.*)}{/"$1"};
21
while ($s =~ /([<>])\1*/g) {
22
my $level = length $&;
23
if ($level > $max_level) {
28
my $times = $max_level + 1;
32
return $tag . ('<' x $times) . $s . ('>' x $times);
37
# strip the leading U+FEFF byte in MS-DOS text files
38
my $first = ord(substr($_, 0, 1));
39
#printf STDERR "0x%x", $first;
40
#my $second = ord(substr($_, 2, 1));
41
#printf STDERR "0x%x", $second;
47
s{\[(http[^ \]]+) ([^\]]*)\]}{$2 (L<$1>)}gi;
48
s{ \[\[ ( [^\]\|]+ ) \| ([^\]]*) \]\] }{"L<$2|" . fmt_pos($1) . ">"}gixe;
49
s{<code>(.*?)</code>}{fmt_mark('C', $1)}gie;
50
s{'''(.*?)'''}{fmt_mark('B', $1)}ge;
51
s{''(.*?)''}{fmt_mark('I', $1)}ge;
52
if (s{^\s*<[^>]+>\s*$}{}) {
65
for my $i (0..length($_) - 1) {
66
my $chr = substr($_, $i, 1);
67
warn "chr ord($i): ".ord($chr)." \"$chr\"\n";
74
if (/(=+) (.*) \1$/) {
75
#warn "HERE! $_" if $. == 1;
76
my ($level, $title) = (length $1, $2);
79
print "\n=head$level $title\n\n";
80
} elsif (/^(\#+) (.*)/) {
81
my ($level, $txt) = (length($1) - 1, $2);
82
if (defined $last_nl_count_level && $level != $last_nl_count_level) {
85
$last_nl_count_level = $level;
86
$nl_counts[$level] ||= 0;
87
if ($nl_counts[$level] == 0) {
91
print "\n=item $nl_counts[$level].\n\n";
93
} elsif (/^(\*+) (.*)/) {
94
my ($level, $txt) = (length($1) - 1, $2);
95
if (defined $last_bl_count_level && $level != $last_bl_count_level) {
98
$last_bl_count_level = $level;
99
$bl_counts[$level] ||= 0;
100
if ($bl_counts[$level] == 0) {
103
$bl_counts[$level]++;
104
print "\n=item *\n\n";
115
while (defined $last_nl_count_level && $last_nl_count_level >= 0) {
117
$last_nl_count_level--;
119
undef $last_nl_count_level;
122
while (defined $last_bl_count_level && $last_bl_count_level >= 0) {
124
$last_bl_count_level--;
126
undef $last_bl_count_level;