summaryrefslogtreecommitdiffstats
path: root/lib/MarkdownBook/Document/txt.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MarkdownBook/Document/txt.pm')
-rw-r--r--lib/MarkdownBook/Document/txt.pm46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/MarkdownBook/Document/txt.pm b/lib/MarkdownBook/Document/txt.pm
new file mode 100644
index 0000000..f150477
--- /dev/null
+++ b/lib/MarkdownBook/Document/txt.pm
@@ -0,0 +1,46 @@
+# Copyright (C) 2012 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+use strict;
+use warnings;
+
+use MarkdownBook::Document;
+use Carp;
+
+package MarkdownBook::Document::txt;
+
+our @ISA = qw(MarkdownBook::Document);
+
+sub output
+{
+ my ($self) = @_;
+ my $out_fh;
+
+ open($out_fh, '>',
+ $self->{'book'}->dir() . '/' . $self->{'file'} . '.txt')
+ or Carp::croak('Cannot open "' . $self->{'file'} .
+ '" destination document');
+
+ # Print document title.
+ print($out_fh $self->{'title'} . "\n" .
+ '*' x length($self->{'title'}) . "\n\n\n");
+
+ # Print document text with macro substitutions.
+ print($out_fh $self->{'book'}->subst_macros($self->{'source_text'}));
+
+ close($out_fh);
+}
+
+1;