awestruct 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/bin/awestruct CHANGED
@@ -34,7 +34,7 @@ def parse(args)
34
34
  options.init = init
35
35
  options.generate = false
36
36
  end
37
- opts.on( '-f', '--framework FRAMEWORK', 'Specify a compass framework during initialization (blueprint, 960)' ) do |framework|
37
+ opts.on( '-f', '--framework FRAMEWORK', 'Specify a compass framework during initialization (bootstrap, blueprint, 960)' ) do |framework|
38
38
  options.framework = framework
39
39
  end
40
40
  opts.on( '--[no-]scaffold', 'Create scaffolding during initialization (default: true)' ) do |s|
@@ -0,0 +1,24 @@
1
+ require 'open3'
2
+ require 'pathname'
3
+ require 'awestruct/front_matter_file'
4
+ require 'awestruct/asciidocable'
5
+
6
+ module Awestruct
7
+ class AsciiDocFile < FrontMatterFile
8
+
9
+ include AsciiDocable
10
+
11
+ def initialize(site, source_path, relative_source_path, options = {})
12
+ super(site, source_path, relative_source_path, options)
13
+ end
14
+
15
+ def output_filename
16
+ File.basename(self.source_path.gsub(/\.(asciidoc|adoc)$/, output_extension))
17
+ end
18
+
19
+ def output_extension
20
+ '.html'
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,35 @@
1
+ module Awestruct
2
+ module AsciiDocable
3
+
4
+ def render(context)
5
+ _render(context.interpolate_string(raw_page_content), context.page.relative_source_path, site)
6
+ end
7
+
8
+ def content
9
+ context = site.engine.create_context( self )
10
+ render( context )
11
+ end
12
+
13
+ def _render(content, relative_source_path, site)
14
+ # TODO replace with site.engine.config.images_dir once available
15
+ imagesdir = Pathname.new('/images').relative_path_from(Pathname.new(File.dirname(relative_source_path)))
16
+ iconsdir = File.join(imagesdir, 'icons')
17
+ conffile = File.join(site.engine.config.config_dir, 'asciidoc.conf')
18
+ confopt = File.exist?(conffile) ? '-f ' + conffile : ''
19
+ execute("asciidoc -s -b html5 -a pygments -a icons -a iconsdir='#{iconsdir}' -a imagesdir='#{imagesdir}' #{confopt} -o - -", content)
20
+ end
21
+
22
+ def execute(command, target)
23
+ out = ''
24
+ Open3.popen3(command) do |stdin, stdout, _|
25
+ stdin.puts target
26
+ stdin.close
27
+ out = stdout.read
28
+ end
29
+ out.gsub("\r", '')
30
+ rescue Errno::EPIPE
31
+ ""
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ .hero-unit
5
+ %h1 You're awestruct!
6
+ %p Your site is all setup to use Twitter Bootstrap with Awestruct.
7
+ %p
8
+ %a.btn.btn-primary.btn-large{ :href=>'http://awestruct.org' }
9
+ %i.icon-info-sign.icon-white
10
+ Learn more &raquo;
11
+ .row
12
+ .span4
13
+ %h2 About
14
+ %p Awestruct is a framework for creating static HTML sites. It's inspired by the awesome Jekyll utility in the same genre.
15
+ %p Additionally, Awestruct integrates technologies such as Compass, Markdown and Haml.
16
+ %p
17
+ %a.btn{ :href=>'http://awestruct.org' } View details &raquo;
18
+ .span4
19
+ %h2 Goal
20
+ %p The goal of Awestruct is to make it trivially easy to bake out non-trivial static websites. In addition to providing template-driven site creation (using Haml), Awestruct provides facilities for easily priming the site creation with additional non-page data.
21
+ %p
22
+ %a.btn{ :href=>'http://awestruct.org' } View details &raquo;
23
+ .span4
24
+ %h2 Concept
25
+ %p The core concept of Awestruct is that of structures, specifically Ruby OpenStruct structures. The struct aspect allows arbitrary, schema-less data to be associated with a specific page or the entire site.
26
+ %p
27
+ %a.btn{ :href=>'http://awestruct.org' } View details &raquo;
@@ -0,0 +1,29 @@
1
+ !!!5
2
+ %html
3
+ %head
4
+ %meta{ :charset=>'utf-8' }
5
+ %title An awesome site
6
+ %meta{ :name=>'viewport', :content=>'width=device-width, initial-scale=1.0' }
7
+ :css
8
+ body {
9
+ padding-top: 60px;
10
+ }
11
+ %link{ :rel=>'stylesheet', :type=>'text/css', :href=>'/stylesheets/styles.css' }
12
+ /[if lt IE 9]
13
+ %script{ :type=>'text/javascript', :src=>'//html5shim.googlecode.com/svn/trunk/html5.js' }
14
+ %body
15
+ .navbar.navbar-fixed-top
16
+ .navbar-inner
17
+ .container
18
+ %a.brand{ :href=>'/' } Project Name
19
+ %ul.nav
20
+ %li
21
+ %a{ :href=>'/' } Home
22
+ .container
23
+ ~ content
24
+ %hr
25
+ %footer
26
+ %p &copy; Organization #{Date.today.year}
27
+ -# Uncomment script tags (remove leading -#) when you're ready to use behaviors
28
+ -# %script{ :type=>'text/javascript', :src=>'//cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js' }
29
+ -# %script{ :type=>'text/javascript', :src=>'/javascripts/bootstrap-collapse.js' }
@@ -25,7 +25,11 @@ module Awestruct
25
25
  scaffold_name = ( @framework == 'compass' ? 'blueprint' : @framework )
