awestruct 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/awestruct/context_helper.rb +1 -1
- data/lib/awestruct/engine.rb +14 -10
- data/lib/awestruct/extensions/disqus.rb +4 -1
- data/lib/awestruct/extensions/flattr.rb +42 -0
- data/lib/awestruct/extensions/intense_debate.rb +1 -1
- data/lib/awestruct/extensions/template.atom.haml +1 -1
- data/lib/awestruct/{maruku_file.rb → markdown_file.rb} +3 -5
- data/lib/awestruct/{marukuable.rb → markdownable.rb} +3 -3
- metadata +51 -37
- data/lib/awestruct/blueclothable.rb +0 -30
data/lib/awestruct/engine.rb
CHANGED
@@ -12,7 +12,7 @@ require 'awestruct/site'
|
|
12
12
|
require 'awestruct/haml_file'
|
13
13
|
require 'awestruct/erb_file'
|
14
14
|
require 'awestruct/textile_file'
|
15
|
-
require 'awestruct/
|
15
|
+
require 'awestruct/markdown_file'
|
16
16
|
require 'awestruct/sass_file'
|
17
17
|
require 'awestruct/scss_file'
|
18
18
|
require 'awestruct/org_mode_file'
|
@@ -30,6 +30,7 @@ require 'awestruct/extensions/tagger'
|
|
30
30
|
require 'awestruct/extensions/tag_cloud'
|
31
31
|
require 'awestruct/extensions/intense_debate'
|
32
32
|
require 'awestruct/extensions/disqus'
|
33
|
+
require 'awestruct/extensions/flattr'
|
33
34
|
require 'awestruct/extensions/google_analytics'
|
34
35
|
require 'awestruct/extensions/partial'
|
35
36
|
|
@@ -106,7 +107,7 @@ module Awestruct
|
|
106
107
|
elsif ( path =~ /\.textile$/ )
|
107
108
|
page = TextileFile.new( site, path, fixed_relative_path, options )
|
108
109
|
elsif ( path =~ /\.md$/ )
|
109
|
-
page =
|
110
|
+
page = MarkdownFile.new( site, path, fixed_relative_path, options )
|
110
111
|
elsif ( path =~ /\.sass$/ )
|
111
112
|
page = SassFile.new( site, path, fixed_relative_path, options )
|
112
113
|
elsif ( path =~ /\.scss$/ )
|
@@ -128,14 +129,17 @@ module Awestruct
|
|
128
129
|
context.page = page
|
129
130
|
class << context
|
130
131
|
def interpolate_string(str)
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
132
|
+
if site.interpolate
|
133
|
+
str = str || ''
|
134
|
+
str = str.gsub( /\\/, '\\\\\\\\' )
|
135
|
+
str = str.gsub( /\\\\#/, '\\#' )
|
136
|
+
str = str.gsub( '@', '' ) #'\@' )
|
137
|
+
str = "%@#{str}@"
|
138
|
+
result = instance_eval( str )
|
139
|
+
result
|
140
|
+
else
|
141
|
+
str || ''
|
142
|
+
end
|
139
143
|
end
|
140
144
|
def evaluate_erb(erb)
|
141
145
|
erb.result( binding )
|
@@ -9,12 +9,14 @@ module Awestruct
|
|
9
9
|
module Disqus
|
10
10
|
def disqus_comments()
|
11
11
|
developer = (site.disqus_developer) ? 'var disqus_developer = 1;' : ''
|
12
|
+
identifier = (self.disqus_identifier) ? %Q{var disqus_identifier = "#{self.disqus_identifier}";} : ''
|
12
13
|
%Q{
|
13
14
|
<div id="disqus_thread"></div>
|
14
15
|
<script type="text/javascript">
|
15
16
|
var disqus_shortname = '#{site.disqus}';
|
16
17
|
var disqus_url = "#{site.base_url}/#{self.url}";
|
17
18
|
#{developer}
|
19
|
+
#{identifier}
|
18
20
|
(function() {
|
19
21
|
var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
|
20
22
|
dsq.src = "http://#{site.disqus}.disqus.com/embed.js";
|
@@ -26,7 +28,8 @@ module Awestruct
|
|
26
28
|
end
|
27
29
|
|
28
30
|
def disqus_comments_link()
|
29
|
-
%Q
|
31
|
+
identifier = self.disqus_identifier ? %Q(data-disqus-identifier="#{self.disqus_identifier}") : ''
|
32
|
+
%Q{ <a href="#{self.url}#disqus_thread" #{identifier}>Comments</a> }
|
30
33
|
end
|
31
34
|
|
32
35
|
def disqus_comments_count()
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
module Awestruct
|
3
|
+
module Extensions
|
4
|
+
class Flattr
|
5
|
+
|
6
|
+
def execute(site)
|
7
|
+
site.pages.each{|p| p.extend Flattrable }
|
8
|
+
end
|
9
|
+
|
10
|
+
module Flattrable
|
11
|
+
def flattr_javascript()
|
12
|
+
html = %Q|<script type='text/javascript'> /* <![CDATA[ */ (function() {\n|
|
13
|
+
html += %Q|var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];|
|
14
|
+
html += %Q|s.type = 'text/javascript';\n|
|
15
|
+
html += %Q|s.async = true;\n|
|
16
|
+
html += %Q|s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto&uid=#{site.flattr_username}&category=text';\n|
|
17
|
+
html += %Q|t.parentNode.insertBefore(s, t);\n|
|
18
|
+
html += %Q|})(); /* ]]> */ </script>|
|
19
|
+
html
|
20
|
+
end
|
21
|
+
def flattr_large_counter(param={})
|
22
|
+
url = param[:url] ? param[:url] : site.base_url + self.url
|
23
|
+
title = param[:title] ? param[:title] : self.title
|
24
|
+
category = param[:category] ? param[:category] : "text"
|
25
|
+
tags = param[:tags] ? "tags:" + param[:tags] + ";" : ""
|
26
|
+
html = %Q|<a class="FlattrButton" style="display:none;" href="#{url}" title="#{title}" |
|
27
|
+
html += %Q|rev="flattr;uid:#{site.flattr_username};category:#{category};#{tags}"></a>|
|
28
|
+
html
|
29
|
+
end
|
30
|
+
def flattr_compact_counter(param={})
|
31
|
+
url = param[:url] ? param[:url] : site.base_url + self.url
|
32
|
+
title = param[:title] ? param[:title] : self.title
|
33
|
+
category = param[:category] ? param[:category] : "text"
|
34
|
+
tags = param[:tags] ? "tags:" + param[:tags] + ";" : ""
|
35
|
+
html = %Q|<a class="FlattrButton" style="display:none;" href="#{url}" title="#{title}" |
|
36
|
+
html += %Q|rev="flattr;button:compact;uid:#{site.flattr_username};category:#{category};#{tags}"></a>|
|
37
|
+
html
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -15,7 +15,7 @@ module Awestruct
|
|
15
15
|
html = %Q(<script>\n)
|
16
16
|
html += %Q( var idcomments_acct='#{site.intense_debate_acct}';\n)
|
17
17
|
html += %Q( var idcomments_post_id='#{post_id}';\n )
|
18
|
-
html += %Q( var idcomments_post_url='#{site.base_url}
|
18
|
+
html += %Q( var idcomments_post_url='#{site.intense_debate_base_url || site.base_url}#{self.url}';\n)
|
19
19
|
html += %Q(</script>\n)
|
20
20
|
html += %Q(<span id="IDCommentsPostTitle" style="display:none"></span>\n)
|
21
21
|
html += %Q(<script type='text/javascript' src='http://www.intensedebate.com/js/genericCommentWrapperV2.js'></script>\n)
|
@@ -1,13 +1,11 @@
|
|
1
1
|
|
2
2
|
require 'awestruct/front_matter_file'
|
3
|
-
require 'awestruct/
|
4
|
-
require 'awestruct/blueclothable'
|
3
|
+
require 'awestruct/markdownable'
|
5
4
|
|
6
5
|
module Awestruct
|
7
|
-
class
|
6
|
+
class MarkdownFile < FrontMatterFile
|
8
7
|
|
9
|
-
|
10
|
-
include Blueclothable
|
8
|
+
include Markdownable
|
11
9
|
|
12
10
|
def initialize(site, source_path, relative_source_path, options = {})
|
13
11
|
super(site, source_path, relative_source_path, options)
|
@@ -1,12 +1,12 @@
|
|
1
|
-
require '
|
1
|
+
require 'rdiscount'
|
2
2
|
|
3
3
|
module Awestruct
|
4
4
|
|
5
|
-
module
|
5
|
+
module Markdownable
|
6
6
|
def render(context)
|
7
7
|
rendered = ''
|
8
8
|
begin
|
9
|
-
doc =
|
9
|
+
doc = RDiscount.new( context.interpolate_string( raw_page_content ) )
|
10
10
|
rendered = doc.to_html
|
11
11
|
rescue => e
|
12
12
|
puts e
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awestruct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bob McWhirter
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-13 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: hpricot
|
@@ -37,70 +37,78 @@ dependencies:
|
|
37
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
38
|
none: false
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - <=
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
hash: 3
|
43
43
|
segments:
|
44
|
+
- 3
|
45
|
+
- 1
|
44
46
|
- 0
|
45
|
-
version:
|
47
|
+
version: 3.1.0
|
46
48
|
type: :runtime
|
47
49
|
version_requirements: *id002
|
48
50
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
51
|
+
name: sass
|
50
52
|
prerelease: false
|
51
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
54
|
none: false
|
53
55
|
requirements:
|
54
|
-
- -
|
56
|
+
- - <=
|
55
57
|
- !ruby/object:Gem::Version
|
56
58
|
hash: 3
|
57
59
|
segments:
|
60
|
+
- 3
|
61
|
+
- 1
|
58
62
|
- 0
|
59
|
-
version:
|
63
|
+
version: 3.1.0
|
60
64
|
type: :runtime
|
61
65
|
version_requirements: *id003
|
62
66
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
67
|
+
name: hashery
|
64
68
|
prerelease: false
|
65
69
|
requirement: &id004 !ruby/object:Gem::Requirement
|
66
70
|
none: false
|
67
71
|
requirements:
|
68
|
-
- - "
|
72
|
+
- - "="
|
69
73
|
- !ruby/object:Gem::Version
|
70
|
-
hash:
|
74
|
+
hash: 7
|
71
75
|
segments:
|
76
|
+
- 1
|
77
|
+
- 4
|
72
78
|
- 0
|
73
|
-
version:
|
79
|
+
version: 1.4.0
|
74
80
|
type: :runtime
|
75
81
|
version_requirements: *id004
|
76
82
|
- !ruby/object:Gem::Dependency
|
77
|
-
name:
|
83
|
+
name: rdiscount
|
78
84
|
prerelease: false
|
79
85
|
requirement: &id005 !ruby/object:Gem::Requirement
|
80
86
|
none: false
|
81
87
|
requirements:
|
82
|
-
- -
|
88
|
+
- - "="
|
83
89
|
- !ruby/object:Gem::Version
|
84
|
-
hash:
|
90
|
+
hash: 31
|
85
91
|
segments:
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
version:
|
92
|
+
- 1
|
93
|
+
- 6
|
94
|
+
- 8
|
95
|
+
version: 1.6.8
|
90
96
|
type: :runtime
|
91
97
|
version_requirements: *id005
|
92
98
|
- !ruby/object:Gem::Dependency
|
93
|
-
name:
|
99
|
+
name: RedCloth
|
94
100
|
prerelease: false
|
95
101
|
requirement: &id006 !ruby/object:Gem::Requirement
|
96
102
|
none: false
|
97
103
|
requirements:
|
98
|
-
- -
|
104
|
+
- - <=
|
99
105
|
- !ruby/object:Gem::Version
|
100
|
-
hash:
|
106
|
+
hash: 61
|
101
107
|
segments:
|
102
|
-
-
|
103
|
-
|
108
|
+
- 4
|
109
|
+
- 2
|
110
|
+
- 5
|
111
|
+
version: 4.2.5
|
104
112
|
type: :runtime
|
105
113
|
version_requirements: *id006
|
106
114
|
- !ruby/object:Gem::Dependency
|
@@ -109,12 +117,14 @@ dependencies:
|
|
109
117
|
requirement: &id007 !ruby/object:Gem::Requirement
|
110
118
|
none: false
|
111
119
|
requirements:
|
112
|
-
- -
|
120
|
+
- - <=
|
113
121
|
- !ruby/object:Gem::Version
|
114
|
-
hash:
|
122
|
+
hash: 59
|
115
123
|
segments:
|
116
124
|
- 0
|
117
|
-
|
125
|
+
- 10
|
126
|
+
- 6
|
127
|
+
version: 0.10.6
|
118
128
|
type: :runtime
|
119
129
|
version_requirements: *id007
|
120
130
|
- !ruby/object:Gem::Dependency
|
@@ -123,12 +133,14 @@ dependencies:
|
|
123
133
|
requirement: &id008 !ruby/object:Gem::Requirement
|
124
134
|
none: false
|
125
135
|
requirements:
|
126
|
-
- -
|
136
|
+
- - <=
|
127
137
|
- !ruby/object:Gem::Version
|
128
|
-
hash:
|
138
|
+
hash: 63
|
129
139
|
segments:
|
130
140
|
- 0
|
131
|
-
|
141
|
+
- 10
|
142
|
+
- 4
|
143
|
+
version: 0.10.4
|
132
144
|
type: :runtime
|
133
145
|
version_requirements: *id008
|
134
146
|
- !ruby/object:Gem::Dependency
|
@@ -137,12 +149,14 @@ dependencies:
|
|
137
149
|
requirement: &id009 !ruby/object:Gem::Requirement
|
138
150
|
none: false
|
139
151
|
requirements:
|
140
|
-
- - "
|
152
|
+
- - "="
|
141
153
|
- !ruby/object:Gem::Version
|
142
|
-
hash:
|
154
|
+
hash: 13
|
143
155
|
segments:
|
144
156
|
- 0
|
145
|
-
|
157
|
+
- 5
|
158
|
+
- 3
|
159
|
+
version: 0.5.3
|
146
160
|
type: :runtime
|
147
161
|
version_requirements: *id009
|
148
162
|
description:
|
@@ -154,7 +168,6 @@ extensions: []
|
|
154
168
|
extra_rdoc_files: []
|
155
169
|
|
156
170
|
files:
|
157
|
-
- lib/awestruct/blueclothable.rb
|
158
171
|
- lib/awestruct/commands/deploy.rb
|
159
172
|
- lib/awestruct/commands/frameworks/base_pipeline.rb
|
160
173
|
- lib/awestruct/commands/generate.rb
|
@@ -169,6 +182,7 @@ files:
|
|
169
182
|
- lib/awestruct/extensions/atomizer.rb
|
170
183
|
- lib/awestruct/extensions/data_dir.rb
|
171
184
|
- lib/awestruct/extensions/disqus.rb
|
185
|
+
- lib/awestruct/extensions/flattr.rb
|
172
186
|
- lib/awestruct/extensions/google_analytics.rb
|
173
187
|
- lib/awestruct/extensions/indexifier.rb
|
174
188
|
- lib/awestruct/extensions/intense_debate.rb
|
@@ -181,8 +195,8 @@ files:
|
|
181
195
|
- lib/awestruct/front_matter_file.rb
|
182
196
|
- lib/awestruct/haml_file.rb
|
183
197
|
- lib/awestruct/hamlable.rb
|
184
|
-
- lib/awestruct/
|
185
|
-
- lib/awestruct/
|
198
|
+
- lib/awestruct/markdown_file.rb
|
199
|
+
- lib/awestruct/markdownable.rb
|
186
200
|
- lib/awestruct/org_mode_file.rb
|
187
201
|
- lib/awestruct/org_modeable.rb
|
188
202
|
- lib/awestruct/renderable.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'bluecloth'
|
2
|
-
|
3
|
-
module Awestruct
|
4
|
-
|
5
|
-
module Blueclothable
|
6
|
-
def render(context)
|
7
|
-
rendered = ''
|
8
|
-
begin
|
9
|
-
bluecloth_options = { :smartypants => true }
|
10
|
-
|
11
|
-
unless self.options.nil?
|
12
|
-
bluecloth_options.merge!({ :smartypants => false }) if self.options[:html_entities] == false
|
13
|
-
end
|
14
|
-
|
15
|
-
doc = BlueCloth.new( context.interpolate_string( raw_page_content ), bluecloth_options )
|
16
|
-
rendered = doc.to_html
|
17
|
-
rescue => e
|
18
|
-
puts e
|
19
|
-
puts e.backtrace
|
20
|
-
end
|
21
|
-
rendered
|
22
|
-
end
|
23
|
-
|
24
|
-
def content
|
25
|
-
context = site.engine.create_context( self )
|
26
|
-
render( context )
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|