summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-08-11 17:29:09 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-08-11 17:29:09 (EDT)
commit1c131dcd79d287911dfa3b7f6fb5fc8e7d0fa4ba (patch)
tree6e42058144603674cd8500e3557229aa08366ffa
parent2d9c61d9e4854e2038e2c6afb65b1cfee236bbf5 (diff)
Remove type-specific document modules.
-rw-r--r--scripts/MarkdownBook/Book.pm16
-rw-r--r--scripts/MarkdownBook/Document.pm26
-rw-r--r--scripts/MarkdownBook/Document/Appendix.pm32
-rw-r--r--scripts/MarkdownBook/Document/Chapter.pm32
-rw-r--r--scripts/MarkdownBook/Document/HTML.pm3
-rw-r--r--scripts/MarkdownBook/Document/HTML/Appendix.pm26
-rw-r--r--scripts/MarkdownBook/Document/HTML/Chapter.pm26
-rw-r--r--scripts/MarkdownBook/Document/HTML/Index.pm26
-rw-r--r--scripts/MarkdownBook/Document/Index.pm48
9 files changed, 33 insertions, 202 deletions
diff --git a/scripts/MarkdownBook/Book.pm b/scripts/MarkdownBook/Book.pm
index 5581fb3..b7216f3 100644
--- a/scripts/MarkdownBook/Book.pm
+++ b/scripts/MarkdownBook/Book.pm
@@ -16,10 +16,7 @@
use strict;
use warnings;
-# These are temporary.
-use MarkdownBook::Document::HTML::Index;
-use MarkdownBook::Document::HTML::Chapter;
-use MarkdownBook::Document::HTML::Appendix;
+use MarkdownBook::Document::HTML;
package MarkdownBook::Book;
@@ -90,9 +87,9 @@ sub documents
sub get_document_module
{
- my ($self, $mod) = @_;
+ my ($self) = @_;
- return 'MarkdownBook::Document::' . $self->{'format_mod'} . '::' . $mod;
+ return 'MarkdownBook::Document::' . $self->{'format_mod'};
}
sub create_documents
@@ -107,7 +104,8 @@ sub create_documents
my @letters;
$i = 0;
- $doc = $self->get_document_module('Index')->new($self);
+ $doc = $self->get_document_module()->new($self, 'index', 'index',
+ undef, $self->{'title'});
$doc_prev = $doc;
push(@{$self->{'docs'}}, $doc);
@@ -115,7 +113,7 @@ sub create_documents
while (<$series_fh>) {
chomp($_);
($file, $title) = split(/[ \t]+/, $_, 2);
- $doc = $self->get_document_module('Chapter')->new($self, $file,
+ $doc = $self->get_document_module()->new($self, 'chapter', $file,
++$i, $title);
$doc->prev($doc_prev);
$doc_prev->next($doc) if defined $doc_prev;
@@ -132,7 +130,7 @@ sub create_documents
while (<$series_fh>) {
chomp($_);
($file, $title) = split(/[ \t]+/, $_, 2);
- $doc = $self->get_document_module('Appendix')->new($self, $file,
+ $doc = $self->get_document_module()->new($self, 'appendix', $file,
$letters[++$i], $title);
$doc->prev($doc_prev);
$doc_prev->next($doc) if defined $doc_prev;
diff --git a/scripts/MarkdownBook/Document.pm b/scripts/MarkdownBook/Document.pm
index fe6634f..30c6314 100644
--- a/scripts/MarkdownBook/Document.pm
+++ b/scripts/MarkdownBook/Document.pm
@@ -23,7 +23,7 @@ package MarkdownBook::Document;
sub new
{
- my ($class, $book, $file, $id, $title) = @_;
+ my ($class, $book, $type, $file, $id, $title) = @_;
my $self;
$class = ref($class) || $class;
@@ -31,6 +31,7 @@ sub new
bless($self, $class);
$self->{'book'} = $book;
+ $self->{'type'} = $type;
$self->{'file'} = $file;
$self->{'id'} = $id;
$self->{'title'} = $title;
@@ -48,6 +49,16 @@ sub book
return $old;
}
+sub type
+{
+ my ($self, $type) = @_;
+ my $old = $self->{'type'};
+
+ $self->{'type'} = $type if defined($type);
+
+ return $old;
+}
+
sub file
{
my ($self, $file) = @_;
@@ -75,6 +86,19 @@ sub title
return $old;
}
+sub full_title
+{
+ my ($self) = @_;
+
+ if ($self->{'type'} eq 'chapter') {
+ return sprintf('Chapter %d - %s', $self->{'id'}, $self->{'title'});
+ } elsif ($self->{'type'} eq 'appendix') {
+ return sprintf('Appendix %s - %s', $self->{'id'}, $self->{'title'});
+ } else {
+ return undef;
+ }
+}
+
sub prev
{
my ($self, $other) = @_;
diff --git a/scripts/MarkdownBook/Document/Appendix.pm b/scripts/MarkdownBook/Document/Appendix.pm
deleted file mode 100644
index 37d3cf8..0000000
--- a/scripts/MarkdownBook/Document/Appendix.pm
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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;
-
-package MarkdownBook::Document::Appendix;
-
-our @ISA = qw(MarkdownBook::Document);
-
-sub full_title
-{
- my ($self) = @_;
-
- return sprintf('Appendix %s - %s', $self->{'id'}, $self->{'title'});
-}
-
-1;
diff --git a/scripts/MarkdownBook/Document/Chapter.pm b/scripts/MarkdownBook/Document/Chapter.pm
deleted file mode 100644
index 90a5f5c..0000000
--- a/scripts/MarkdownBook/Document/Chapter.pm
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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;
-
-package MarkdownBook::Document::Chapter;
-
-our @ISA = qw(MarkdownBook::Document);
-
-sub full_title
-{
- my ($self) = @_;
-
- return sprintf('Chapter %d - %s', $self->{'id'}, $self->{'title'});
-}
-
-1;
diff --git a/scripts/MarkdownBook/Document/HTML.pm b/scripts/MarkdownBook/Document/HTML.pm
index f2c8d1c..e775327 100644
--- a/scripts/MarkdownBook/Document/HTML.pm
+++ b/scripts/MarkdownBook/Document/HTML.pm
@@ -83,8 +83,7 @@ sub output
$body .= $elem->as_HTML('<>&', '', \%opt_end_tags) . "\n";
}
- $doc_tmpl->param(IS_INDEX => (ref($self) eq
- $self->{'book'}->get_document_module('Index')));
+ $doc_tmpl->param(IS_INDEX => ($self->{'type'} eq 'index'));
$doc_tmpl->param(BOOK_TITLE => $self->{'book'}->title());
$doc_tmpl->param(TITLE => $self->{'title'});
diff --git a/scripts/MarkdownBook/Document/HTML/Appendix.pm b/scripts/MarkdownBook/Document/HTML/Appendix.pm
deleted file mode 100644
index 506b7d2..0000000
--- a/scripts/MarkdownBook/Document/HTML/Appendix.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-# 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::HTML;
-use MarkdownBook::Document::Appendix;
-
-package MarkdownBook::Document::HTML::Appendix;
-
-our @ISA = qw(MarkdownBook::Document::Appendix MarkdownBook::Document::HTML);
-
-1;
diff --git a/scripts/MarkdownBook/Document/HTML/Chapter.pm b/scripts/MarkdownBook/Document/HTML/Chapter.pm
deleted file mode 100644
index 49d2511..0000000
--- a/scripts/MarkdownBook/Document/HTML/Chapter.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-# 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::HTML;
-use MarkdownBook::Document::Chapter;
-
-package MarkdownBook::Document::HTML::Chapter;
-
-our @ISA = qw(MarkdownBook::Document::Chapter MarkdownBook::Document::HTML);
-
-1;
diff --git a/scripts/MarkdownBook/Document/HTML/Index.pm b/scripts/MarkdownBook/Document/HTML/Index.pm
deleted file mode 100644
index 355f179..0000000
--- a/scripts/MarkdownBook/Document/HTML/Index.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-# 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::HTML;
-use MarkdownBook::Document::Index;
-
-package MarkdownBook::Document::HTML::Index;
-
-our @ISA = qw(MarkdownBook::Document::Index MarkdownBook::Document::HTML);
-
-1;
diff --git a/scripts/MarkdownBook/Document/Index.pm b/scripts/MarkdownBook/Document/Index.pm
deleted file mode 100644
index df94305..0000000
--- a/scripts/MarkdownBook/Document/Index.pm
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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;
-
-package MarkdownBook::Document::Index;
-
-our @ISA = qw(MarkdownBook::Document);
-
-sub new
-{
- my ($class, $book) = @_;
- my $self;
-
- $class = ref($class) || $class;
- $self = {};
- bless($self, $class);
-
- $self->{'book'} = $book;
- $self->{'file'} = 'index';
- $self->{'title'} = $book->title();
-
- return $self;
-}
-
-sub full_title
-{
- my ($self) = @_;
-
- return undef;
-}
-
-1;