| Text-MultiMarkdown-ApacheHandler documentation | Contained in the Text-MultiMarkdown-ApacheHandler distribution. |
Text::MultiMarkdown::ApacheHandler - Processes files with MultiMarkdown syntax for Apache
Version 0.01
Processes files containing MultiMarkdown syntax into HTML files and serves them, optionally applying CSS styles according to rules in your httpd.conf or (more likely) .htaccess files. Optionally applies SmartyPants post-processing using Text::Typography.
You might put some lines like this in your .htaccess or httpd.conf file:
AddType text/multimarkdown .markdown .mkd .mhtml <Files ~ "\.(markdown|mkd|mhtml)$"> SetHandler perl-script PerlHandler Text::MultiMarkdown::ApacheHandler PerlSetVar mm_useSmartyPants 1 </Files>
Standard Apache module entry point
Darren Kulp, <darren at kulp.ch>
Please report any bugs or feature requests to
bug-text-multimarkdown-apachehandler at rt.cpan.org, or through the web
interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Text-MultiMarkdown-ApacheHandler.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Text::MultiMarkdown::ApacheHandler
You can also look for information at:
http://cpanratings.perl.org/d/Text-MultiMarkdown-ApacheHandler
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Text-MultiMarkdown-ApacheHandler
http://search.cpan.org/dist/Text-MultiMarkdown-ApacheHandler
Tests. I haven't yet looked into how to do tests for an Apache module like this; I want to do them more for the experience than the necessity, since there is practically nothing in this module.
The excellent Text::Markdown module and its author, "Writing Apache Modules with Perl and C" by Lincoln Stein and Doug MacEachern, MultiMarkdown from http://fletcher.freeshell.org/wiki/MultiMarkdown, and of course the original Markdown from http://daringfireball.net/projects/markdown
Copyright 2006 Darren Kulp, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Text-MultiMarkdown-ApacheHandler documentation | Contained in the Text-MultiMarkdown-ApacheHandler distribution. |
package Text::MultiMarkdown::ApacheHandler; use strict; use warnings;
our $VERSION = '0.01'; use Apache::Constants qw(:common); use Apache::File (); use Text::MultiMarkdown 'markdown'; use Text::Typography 'typography';
sub handler { my $r = shift; return DECLINED unless $r->content_type() eq 'text/multimarkdown'; my $file = $r->filename; unless (-e $r->finfo) { $r->log_error("File does not exist: $file"); return NOT_FOUND; } unless (-r _) { $r->log_error("File permissions deny access: $file"); return FORBIDDEN; } my $useSP = $r->dir_config('mm_useSmartyPants'); my $modtime = localtime((stat _)[9]); my $fh; unless ($fh = Apache::File->new($file)) { $r->log_error("Couldn't open $file for reading: $!"); return SERVER_ERROR; } my $content = do { local $/; <$fh> }; my ($title) = $file =~ m#/([^/]+?)(?:\.[^./]+)?$#; $r->send_http_header('text/html'); my $final = markdown($content, { document_format => 'Complete' }); $r->print($useSP ? typography($final) : $final); return OK; }
1; # End of Text::MultiMarkdown::ApacheHandler __END__