awestructx 0.4.0 → 0.4.1.x1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/awestruct/astruct_mixin.rb +13 -3
- data/lib/awestruct/cli/auto.rb +18 -4
- data/lib/awestruct/cli/deploy.rb +38 -0
- data/lib/awestruct/cli/invoker.rb +12 -1
- data/lib/awestruct/config.rb +10 -0
- data/lib/awestruct/dependencies.rb +102 -0
- data/lib/awestruct/deploy/github_pages_deploy.rb +61 -0
- data/lib/awestruct/deploy/rsync_deploy.rb +51 -0
- data/lib/awestruct/deployers.rb +15 -0
- data/lib/awestruct/engine.rb +49 -13
- data/lib/awestruct/extensions/atomizer.rb +3 -3
- data/lib/awestruct/extensions/minify.rb +21 -23
- data/lib/awestruct/extensions/posts.rb +4 -4
- data/lib/awestruct/extensions/sitemap.rb +1 -0
- data/lib/awestruct/handler_chains.rb +15 -32
- data/lib/awestruct/handlers/asciidoc_handler.rb +57 -0
- data/lib/awestruct/handlers/base_handler.rb +23 -4
- data/lib/awestruct/handlers/coffeescript_handler.rb +48 -0
- data/lib/awestruct/handlers/erb_handler.rb +44 -0
- data/lib/awestruct/handlers/file_handler.rb +6 -3
- data/lib/awestruct/handlers/front_matter_handler.rb +5 -0
- data/lib/awestruct/handlers/haml_handler.rb +14 -2
- data/lib/awestruct/handlers/layout_handler.rb +4 -2
- data/lib/awestruct/handlers/markdown_handler.rb +14 -0
- data/lib/awestruct/handlers/orgmode_handler.rb +48 -0
- data/lib/awestruct/handlers/page_delegating_handler.rb +54 -0
- data/lib/awestruct/handlers/restructuredtext_handler.rb +67 -0
- data/lib/awestruct/handlers/sass_handler.rb +7 -0
- data/lib/awestruct/handlers/scss_handler.rb +7 -0
- data/lib/awestruct/handlers/textile_handler.rb +15 -0
- data/lib/awestruct/layouts.rb +1 -0
- data/lib/awestruct/page.rb +27 -14
- data/lib/awestruct/page_loader.rb +15 -5
- data/lib/awestruct/pipeline.rb +7 -0
- data/lib/awestruct/version.rb +1 -1
- data/lib/guard/awestruct.rb +1 -1
- metadata +173 -267
@@ -1,48 +1,31 @@
|
|
1
1
|
require 'awestruct/handler_chain'
|
2
2
|
require 'awestruct/handlers/file_handler'
|
3
|
-
require 'awestruct/handlers/front_matter_handler'
|
4
|
-
require 'awestruct/handlers/interpolation_handler'
|
5
3
|
require 'awestruct/handlers/markdown_handler'
|
4
|
+
require 'awestruct/handlers/orgmode_handler'
|
5
|
+
require 'awestruct/handlers/asciidoc_handler'
|
6
|
+
require 'awestruct/handlers/restructuredtext_handler'
|
6
7
|
require 'awestruct/handlers/textile_handler'
|
8
|
+
require 'awestruct/handlers/erb_handler'
|
7
9
|
require 'awestruct/handlers/haml_handler'
|
8
10
|
require 'awestruct/handlers/sass_handler'
|
9
11
|
require 'awestruct/handlers/scss_handler'
|
10
|
-
require 'awestruct/handlers/
|
12
|
+
require 'awestruct/handlers/coffeescript_handler'
|
11
13
|
|
12
14
|
module Awestruct
|
13
15
|
|
14
16
|
class HandlerChains
|
15
17
|
|
16
|
-
|
17
18
|
DEFAULTS = [
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Awestruct::Handlers::InterpolationHandler,
|
29
|
-
Awestruct::Handlers::TextileHandler,
|
30
|
-
Awestruct::Handlers::LayoutHandler
|
31
|
-
),
|
32
|
-
HandlerChain.new( /\.haml$/,
|
33
|
-
Awestruct::Handlers::FileHandler,
|
34
|
-
Awestruct::Handlers::FrontMatterHandler,
|
35
|
-
Awestruct::Handlers::HamlHandler,
|
36
|
-
Awestruct::Handlers::LayoutHandler
|
37
|
-
),
|
38
|
-
HandlerChain.new( /\.sass$/,
|
39
|
-
Awestruct::Handlers::FileHandler,
|
40
|
-
Awestruct::Handlers::SassHandler
|
41
|
-
),
|
42
|
-
HandlerChain.new( /\.scss$/,
|
43
|
-
Awestruct::Handlers::FileHandler,
|
44
|
-
Awestruct::Handlers::ScssHandler
|
45
|
-
),
|
19
|
+
Awestruct::Handlers::MarkdownHandler::CHAIN,
|
20
|
+
Awestruct::Handlers::TextileHandler::CHAIN,
|
21
|
+
Awestruct::Handlers::ErbHandler::CHAIN,
|
22
|
+
Awestruct::Handlers::OrgmodeHandler::CHAIN,
|
23
|
+
Awestruct::Handlers::AsciidocHandler::CHAIN,
|
24
|
+
Awestruct::Handlers::RestructuredtextHandler::CHAIN,
|
25
|
+
Awestruct::Handlers::HamlHandler::CHAIN,
|
26
|
+
Awestruct::Handlers::SassHandler::CHAIN,
|
27
|
+
Awestruct::Handlers::ScssHandler::CHAIN,
|
28
|
+
Awestruct::Handlers::CoffeescriptHandler::CHAIN,
|
46
29
|
HandlerChain.new( /.*/, Awestruct::Handlers::FileHandler )
|
47
30
|
]
|
48
31
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handler_chain'
|
3
|
+
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
require 'awestruct/handlers/layout_handler'
|
8
|
+
|
9
|
+
module Awestruct
|
10
|
+
module Handlers
|
11
|
+
class AsciidocHandler < BaseHandler
|
12
|
+
|
13
|
+
CHAIN = Awestruct::HandlerChain.new( /\.(adoc|asciidoc)$/,
|
14
|
+
Awestruct::Handlers::FileHandler,
|
15
|
+
Awestruct::Handlers::FrontMatterHandler,
|
16
|
+
Awestruct::Handlers::InterpolationHandler,
|
17
|
+
Awestruct::Handlers::AsciidocHandler,
|
18
|
+
Awestruct::Handlers::LayoutHandler
|
19
|
+
)
|
20
|
+
|
21
|
+
def initialize(site, delegate)
|
22
|
+
super( site, delegate )
|
23
|
+
end
|
24
|
+
|
25
|
+
def simple_name
|
26
|
+
p = File.basename( relative_source_path )
|
27
|
+
File.basename( p, File.extname( p ) )
|
28
|
+
end
|
29
|
+
|
30
|
+
def output_filename
|
31
|
+
simple_name + output_extension
|
32
|
+
end
|
33
|
+
|
34
|
+
def output_extension
|
35
|
+
'.html'
|
36
|
+
end
|
37
|
+
|
38
|
+
def content_syntax
|
39
|
+
:asciidoc
|
40
|
+
end
|
41
|
+
|
42
|
+
def rendered_content(context, with_layouts=true)
|
43
|
+
content = delegate.rendered_content( context, with_layouts )
|
44
|
+
imagesdir = site.config.images_dir
|
45
|
+
iconsdir = File.join(imagesdir, 'icons')
|
46
|
+
conffile = File.join(site.config.config_dir, 'asciidoc.conf')
|
47
|
+
confopt = File.exist?(conffile) ? '-f ' + conffile : ''
|
48
|
+
content = execute_shell( [ "asciidoc -s -b html5 -a pygments -a icons",
|
49
|
+
"-a iconsdir='#{iconsdir}'",
|
50
|
+
"-a imagesdir='#{imagesdir}'",
|
51
|
+
"#{confopt} -o - -" ].join( ' ' ),
|
52
|
+
content)
|
53
|
+
content.gsub( "\r", '' )
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
require 'hashery/open_cascade'
|
3
|
+
require 'open3'
|
3
4
|
|
4
5
|
module Awestruct
|
5
6
|
module Handlers
|
@@ -39,12 +40,16 @@ module Awestruct
|
|
39
40
|
end
|
40
41
|
|
41
42
|
def output_path
|
42
|
-
|
43
|
+
( p = relative_source_path ) if relative_source_path
|
44
|
+
( of = output_filename ) if output_filename
|
45
|
+
return File.join( File.dirname( p ), output_filename ) if ( p && of )
|
46
|
+
nil
|
43
47
|
end
|
44
48
|
|
45
49
|
def output_extension
|
46
|
-
return @delegate.output_extension if @delegate
|
47
|
-
File.extname( output_filename )
|
50
|
+
return @delegate.output_extension if @delegate
|
51
|
+
return File.extname( output_filename ) unless output_filename.nil?
|
52
|
+
nil
|
48
53
|
end
|
49
54
|
|
50
55
|
def path
|
@@ -78,7 +83,12 @@ module Awestruct
|
|
78
83
|
end
|
79
84
|
|
80
85
|
def inherit_front_matter(page)
|
81
|
-
@delegate.inherit_front_matter(page) if @delegate
|
86
|
+
return @delegate.inherit_front_matter(page) if @delegate
|
87
|
+
end
|
88
|
+
|
89
|
+
def dependencies
|
90
|
+
return @delegate.dependencies if @delegate
|
91
|
+
[]
|
82
92
|
end
|
83
93
|
|
84
94
|
def to_chain
|
@@ -87,6 +97,15 @@ module Awestruct
|
|
87
97
|
chain.flatten
|
88
98
|
end
|
89
99
|
|
100
|
+
def execute_shell(command, input=nil)
|
101
|
+
Open3.popen3(command) do |stdin, stdout, _|
|
102
|
+
stdin.puts input unless input.nil?
|
103
|
+
out = stdout.read
|
104
|
+
end
|
105
|
+
rescue Errno::EPIPE
|
106
|
+
""
|
107
|
+
end
|
108
|
+
|
90
109
|
end
|
91
110
|
end
|
92
111
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handler_chain'
|
3
|
+
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
|
8
|
+
require 'coffee-script'
|
9
|
+
|
10
|
+
module Awestruct
|
11
|
+
module Handlers
|
12
|
+
class CoffeescriptHandler < BaseHandler
|
13
|
+
|
14
|
+
|
15
|
+
CHAIN = Awestruct::HandlerChain.new( /\.coffee$/,
|
16
|
+
Awestruct::Handlers::FileHandler,
|
17
|
+
Awestruct::Handlers::FrontMatterHandler,
|
18
|
+
Awestruct::Handlers::InterpolationHandler,
|
19
|
+
Awestruct::Handlers::CoffeescriptHandler
|
20
|
+
)
|
21
|
+
|
22
|
+
def initialize(site, delegate)
|
23
|
+
super( site, delegate )
|
24
|
+
end
|
25
|
+
|
26
|
+
def simple_name
|
27
|
+
File.basename( relative_source_path, '.coffee' )
|
28
|
+
end
|
29
|
+
|
30
|
+
def output_filename
|
31
|
+
File.basename( relative_source_path, '.coffee' ) + '.js'
|
32
|
+
end
|
33
|
+
|
34
|
+
def output_extension
|
35
|
+
'.js'
|
36
|
+
end
|
37
|
+
|
38
|
+
def content_syntax
|
39
|
+
:coffeescript
|
40
|
+
end
|
41
|
+
|
42
|
+
def rendered_content(context, with_layouts=true)
|
43
|
+
CoffeeScript.compile( delegate.rendered_content( context, with_layouts ) )
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handlers/base_handler'
|
3
|
+
require 'awestruct/handlers/file_handler'
|
4
|
+
require 'awestruct/handlers/front_matter_handler'
|
5
|
+
require 'awestruct/handlers/layout_handler'
|
6
|
+
|
7
|
+
module Awestruct
|
8
|
+
module Handlers
|
9
|
+
class ErbHandler < BaseHandler
|
10
|
+
|
11
|
+
CHAIN = Awestruct::HandlerChain.new( /\.erb$/,
|
12
|
+
Awestruct::Handlers::FileHandler,
|
13
|
+
Awestruct::Handlers::FrontMatterHandler,
|
14
|
+
Awestruct::Handlers::ErbHandler,
|
15
|
+
Awestruct::Handlers::LayoutHandler
|
16
|
+
)
|
17
|
+
|
18
|
+
def initialize(site, delegate)
|
19
|
+
super( site, delegate )
|
20
|
+
end
|
21
|
+
|
22
|
+
def simple_name
|
23
|
+
File.basename( File.basename( relative_source_path, '.erb' ), output_extension )
|
24
|
+
end
|
25
|
+
|
26
|
+
def output_filename
|
27
|
+
File.basename( relative_source_path, '.erb' )
|
28
|
+
end
|
29
|
+
|
30
|
+
def output_extension
|
31
|
+
File.extname( output_filename )
|
32
|
+
end
|
33
|
+
|
34
|
+
def content_syntax
|
35
|
+
:erb
|
36
|
+
end
|
37
|
+
|
38
|
+
def rendered_content(context, with_layouts=true)
|
39
|
+
erb = ERB.new( delegate.rendered_content( context, with_layouts) )
|
40
|
+
erb.result( context.send( :binding ) )
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -23,9 +23,12 @@ module Awestruct
|
|
23
23
|
def relative_source_path
|
24
24
|
begin
|
25
25
|
p = path.relative_path_from( site.dir )
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
if !! ( %r(^\.\.) =~ p.to_s )
|
27
|
+
return nil
|
28
|
+
end
|
29
|
+
r = File.join( '', p )
|
30
|
+
return r
|
31
|
+
rescue Exception=>e
|
29
32
|
nil
|
30
33
|
end
|
31
34
|
end
|
@@ -1,5 +1,9 @@
|
|
1
1
|
|
2
|
+
require 'awestruct/handler_chain'
|
2
3
|
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/layout_handler'
|
3
7
|
|
4
8
|
require 'haml'
|
5
9
|
|
@@ -7,6 +11,13 @@ module Awestruct
|
|
7
11
|
module Handlers
|
8
12
|
class HamlHandler < BaseHandler
|
9
13
|
|
14
|
+
CHAIN = Awestruct::HandlerChain.new( /\.haml$/,
|
15
|
+
Awestruct::Handlers::FileHandler,
|
16
|
+
Awestruct::Handlers::FrontMatterHandler,
|
17
|
+
Awestruct::Handlers::HamlHandler,
|
18
|
+
Awestruct::Handlers::LayoutHandler
|
19
|
+
)
|
20
|
+
|
10
21
|
def initialize(site, delegate)
|
11
22
|
super( site, delegate )
|
12
23
|
end
|
@@ -16,7 +27,8 @@ module Awestruct
|
|
16
27
|
end
|
17
28
|
|
18
29
|
def output_filename
|
19
|
-
File.basename( relative_source_path, '.haml' )
|
30
|
+
return File.basename( relative_source_path, '.haml' ) unless relative_source_path.nil?
|
31
|
+
nil
|
20
32
|
end
|
21
33
|
|
22
34
|
def output_extension
|
@@ -30,7 +42,7 @@ module Awestruct
|
|
30
42
|
hash
|
31
43
|
}
|
32
44
|
options[:relative_source_path] = context.page.relative_source_path
|
33
|
-
options[:filename] = delegate.path
|
45
|
+
options[:filename] = delegate.path.to_s
|
34
46
|
options[:line] = delegate.content_line_offset + 1
|
35
47
|
options[:site] = context.site
|
36
48
|
haml_engine = Haml::Engine.new( delegate.raw_content, options )
|
@@ -33,9 +33,11 @@ module Awestruct
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def for_layout_chain(page, &block)
|
36
|
+
# puts "for_layout_chain #{page.inspect}"
|
36
37
|
current_page = page
|
37
38
|
while ( ! ( current_page.nil? || current_page.layout.nil? ) )
|
38
39
|
current_page = site.layouts.find_matching( current_page.layout, current_page.output_extension )
|
40
|
+
# puts "layout #{current_page.inspect}"
|
39
41
|
if ( ! current_page.nil? )
|
40
42
|
block.call( current_page )
|
41
43
|
end
|
@@ -49,8 +51,8 @@ module Awestruct
|
|
49
51
|
for_layout_chain(context.__effective_page || context.page) do |layout|
|
50
52
|
context.content = content
|
51
53
|
context.__effective_page = layout
|
52
|
-
content = layout.rendered_content( context,
|
53
|
-
|
54
|
+
content = layout.rendered_content( context, false )
|
55
|
+
end
|
54
56
|
end
|
55
57
|
|
56
58
|
content
|
@@ -1,11 +1,25 @@
|
|
1
1
|
|
2
|
+
require 'awestruct/handler_chain'
|
2
3
|
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
require 'awestruct/handlers/layout_handler'
|
3
8
|
require 'rdiscount'
|
4
9
|
|
5
10
|
module Awestruct
|
6
11
|
module Handlers
|
7
12
|
class MarkdownHandler < BaseHandler
|
8
13
|
|
14
|
+
|
15
|
+
CHAIN = Awestruct::HandlerChain.new( /\.md$/,
|
16
|
+
Awestruct::Handlers::FileHandler,
|
17
|
+
Awestruct::Handlers::FrontMatterHandler,
|
18
|
+
Awestruct::Handlers::InterpolationHandler,
|
19
|
+
Awestruct::Handlers::MarkdownHandler,
|
20
|
+
Awestruct::Handlers::LayoutHandler
|
21
|
+
)
|
22
|
+
|
9
23
|
def initialize(site, delegate)
|
10
24
|
super( site, delegate )
|
11
25
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handler_chain'
|
3
|
+
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
require 'awestruct/handlers/layout_handler'
|
8
|
+
require 'org-ruby'
|
9
|
+
|
10
|
+
module Awestruct
|
11
|
+
module Handlers
|
12
|
+
class OrgmodeHandler < BaseHandler
|
13
|
+
|
14
|
+
CHAIN = Awestruct::HandlerChain.new( /\.org$/,
|
15
|
+
Awestruct::Handlers::FileHandler,
|
16
|
+
Awestruct::Handlers::FrontMatterHandler,
|
17
|
+
Awestruct::Handlers::InterpolationHandler,
|
18
|
+
Awestruct::Handlers::OrgmodeHandler,
|
19
|
+
Awestruct::Handlers::LayoutHandler
|
20
|
+
)
|
21
|
+
|
22
|
+
def initialize(site, delegate)
|
23
|
+
super( site, delegate )
|
24
|
+
end
|
25
|
+
|
26
|
+
def simple_name
|
27
|
+
File.basename( relative_source_path, '.org' )
|
28
|
+
end
|
29
|
+
|
30
|
+
def output_filename
|
31
|
+
File.basename( relative_source_path, '.org' ) + '.html'
|
32
|
+
end
|
33
|
+
|
34
|
+
def output_extension
|
35
|
+
'.html'
|
36
|
+
end
|
37
|
+
|
38
|
+
def content_syntax
|
39
|
+
:orgmode
|
40
|
+
end
|
41
|
+
|
42
|
+
def rendered_content(context, with_layouts=true)
|
43
|
+
Orgmode::Parser.new(super( context, with_layouts) ).to_html
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handlers/base_handler'
|
3
|
+
|
4
|
+
module Awestruct
|
5
|
+
module Handlers
|
6
|
+
class PageDelegatingHandler < BaseHandler
|
7
|
+
|
8
|
+
attr_accessor :page
|
9
|
+
|
10
|
+
def initialize(site, page)
|
11
|
+
super( site )
|
12
|
+
@page = page
|
13
|
+
end
|
14
|
+
|
15
|
+
def path
|
16
|
+
page.source_path
|
17
|
+
end
|
18
|
+
|
19
|
+
def inherit_front_matter(outer_page)
|
20
|
+
#page.prepare!
|
21
|
+
#page.handler.inherit_front_matter( outer_page )
|
22
|
+
end
|
23
|
+
|
24
|
+
def output_path
|
25
|
+
page.output_path
|
26
|
+
end
|
27
|
+
|
28
|
+
def relative_source_path
|
29
|
+
page.relative_source_path
|
30
|
+
end
|
31
|
+
|
32
|
+
def output_extension
|
33
|
+
page.output_extension
|
34
|
+
end
|
35
|
+
|
36
|
+
def stale?
|
37
|
+
page.stale?
|
38
|
+
end
|
39
|
+
|
40
|
+
def input_mtime(ignored)
|
41
|
+
page.input_mtime
|
42
|
+
end
|
43
|
+
|
44
|
+
def raw_content
|
45
|
+
page.raw_content
|
46
|
+
end
|
47
|
+
|
48
|
+
def rendered_content(context_ignored, with_layouts_ignored=true)
|
49
|
+
page.content( true )
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
|
2
|
+
require 'awestruct/handler_chain'
|
3
|
+
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
require 'awestruct/handlers/layout_handler'
|
8
|
+
|
9
|
+
require 'hpricot'
|
10
|
+
|
11
|
+
module Awestruct
|
12
|
+
module Handlers
|
13
|
+
class RestructuredtextHandler < BaseHandler
|
14
|
+
|
15
|
+
CHAIN = Awestruct::HandlerChain.new( /\.(adoc|asciidoc)$/,
|
16
|
+
Awestruct::Handlers::FileHandler,
|
17
|
+
Awestruct::Handlers::FrontMatterHandler,
|
18
|
+
Awestruct::Handlers::InterpolationHandler,
|
19
|
+
Awestruct::Handlers::RestructuredtextHandler,
|
20
|
+
Awestruct::Handlers::LayoutHandler
|
21
|
+
)
|
22
|
+
|
23
|
+
def initialize(site, delegate)
|
24
|
+
super( site, delegate )
|
25
|
+
end
|
26
|
+
|
27
|
+
def simple_name
|
28
|
+
File.basename( relative_source_path, '.rst' )
|
29
|
+
end
|
30
|
+
|
31
|
+
def output_filename
|
32
|
+
simple_name + output_extension
|
33
|
+
end
|
34
|
+
|
35
|
+
def output_extension
|
36
|
+
'.html'
|
37
|
+
end
|
38
|
+
|
39
|
+
def content_syntax
|
40
|
+
:rst
|
41
|
+
end
|
42
|
+
|
43
|
+
def rendered_content(context, with_layouts=true)
|
44
|
+
content = delegate.rendered_content( context, with_layouts )
|
45
|
+
|
46
|
+
hl = 1
|
47
|
+
if front_matter['initial_header_level'].to_s =~ /^[1-6]$/
|
48
|
+
hl = front_matter['initial_header_level']
|
49
|
+
end
|
50
|
+
rendered = ''
|
51
|
+
begin
|
52
|
+
doc = execute_shell( [ "rst2html",
|
53
|
+
"--strip-comments",
|
54
|
+
"--no-doc-title",
|
55
|
+
" --initial-header-level=#{hl}" ].join(' '),
|
56
|
+
content )
|
57
|
+
content = Hpricot( doc ).at( '/html/body/div[@class="document"]' ).inner_html.strip
|
58
|
+
content = content.gsub( "\r", '' )
|
59
|
+
rescue => e
|
60
|
+
puts e
|
61
|
+
puts e.backtrace
|
62
|
+
end
|
63
|
+
content
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -1,10 +1,17 @@
|
|
1
1
|
|
2
|
+
require 'awestruct/handler_chain'
|
2
3
|
require 'awestruct/handlers/base_sass_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
3
5
|
|
4
6
|
module Awestruct
|
5
7
|
module Handlers
|
6
8
|
class SassHandler < BaseSassHandler
|
7
9
|
|
10
|
+
CHAIN = Awestruct::HandlerChain.new( /\.sass$/,
|
11
|
+
Awestruct::Handlers::FileHandler,
|
12
|
+
Awestruct::Handlers::SassHandler
|
13
|
+
)
|
14
|
+
|
8
15
|
def initialize(site, delegate)
|
9
16
|
super( site, delegate, :sass )
|
10
17
|
end
|
@@ -1,10 +1,17 @@
|
|
1
1
|
|
2
|
+
require 'awestruct/handler_chain'
|
2
3
|
require 'awestruct/handlers/base_sass_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
3
5
|
|
4
6
|
module Awestruct
|
5
7
|
module Handlers
|
6
8
|
class ScssHandler < BaseSassHandler
|
7
9
|
|
10
|
+
CHAIN = Awestruct::HandlerChain.new( /\.scss$/,
|
11
|
+
Awestruct::Handlers::FileHandler,
|
12
|
+
Awestruct::Handlers::ScssHandler
|
13
|
+
)
|
14
|
+
|
8
15
|
def initialize(site, delegate)
|
9
16
|
super( site, delegate, :scss )
|
10
17
|
end
|
@@ -1,11 +1,26 @@
|
|
1
1
|
|
2
|
+
require 'awestruct/handler_chain'
|
2
3
|
require 'awestruct/handlers/base_handler'
|
4
|
+
require 'awestruct/handlers/file_handler'
|
5
|
+
require 'awestruct/handlers/front_matter_handler'
|
6
|
+
require 'awestruct/handlers/interpolation_handler'
|
7
|
+
require 'awestruct/handlers/layout_handler'
|
3
8
|
require 'redcloth'
|
4
9
|
|
5
10
|
module Awestruct
|
6
11
|
module Handlers
|
7
12
|
class TextileHandler < BaseHandler
|
8
13
|
|
14
|
+
CHAIN = Awestruct::HandlerChain.new( /\.textile$/,
|
15
|
+
Awestruct::Handlers::FileHandler,
|
16
|
+
Awestruct::Handlers::FrontMatterHandler,
|
17
|
+
Awestruct::Handlers::InterpolationHandler,
|
18
|
+
Awestruct::Handlers::TextileHandler,
|
19
|
+
Awestruct::Handlers::LayoutHandler
|
20
|
+
)
|
21
|
+
|
22
|
+
|
23
|
+
|
9
24
|
def initialize(site, delegate)
|
10
25
|
super( site, delegate )
|
11
26
|
end
|
data/lib/awestruct/layouts.rb
CHANGED