class Qwik::SiteArchive
Public Class Methods
generate(config, site, action)
click to toggle source
# File vendor/qwik/lib/qwik/act-archive.rb, line 102 def self.generate(config, site, action) sitename = site.sitename site_cache_path = site.cache_path site_cache_path.check_directory zip_filename = "#{sitename}.zip" zip_file = site_cache_path + zip_filename Zip::ZipOutputStream.open(zip_file.to_s) {|zos| site.each_all {|page| add_page(site, action, zos, site_cache_path, page) } add_theme(site, action, zos, config.theme_dir) } return zip_file end
Private Class Methods
add_entry(zos, filename, content, mtime = Time.new)
click to toggle source
# File vendor/qwik/lib/qwik/act-archive.rb, line 147 def self.add_entry(zos, filename, content, mtime = Time.new) e = Zip::ZipEntry.new('', filename, '', '', 0,0, Zip::ZipEntry::DEFLATED, 0, mtime) zos.put_next_entry(e) zos.write(content) end
add_page(site, action, zos, site_cache_path, page)
click to toggle source
# File vendor/qwik/lib/qwik/act-archive.rb, line 122 def self.add_page(site, action, zos, site_cache_path, page) base = "#{site.sitename}/#{page.key}" # Add original txt file. add_entry(zos, "#{base}.txt", page.load, page.mtime) # Generate a html file. html_path = site_cache_path+"#{page.key}.html" # Call act-html. #action.view_page_cache_generate(page.key) if ! html_path.exist? # Force create static HTML file. action.view_page_cache_generate(page.key) raise "Unknown error for '#{page.key}'" if ! html_path.exist? # What? filename = "#{base}.html" add_entry(zos, filename, html_path.read) # Generate a presen file if the page is related to presen. if /\Apresen/i =~ page.key || /\{\{presen/ =~ page.load html_path = site_cache_path+"#{page.key}-presen.html" wabisabi = action.c_page_res(page.key) w = PresenGenerator.generate(site, page.key, wabisabi) add_entry(zos, "#{base}-presen.html", w.format_xml) end end
add_theme(site, action, zos, theme_dir)
click to toggle source
# File vendor/qwik/lib/qwik/act-archive.rb, line 154 def self.add_theme(site, action, zos, theme_dir) ar = [] # FIXME: Collect this file list from the directory. ar << 'css/base.css' ar << 'css/wema.css' ar << 'js/base.js' ar << 'js/debugwindow.js' ar << 'js/niftypp.js' ar << 'js/wema.js' ar << 'i/external.png' ar << 'i/new.png' t = action.site_theme list = action.theme_files(t) list.each {|f| ar << "#{t}/#{f}" } ar << 's5/qwikworld/slides.css' ar << 's5/qwikworld/s5-core.css' ar << 's5/qwikworld/framing.css' ar << 's5/qwikworld/pretty.css' ar << 's5/qwikworld/bg-shade.png' ar << 's5/qwikworld/bg-slide.jpg' ar << 's5/default/opera.css' ar << 's5/default/outline.css' ar << 's5/default/print.css' ar << 's5/default/slides.js' ar.each {|b| add_entry(zos, "#{site.sitename}/.theme/#{b}", "#{theme_dir}/#{b}".path.read) } end