26
26
  if ( @scaffold )
27
27
  manifest.copy_file( '_layouts/base.html.haml', File.join( File.dirname(__FILE__), "/frameworks/#{scaffold_name}/base_layout.html.haml" ) )
28
- manifest.copy_file( 'index.html.haml', File.join( File.dirname(__FILE__), "/frameworks/base_index.html.haml" ) )
28
+ if ( File.file? File.join( File.dirname(__FILE__), "/frameworks/#{scaffold_name}/base_index.html.haml" ) )
29
+ manifest.copy_file( 'index.html.haml', File.join( File.dirname(__FILE__), "/frameworks/#{scaffold_name}/base_index.html.haml" ) )
30
+ else
31
+ manifest.copy_file( 'index.html.haml', File.join( File.dirname(__FILE__), "/frameworks/base_index.html.haml" ) )
32
+ end
29
33
  manifest.touch_file( '_config/site.yml' )
30
34
  end
31
35
  manifest.perform( @dir )
@@ -2,7 +2,9 @@ require 'ostruct'
2
2
  require 'find'
3
3
  require 'compass'
4
4
  require 'ninesixty'
5
+ require 'bootstrap-sass'
5
6
  require 'time'
7
+ require 'notifier'
6
8
 
7
9
  require 'hashery/opencascade'
8
10
 
@@ -12,10 +14,12 @@ require 'awestruct/haml_file'
12
14
  require 'awestruct/erb_file'
13
15
  require 'awestruct/textile_file'
14
16
  require 'awestruct/markdown_file'
17
+ require 'awestruct/asciidoc_file'
15
18
  require 'awestruct/sass_file'
16
19
  require 'awestruct/scss_file'
17
- require 'awestruct/org_mode_file'
20
+ require 'awestruct/orgmode_file'
18
21
  require 'awestruct/verbatim_file'
22
+ require 'awestruct/restructuredtext_file'
19
23
 
20
24
  require 'awestruct/context_helper'
21
25
 
@@ -37,6 +41,7 @@ require 'awestruct/extensions/cachebuster'
37
41
  require 'awestruct/extensions/obfuscate'
38
42
  require 'awestruct/extensions/relative'
39
43
  require 'awestruct/extensions/assets'
