Sha256: 7a79ce1cdff3d5afb9eec8047b7400f109889ac21f6fc77365e498e0423aa0b0

Contents?: true

Size: 1.96 KB

Versions: 1

Compression:

Stored size: 1.96 KB

Contents

task :"gh-pages" do
  require 'fileutils'
  require 'wlang'
  require 'wlang/ext/hash_methodize'
  require 'alf'
  require 'bluecloth'
  require 'redcarpet'

  indir  = File.expand_path('../../doc/gh-pages', __FILE__)
  outdir = File.expand_path('../../doc/deploy-gh-pages', __FILE__)

  # Remove everything
  Dir[File.join(outdir, '*')].each do |f|
    FileUtils.rm_rf f
  end

  # copy assets
  FileUtils.cp_r  File.join(indir, "no-analytics.html"), outdir
  FileUtils.cp_r  File.join(indir, "index.html"), outdir
  FileUtils.cp_r  File.join(indir, "css"), outdir
  FileUtils.cp_r  File.join(indir, "downloads"), outdir
  FileUtils.cp_r  File.join(indir, "js"), outdir
  FileUtils.cp_r  File.join(indir, "images"), outdir

  html    = File.join(indir, 'templates', "html.wtpl")
  context = {
    :version => Alf::VERSION,
    :outdir  => outdir,
    :main    => Alf::Command::Main
  }

  static = lambda{|entry|
    FileUtils.mkdir File.join(outdir, entry)
    ctx = context.merge(:prefix  => "..", :entry => entry.to_sym)
    Dir[File.join(indir, entry, '*.md')].each do |file|
      md     = File.read(file)
      title  = md.split("\n").first[3..-1].gsub("—", "-")
      text   = Redcarpet.new(md).to_html
      target = File.join(outdir, entry, "#{File.basename(file, ".md")}.html")
      File.open(target, "w") do |io|
        ctx2 = ctx.merge(:text => text, :title => title)
        io << WLang.file_instantiate(html, ctx2)
      end
    end
  }

  ["overview", "shell", "ruby", "devel"].each do |f|
    static.call(f)
  end

  ["shell", "ruby"].each do |entry|
    Alf::Command::Main.subcommands.each do |sub| 
      ctx    = context.merge(:prefix  => "..", :entry => entry.to_sym)
      target = File.join(outdir, entry, "#{sub.command_name}.html")
      File.open(target, "w") do |io|
        ctx2 = ctx.merge(:operator => sub, 
                         :title => "Alf in #{entry.capitalize}: #{sub.command_name}")
        io << WLang.file_instantiate(html, ctx2)
      end
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
alf-0.10.0 tasks/gh-pages.rake