#!/usr/bin/env ruby # For running when gem not installed $:.unshift File.dirname(File.dirname(__FILE__)) + "/lib" require "rubygems" require "optparse" require "fileutils" require "guider/guide" require "guider/config" require "guider/template" require "guider/index" options = { :output => Dir.pwd + "/out", } input_files = OptionParser.new do |opts| opts.banner = "Generates a guide.\n\n" + "Usage: guider \n\n" opts.on("-o", "--output=DIR", "Where to output the guides.") do |dir| options[:output] = dir end opts.on("-h", "--help", "Show this help message") do puts opts exit end end.parse! # clean output dir FileUtils.rm_rf(options[:output]) FileUtils.mkdir(options[:output]) # copy over main template resources tpl_dir = File.dirname(File.dirname(__FILE__)) + "/template" Dir[tpl_dir+"/*.{js,css,ico}"].each do |fname| FileUtils.cp(fname, options[:output]) end # Read the template HTML file tpl = Guider::Template.new(tpl_dir + "/guide.html") # The guides.json file config_file = input_files[0] guides = Guider::Config.new(config_file, tpl).guides guides.each do |guide| guide.write(options[:output]) end index_tpl = Guider::Template.new(tpl_dir + "/index.html") Guider::Index.new(guides, index_tpl).write(options[:output]) html = index_tpl.apply({ :title => "Guides", :content => "blah", })