44
+ require 'awestruct/extensions/minify'
40
45
 
41
46
  require 'awestruct/util/inflector'
42
47
  require 'awestruct/util/default_inflections'
@@ -65,6 +70,10 @@ module Awestruct
65
70
  @site.skin_dir
66
71
  end
67
72
 
73
+ def config
74
+ @config
75
+ end
76
+
68
77
  def generate(profile=nil, base_url=nil, default_base_url=nil, force=false)
69
78
  @base_url = base_url
70
79
  @default_base_url = default_base_url
@@ -113,12 +122,16 @@ module Awestruct
113
122
  page = TextileFile.new( site, path, fixed_relative_path, options )
114
123
  elsif ( path =~ /\.md$/ )
115
124
  page = MarkdownFile.new( site, path, fixed_relative_path, options )
125
+ elsif ( path =~ /\.(asciidoc|adoc)$/ )
126
+ page = AsciiDocFile.new( site, path, fixed_relative_path, options )
116
127
  elsif ( path =~ /\.sass$/ )
117
128
  page = SassFile.new( site, path, fixed_relative_path, options )
118
129
  elsif ( path =~ /\.scss$/ )
119
130
  page = ScssFile.new( site, path, fixed_relative_path, options )
120
131
  elsif ( path =~ /\.org$/ )
121
- page = OrgModeFile.new( site, path, fixed_relative_path, options )
132
+ page = OrgmodeFile.new( site, path, fixed_relative_path, options )
133
+ elsif ( path =~ /\.rst$/ )
134
+ page = ReStructuredTextFile.new( site, path, fixed_relative_path, options )
122
135
  elsif ( File.file?( path ) )
123
136
  page = VerbatimFile.new( site, path, fixed_relative_path, options )
124
137
  end
@@ -185,10 +198,16 @@ module Awestruct
185
198
  def configure_compass
186
199
  Compass.configuration.project_type = :standalone
187
200
  Compass.configuration.project_path = dir
188
- Compass.configuration.css_dir = File.join( config.output_dir, 'stylesheets' )
189
201
  Compass.configuration.sass_dir = 'stylesheets'
190
- Compass.configuration.images_dir = 'images'
202
+
203
+ site.images_dir = File.join( config.output_dir, 'images' )
204
+ site.stylesheets_dir = File.join( config.output_dir, 'stylesheets' )
205
+ site.javascripts_dir = File.join( config.output_dir, 'javascripts' )
206
+
207
+ Compass.configuration.css_dir = site.css_dir
191
208
  Compass.configuration.javascripts_dir = 'javascripts'
209
+ Compass.configuration.images_dir = 'images'
210
+
192
211
  end
193
212
 
194
213
  def set_base_url
@@ -209,7 +228,12 @@ module Awestruct
209
228
 
210
229
  def generate_files(force)
211
230
  site.pages.each do |page|
212
- generate_page( page, force )
231
+ begin
232
+ generate_page( page, force )
233
+ rescue Exception => e
234
+ Notifier.notify(:title=>"Error generating page #{page.name}", :message=>e.to_s)
235
+ puts "Cannot render page #{page.source_path}. #{e.to_s}"
236
+ end
213
237
  end
214
238
  end
215
239
 
@@ -1,5 +1,52 @@
1
1
  require 'fileutils'
2
2
 
