Alex 'AdUser' Z
10 years ago
1 changed files with 75 additions and 0 deletions
@ -0,0 +1,75 @@ |
|||||||
|
package Text::Dokuwiki::Render::Markdown; |
||||||
|
|
||||||
|
use strict; |
||||||
|
use warnings; |
||||||
|
use utf8; |
||||||
|
|
||||||
|
use base 'Text::Dokuwiki::Render'; |
||||||
|
use Data::Dumper; |
||||||
|
|
||||||
|
sub _header { |
||||||
|
my ($self, $tag, $attrs, $content) = @_; |
||||||
|
my $title = $content; |
||||||
|
utf8::decode($title); |
||||||
|
|
||||||
|
my $text = $content . "\n"; |
||||||
|
$text .= (($tag eq 'h1') ? "=" : "-") x length($title); |
||||||
|
$text .= "\n\n"; |
||||||
|
|
||||||
|
return $text; |
||||||
|
} |
||||||
|
|
||||||
|
sub h1 { my $self = shift; $self->_header('h1', @_); }; |
||||||
|
sub h2 { my $self = shift; $self->_header('h2', @_); }; |
||||||
|
sub h3 { my $self = shift; $self->_header('h3', @_); }; |
||||||
|
sub h4 { my $self = shift; $self->_header('h4', @_); }; |
||||||
|
sub h5 { my $self = shift; $self->_header('h5', @_); }; |
||||||
|
sub h6 { my $self = shift; $self->_header('h6', @_); }; |
||||||
|
|
||||||
|
sub div { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
return $content; |
||||||
|
} |
||||||
|
|
||||||
|
sub br { return "\n"; }; |
||||||
|
|
||||||
|
sub ul { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
|
||||||
|
$self->{list_depth} += 1; |
||||||
|
my $text = $self->treewalk($content); |
||||||
|
$self->{list_depth} -= 1; |
||||||
|
|
||||||
|
return $text; |
||||||
|
} |
||||||
|
|
||||||
|
sub li { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
my $text = " " x $self->{list_depth}; |
||||||
|
$text .= "* "; |
||||||
|
$text .= $self->treewalk($content); |
||||||
|
$text .= "\n"; |
||||||
|
|
||||||
|
return $text; |
||||||
|
} |
||||||
|
|
||||||
|
sub a { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
|
||||||
|
return sprintf("[%s](%s)", $self->treewalk($content), $attrs->{href}); |
||||||
|
} |
||||||
|
|
||||||
|
sub p { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
|
||||||
|
return $self->treewalk($content) . "\n"; |
||||||
|
} |
||||||
|
|
||||||
|
sub img { |
||||||
|
my ($self, $attrs, $content) = @_; |
||||||
|
my $title = ($attrs->{title}) ? qq( $attrs->{title}) : ""; |
||||||
|
|
||||||
|
return sprintf("![%s](%s%s)", $attrs->{alt} // '', $attrs->{src}, $title); |
||||||
|
} |
||||||
|
|
||||||
|
1; |
Loading…
Reference in new issue