diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2017-12-23 15:02:32 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2017-12-23 21:11:29 -0500 |
commit | 4c3f03c1a7c622c3e92081664b42c96831b43dca (patch) | |
tree | a39fae944978c8886eaf06b7f1c23a63c5d1384e | |
parent | 3ca1e438fe602f3f03609ea6869b1de7a4091acc (diff) |
Let LocalPage::load decide how to handle different file types
-rw-r--r-- | config.yaml | 1 | ||||
-rw-r--r-- | lib/page_index.rb | 6 | ||||
-rw-r--r-- | lib/page_local.rb | 12 |
3 files changed, 16 insertions, 3 deletions
diff --git a/config.yaml b/config.yaml index 072ba80..05a31d2 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,4 @@ url: "https://www.andrewdm.me/" -html_suffixes: ["md", "org"] # Licenses default_license: "CC BY-SA-3.0" diff --git a/lib/page_index.rb b/lib/page_index.rb index 42c9e21..31d4682 100644 --- a/lib/page_index.rb +++ b/lib/page_index.rb @@ -28,13 +28,15 @@ class IndexPage < LocalPage @ls ||= Dir::entries(local_infile) .select{|fname|not fname.start_with?(".")} .map{|fname|"#{local_infile}/#{fname}"} - .select{|path|Dir::exist?(path) or Config::get.html_suffixes.include?(File::extname(path).gsub(/^[.]/, ''))} end def index_pages if @pages.nil? @pages = Set[] for path in _ls - @pages.add( Dir::exist?(path) ? IndexPage::new(path) : LocalPage::new(path) ) + page = LocalPage::load(path) + unless page.nil? + @pages.add(page) + end end for data in (_metadata['external'] || []) @pages.add(RemotePage::new(data)) diff --git a/lib/page_local.rb b/lib/page_local.rb index e13fa33..e956f6a 100644 --- a/lib/page_local.rb +++ b/lib/page_local.rb @@ -9,6 +9,18 @@ require 'pandoc' require 'person' class LocalPage < Page + def self.load(inpath) + case + when Dir::exist?(inpath) + require 'page_index' + return IndexPage::new(inpath) + when [".md", ".org"].include?(File::extname(inpath)) + return LocalPage::new(inpath) + else + return nil + end + end + def initialize(infile) @infile = infile super() |