3
+ ##
4
+ # Awestruct:Extensions:Minify is a transformer that minimizes JavaScript, CSS and HTML files.
5
+ # The transform runs on the rendered stream before it's written to the output path.
6
+ #
7
+ # Minification is performed by the following three libraries:
8
+ #
9
+ # htmlcompressor (minifies HTML): http://code.google.com/p/htmlcompressor/
10
+ # yuicompressor (minifies JavaScript and CSS): http://developer.yahoo.com/yui/compressor/
11
+ # pngcrush (minifies PNG): http://pmt.sourceforge.net/pngcrush/
12
+ #
13
+ # These commands must be available on your PATH in order to use them.
14
+ #
15
+ # This class is loaded as a transformer in the Awestruct pipeline. The
16
+ # constructor accepts an array of symbols representing the file types to minimize.
17
+ #
18
+ # extension Awestruct::Extensions::Minify.new
19
+ #
20
+ # This transform recognizes the following symbols:
21
+ #
22
+ # :css - CSS files with extension .css
23
+ # :js - JavaScript files with extension .js
24
+ # :html - HTML files with extension .html
25
+ # :png - PNG files with extension .png
26
+ #
27
+ # If no types are specified, the default value [:css, :js] is used.
28
+ #
29
+ # In addition to registering the transformer in the pipeline, it must be enabled
30
+ # by setting the following site property in _ext/config.yml:
31
+ #
32
+ # minify: true
33
+ #
34
+ # You can limit activation to one or more profiles:
35
+ #
36
+ # profiles:
37
+ # production:
38
+ # minify: true
39
+ #
40
+ # You can also configure the option arguments passed to the compressor programs. Here's
41
+ # how you specify options arguments for the htmlcompressor command:
42
+ #
43
+ # minify_html_opts:
44
+ # remove_intertag_spaces: true
45
+ # compress_js: true
46
+ # compress_css: true
47
+ #
48
+ # Note that any hypen (-) must be represented as an underscore (_) in the configuration.
49
+
3
50
  module Awestruct
4
51
  module Extensions
5
52
  class Minify
@@ -15,7 +62,7 @@ module Awestruct
15
62
  case ext
16
63
  when :html
17
64
  print "minifying html #{page.output_path}"
18
- htmlcompressor(page, input)
65
+ htmlcompressor(page, input, site.minify_html_opts)
19
66
  when :css
20
67
  print "minifying css #{page.output_path}"
21
68
  yuicompressor(page, input, :css)
@@ -28,16 +75,30 @@ module Awestruct
28
75
  else
29
76
  input
30
77
  end
78
+ else
79
+ input
31
80
  end
81
+ else
82
+ input
32
83
  end
33
- input
34
84
  end
35
85
 
36
86
  private
37
87
 
38
- def htmlcompressor(page, input)
88
+ def htmlcompressor(page, input, minify_html_opts)
39
89
  output = ''
40
- Open3.popen3("htmlcompressor --remove-intertag-spaces") do |stdin, stdout, stderr|
90
+ cmd = "htmlcompressor"
91
+ if minify_html_opts
92
+ minify_html_opts.each do |p, v|
93
+ # boolean options are simple flags (i.e., do not accept values)
94
+ if v === true
95
+ cmd += " --#{p.gsub('_', '-')}"
96
+ elsif not v === false
97
+ cmd += " --#{p.gsub('_', '-')}=#{v}"
98
+ end
99
+ end
100
+ end
101
+ Open3.popen3(cmd) do |stdin, stdout, stderr|
41
102
  threads = []
42
103
  threads << Thread.new(stdout) do |o|
43
104
  while ( ! o.eof? )
@@ -66,7 +66,7 @@ module Awestruct
66
66
  if ( i == 1 )
67
67
  page.output_path = File.join( @output_prefix, File.basename( @input_path ) + ".html" )
68
68
  else
69
- page.output_path = File.join( @output_prefix, "page#{i}.html" )
69
+ page.output_path = File.join( @output_prefix, "page/#{i}.html" )
70
70
  end
71
71
  page.paginate_generated = true
72
72
  site.pages << page
@@ -0,0 +1,8 @@
1
+ module Haml::Filters::AsciiDoc
2
+ include Awestruct::AsciiDocable # must come first
3
+ include Haml::Filters::Base
4
+
5
+ def render_with_options(text, options)
6
+ _render(text, options[:relative_source_path], options[:site])
7
+ end
8
+ end
@@ -1,7 +1,10 @@
1
-
2
1
  require 'haml'
