-Liquid::Template.register_tag('tree', Tag_tree)
-Liquid::Template.register_tag('children', Tag_children)
-Liquid::Template.register_tag('prevnext', Tag_prevnext)
+class Server
+ def start_watcher()
+ begin require 'listen'
+ rescue LoadError
+ puts "To use the --watch function, please install the 'listen' Ruby gem"
+ puts "(available in Debian/Ubuntu as 'ruby-listen')"
+ return nil
+ end
+
+ listener = Listen.to(CONFIG[:pages_dir], wait_for_delay: 1.0, only: /.html$/) do |modified, added, removed|
+ Site.new.build
+ end
+ listener.start
+ listener
+ end
+
+ def run(options)
+ require 'webrick'
+ listener = options[:watch] && start_watcher
+ port = options[:port] || 8000
+
+ puts "Serving at http://localhost:#{port}/ ..."
+ server = WEBrick::HTTPServer.new :Port => port, :DocumentRoot => CONFIG[:output_dir]
+ trap 'INT' do
+ server.shutdown
+ end
+ server.start
+ listener.stop if listener
+ end
+end
+
+def main
+ Liquid::Template.register_tag('tree', Tag_tree)
+ Liquid::Template.register_tag('children', Tag_children)
+ Liquid::Template.register_tag('prevnext', Tag_prevnext)