2
+ require 'open3'
3
+ require 'pathname'
3
4
  require 'awestruct/front_matter_file'
4
5
  require 'awestruct/hamlable'
6
+ require 'awestruct/asciidocable'
7
+ require 'awestruct/haml/filters/asciidoc'
5
8
 
6
9
  module Awestruct
7
10
  class HamlFile < FrontMatterFile
@@ -3,15 +3,11 @@ module Awestruct
3
3
  module Hamlable
4
4
  def render(context)
5
5
  rendered = ''
6
- begin
7
- options = (site.haml || {}).inject({}){|h,(k,v)| h[k.to_sym] = v.to_sym; h }
8
- haml_engine = Haml::Engine.new( raw_page_content, options )
9
- rendered = haml_engine.render( context )
10
- rescue => e
11
- puts e
12
- puts e.backtrace
13
- end
14
- rendered
6
+ options = (site.haml || {}).inject({}){|h,(k,v)| h[k.to_sym] = v; h }
7
+ options[:relative_source_path] = context.page.relative_source_path
8
+ options[:site] = site
9
+ haml_engine = Haml::Engine.new( raw_page_content, options )
10
+ haml_engine.render( context )
15
11
  end
16
12
 
17
13
  def content
@@ -5,14 +5,8 @@ module Awestruct
5
5
  module Markdownable
6
6
  def render(context)
7
7
  rendered = ''
8
- begin
9
- doc = RDiscount.new( context.interpolate_string( raw_page_content ) )
10
- rendered = doc.to_html
11
- rescue => e
12
- puts e
13
- puts e.backtrace
14
- end
15
- rendered
8
+ doc = RDiscount.new( context.interpolate_string( raw_page_content ) )
9
+ doc.to_html
16
10
  end
17
11
 
18
12
  def content
@@ -1,12 +1,11 @@
1
-
2
1
  require 'sass'
3
2
  require 'awestruct/front_matter_file'
4
- require 'awestruct/org_modeable'
3
+ require 'awestruct/orgmodeable'
5
4
 
6
5
  module Awestruct
7
- class OrgModeFile < FrontMatterFile
6
+ class OrgmodeFile < FrontMatterFile
8
7
 
9
- include OrgModeable
8
+ include Orgmodeable
10
9
 
11
10
  def initialize(site, source_path, relative_source_path, options = {})
12
11
  super( site, source_path, relative_source_path, options )
@@ -1,8 +1,7 @@
1
-
2
1
  require 'org-ruby'
3
2
 
4
3
  module Awestruct
5
- module OrgModeable
4
+ module Orgmodeable
6
5
 
7
6
  def render(context)
8
7
  Orgmode::Parser.new(raw_page_content).to_html
@@ -0,0 +1,23 @@
1
+ require 'open3'
2
+ require 'awestruct/front_matter_file'
3
+ require 'awestruct/restructuredtextable'
4
+
5
+ module Awestruct
6
+ class ReStructuredTextFile < FrontMatterFile
7
+
8
+ include ReStructuredTextable
9
+
10
+ def initialize(site, source_path, relative_source_path, options = {})
11
+ super(site, source_path, relative_source_path, options)
12
+ end
13
+
14
+ def output_filename
15
+ File.basename( self.source_path, '.rst' ) + output_extension
16
+ end
17
+
18
+ def output_extension
19
+ '.html'
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,38 @@
1
+ module Awestruct
2
+ module ReStructuredTextable
3
+
4
+ def render(context)
5
+ hl = 1
6
+ if front_matter['initial_header_level'].to_s =~ /^[1-6]$/
7
+ hl = front_matter['initial_header_level']
8
+ end
9
+ rendered = ''
10
+ begin
11
+ doc = execute( "rst2html --strip-comments --no-doc-title --initial-header-level=#{hl}", context.interpolate_string( raw_page_content ) )
12
+ rendered = Hpricot( doc ).at( '/html/body/div[@class="document"]' ).inner_html.strip
13
+ rescue => e
14
+ puts e
15
+ puts e.backtrace
16
+ end
17
+ rendered
18
+ end
19
+
20
+ def content
21
+ context = site.engine.create_context( self )
22
+ render( context )
23
+ end
24
+
25
+ def execute(command, target)
26
+ out = ''
27
+ Open3.popen3(command) do |stdin, stdout, _|
28
+ stdin.puts target
29
+ stdin.close
30
+ out = stdout.read
31
+ end
32
+ out.gsub("\r", '')
33
+ rescue Errno::EPIPE
34
+ ""
35
+ end
36
+
37
+ end
38
+ end
@@ -3,17 +3,14 @@ module Awestruct
3
3
  module Textilable
4
4
  def render(context)
5
5
  rendered = ''
6
- begin
7
- # a module of rule functions is included in RedCloth using RedCloth.send(:include, MyRules)
8
- # rule functions on that module are activated by setting the property site.textile_rules
9
- # ex. site.textile_rules = ['emoticons']
10
- rules = context.site.textile_rules ? context.site.textile_rules.map { |r| r.to_sym } : []
11
- rendered = RedCloth.new( context.interpolate_string( raw_page_content ) ).to_html(*rules)
12
- rescue => e
13
- puts e
14
- puts e.backtrace
15
- end
16
- rendered
6
+ # security and rendering restrictions
7
+ # ex. site.textile = ['no_span_caps']
8
+ restrictions = (site.textile || []).map { |r| r.to_sym }
9
+ # a module of rule functions is included in RedCloth using RedCloth.send(:include, MyRules)
10
+ # rule functions on that module are activated by setting the property site.textile_rules
11
+ # ex. site.textile_rules = ['emoticons']
12
+ rules = context.site.textile_rules ? context.site.textile_rules.map { |r| r.to_sym } : []
13
+ RedCloth.new( context.interpolate_string( raw_page_content ), restrictions ).to_html(*rules)
17
14
  end
18
15
 
19
16
  def content
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Awestruct
3
- VERSION='0.2.13'
3
+ VERSION='0.2.14'
4
4
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awestruct
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 2
9
- - 13
10
- version: 0.2.13
8
+ - 14
9
+ version: 0.2.14
11
10
  platform: ruby
12
11
  authors:
13
12
  - Bob McWhirter
@@ -15,17 +14,16 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2012-02-07 00:00:00 Z
17
+ date: 2012-03-12 00:00:00 -04:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: hpricot
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ~>
27
26
  - !ruby/object:Gem::Version
28
- hash: 51
29
27
  segments:
30
28
  - 0
31
29
  - 8
@@ -37,11 +35,9 @@ dependencies:
37
35
  name: versionomy
38
36
  prerelease: false
39
37
  requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
38
  requirements:
42
39
  - - ~>
43
40
  - !ruby/object:Gem::Version
44
- hash: 13
45
41
  segments:
46
42
  - 0
47
43
  - 4
@@ -53,11 +49,9 @@ dependencies:
53
49
  name: haml
54
50
  prerelease: false
55
51
  requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
52
  requirements:
58
53
  - - ~>
59
54
  - !ruby/object:Gem::Version
60
- hash: 3
61
55
  segments:
62
56
  - 3
63
57
  - 1
@@ -69,11 +63,9 @@ dependencies:
69
63
  name: sass
70
64
  prerelease: false
71
65
  requirement: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
66
  requirements:
74
67
  - - ~>
75
68
  - !ruby/object:Gem::Version
76
- hash: 3
77
69
  segments:
78
70
  - 3
79
71
  - 1
@@ -85,11 +77,9 @@ dependencies:
85
77
  name: hashery
86
78
  prerelease: false
87
79
  requirement: &id005 !ruby/object:Gem::Requirement
88
- none: false
89
80
  requirements:
90
81
  - - ~>
91
82
  - !ruby/object:Gem::Version
92
- hash: 7
93
83
  segments:
94
84
  - 1
95
85
  - 4
@@ -101,11 +91,9 @@ dependencies:
101
91
  name: rdiscount
102
92
  prerelease: false
103
93
  requirement: &id006 !ruby/object:Gem::Requirement
104
- none: false
105
94
  requirements:
106
95
  - - ~>
107
96
  - !ruby/object:Gem::Version
108
- hash: 31
109
97
  segments:
110
98
  - 1
111
99
  - 6
@@ -117,11 +105,9 @@ dependencies:
117
105
  name: RedCloth
118
106
  prerelease: false
119
107
  requirement: &id007 !ruby/object:Gem::Requirement
120
- none: false
121
108
  requirements:
122
109
  - - ~>
123
110
  - !ruby/object:Gem::Version
124
- hash: 61
125
111
  segments:
126
112
  - 4
127
113
  - 2
@@ -133,11 +119,9 @@ dependencies:
133
119
  name: compass
134
120
  prerelease: false
135
121
  requirement: &id008 !ruby/object:Gem::Requirement
136
- none: false
137
122
  requirements:
138
123
  - - ~>
139
124
  - !ruby/object:Gem::Version
140
- hash: 57
141
125
  segments:
142
126
  - 0
143
127
  - 11
@@ -149,11 +133,9 @@ dependencies:
149
133
  name: compass-960-plugin
150
134
  prerelease: false
151
135
  requirement: &id009 !ruby/object:Gem::Requirement
152
- none: false
153
136
  requirements:
154
137
  - - ~>
155
138
  - !ruby/object:Gem::Version
156
- hash: 63
157
139
  segments:
158
140
  - 0
159
141
  - 10
@@ -162,53 +144,75 @@ dependencies:
162
144
  type: :runtime
163
145
  version_requirements: *id009
164
146
  - !ruby/object:Gem::Dependency
165
- name: org-ruby
147
+ name: bootstrap-sass
166
148
  prerelease: false
167
149
  requirement: &id010 !ruby/object:Gem::Requirement
168
- none: false
169
150
  requirements:
170
151
  - - ~>
171
152
  - !ruby/object:Gem::Version
172
- hash: 13
153
+ segments:
154
+ - 2
155
+ - 0
156
+ - 1
157
+ version: 2.0.1
158
+ type: :runtime
159
+ version_requirements: *id010
160
+ - !ruby/object:Gem::Dependency
161
+ name: org-ruby
162
+ prerelease: false
163
+ requirement: &id011 !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
173
167
  segments:
174
168
  - 0
175
169
  - 5
176
170
  - 3
177
171
  version: 0.5.3
178
172
  type: :runtime
179
- version_requirements: *id010
173
+ version_requirements: *id011
180
174
  - !ruby/object:Gem::Dependency
181
175
  name: fssm
182
176
  prerelease: false
183
- requirement: &id011 !ruby/object:Gem::Requirement
184
- none: false
177
+ requirement: &id012 !ruby/object:Gem::Requirement
185
178
  requirements:
186
179
  - - ~>
187
180
  - !ruby/object:Gem::Version
188
- hash: 25
189
181
  segments:
190
182
  - 0
191
183
  - 2
192
184
  - 7
193
185
  version: 0.2.7
194
186
  type: :runtime
195
- version_requirements: *id011
187
+ version_requirements: *id012
196
188
  - !ruby/object:Gem::Dependency
197
189
  name: json
198
190
  prerelease: false
199
- requirement: &id012 !ruby/object:Gem::Requirement
200
- none: false
191
+ requirement: &id013 !ruby/object:Gem::Requirement
201
192
  requirements:
202
193
  - - ~>
203
194
  - !ruby/object:Gem::Version
204
- hash: 5
205
195
  segments:
206
196
  - 1
207
197
  - 6
208
198
  - 5
209
199
  version: 1.6.5
210
200
  type: :runtime
211
- version_requirements: *id012
201
+ version_requirements: *id013
202
+ - !ruby/object:Gem::Dependency
203
+ name: notifier
204
+ prerelease: false
205
+ requirement: &id014 !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ~>
208
+ - !ruby/object:Gem::Version
209
+ segments:
210
+ - 0
211
+ - 1
212
+ - 4
213
+ version: 0.1.4
214
+ type: :runtime
215
+ version_requirements: *id014
212
216
  description: Awestruct is a framework for creating static HTML sites.
213
217
  email: bob@mcwhirter.org
214
218
  executables:
@@ -218,6 +222,8 @@ extensions: []
218
222
  extra_rdoc_files: []
219
223
 
220
224
  files:
225
+ - lib/awestruct/asciidoc_file.rb
226
+ - lib/awestruct/asciidocable.rb
221
227
  - lib/awestruct/commands/deploy.rb
222
228
  - lib/awestruct/commands/frameworks/base_pipeline.rb
223
229
  - lib/awestruct/commands/generate.rb
@@ -250,14 +256,17 @@ files:
250
256
  - lib/awestruct/extensions/tag_cloud.rb
251
257
  - lib/awestruct/extensions/tagger.rb
252
258
  - lib/awestruct/front_matter_file.rb
259
+ - lib/awestruct/haml/filters/asciidoc.rb
253
260
  - lib/awestruct/haml_file.rb
254
261
  - lib/awestruct/hamlable.rb
255
262
  - lib/awestruct/markdown_file.rb
256
263
  - lib/awestruct/markdownable.rb
257
- - lib/awestruct/org_mode_file.rb
258
- - lib/awestruct/org_modeable.rb
264
+ - lib/awestruct/orgmode_file.rb
265
+ - lib/awestruct/orgmodeable.rb
259
266
  - lib/awestruct/renderable.rb
260
267
  - lib/awestruct/renderable_file.rb
268
+ - lib/awestruct/restructuredtext_file.rb
269
+ - lib/awestruct/restructuredtextable.rb
261
270
  - lib/awestruct/sass_file.rb
262
271
  - lib/awestruct/sassable.rb
263
272
  - lib/awestruct/scss_file.rb
@@ -272,10 +281,12 @@ files:
272
281
  - lib/awestruct/commands/frameworks/960/base_layout.html.haml
273
282
  - lib/awestruct/commands/frameworks/base_index.html.haml
274
283
  - lib/awestruct/commands/frameworks/blueprint/base_layout.html.haml
284
+ - lib/awestruct/commands/frameworks/bootstrap/base_index.html.haml
285
+ - lib/awestruct/commands/frameworks/bootstrap/base_layout.html.haml
275
286
  - lib/awestruct/extensions/sitemap.xml.haml
276
287
  - lib/awestruct/extensions/tag_cloud.html.haml
277
288
  - lib/awestruct/extensions/template.atom.haml
278
- - bin/awestruct
289
+ has_rdoc: true
279
290
  homepage: http://awestruct.org
280
291
  licenses: []
281
292
 
@@ -285,27 +296,23 @@ rdoc_options: []
285
296
  require_paths:
286
297
  - lib
287
298
  required_ruby_version: !ruby/object:Gem::Requirement
288
- none: false
289
299
  requirements:
290
300
  - - ">="
291
301
  - !ruby/object:Gem::Version
292
- hash: 3
293
302
  segments:
294
303
  - 0
295
304
  version: "0"
296
305
  required_rubygems_version: !ruby/object:Gem::Requirement
297
- none: false
298
306
  requirements:
299
307
  - - ">="
300
308
  - !ruby/object:Gem::Version
301
- hash: 3
302
309
  segments:
303
310
  - 0
304
311
  version: "0"
305
312
  requirements: []
306
313
 
307
314
  rubyforge_project:
308
- rubygems_version: 1.8.10
315
+ rubygems_version: 1.3.6
309
316
  signing_key:
310
317
  specification_version: 3
311
318
  summary: Static site-baking utility