livingstyleguide 0.6.0.alpha.1 → 0.6.0.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/livingstyleguide/renderer.rb +26 -5
- data/lib/livingstyleguide/tilt_template.rb +42 -8
- data/lib/livingstyleguide/version.rb +1 -1
- data/stylesheets/livingstyleguide/_content.scss +2 -0
- data/stylesheets/livingstyleguide/_layout.scss +0 -1
- data/templates/layouts/default.html.erb +4 -1
- data/test/fixtures/standalone/style.scss +3 -0
- data/test/fixtures/standalone/styleguide-with-header-footer.html.lsg +7 -0
- data/test/fixtures/standalone/styleguide-with-javascript.html.lsg +8 -0
- data/test/fixtures/standalone/styleguide-with-sass.html.lsg +6 -0
- data/test/fixtures/standalone/styleguide-with-scss.html.lsg +7 -0
- data/test/fixtures/standalone/styleguide-with-style.html.lsg +7 -0
- data/test/fixtures/standalone/styleguide.html.lsg +2 -3
- data/test/integration/standalone_test.rb +36 -1
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c33ece860e06225991997ea016a1bb63296bcc80
|
4
|
+
data.tar.gz: 5ce8ad16bad308ed0b874b27e7e2dd8de467f55f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 473fcd6e4a359e8f3246113a8b5c832408b1dde659038d55444c4fdf82da4d3cd32fc1943dc02b03a92885683a2d75e19b5328f0bd873add7c0dbb22c0e7077f
|
7
|
+
data.tar.gz: de49cd6ffa45fd89f67d9e8c2f396237ba92f9091b352ee9eae3587e3e2ed57d86b7c6423385919f65d0311ee680ec4a9cd8d375974557865bfbe37f103d660e
|
data/CHANGELOG.md
CHANGED
@@ -3,12 +3,33 @@ require 'erb'
|
|
3
3
|
module LivingStyleGuide::Renderer
|
4
4
|
|
5
5
|
def render_living_style_guide
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
data = Class.new do
|
7
|
+
attr_accessor :css, :html, :title, :head, :header, :footer
|
8
|
+
include ERB::Util
|
9
|
+
def get_binding; binding end
|
10
|
+
end.new
|
11
|
+
data.css = self.render
|
12
|
+
markdown = LivingStyleGuide.markdown || ''
|
13
|
+
data.html = LivingStyleGuide::RedcarpetTemplate.new{ markdown }.render
|
14
|
+
data.title = @options[:living_style_guide][:title]
|
15
|
+
|
16
|
+
head = (@options[:living_style_guide][:javascript_before] || []).map do |src|
|
17
|
+
%Q(<script src="#{src}"></script>)
|
18
|
+
end
|
19
|
+
data.head = head.join("\n")
|
20
|
+
|
21
|
+
header = [@options[:living_style_guide][:header]]
|
22
|
+
data.header = header.join("\n")
|
23
|
+
|
24
|
+
footer = [@options[:living_style_guide][:footer]]
|
25
|
+
footer << (@options[:living_style_guide][:javascript_after] || []).map do |src|
|
26
|
+
%Q(<script src="#{src}"></script>)
|
27
|
+
end
|
28
|
+
data.footer = footer.join("\n")
|
29
|
+
|
10
30
|
LivingStyleGuide.reset
|
11
|
-
|
31
|
+
template = File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'layouts', 'default.html.erb'))
|
32
|
+
ERB.new(template).result(data.get_binding)
|
12
33
|
end
|
13
34
|
|
14
35
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'tilt'
|
2
2
|
require 'erb'
|
3
3
|
require 'compass'
|
4
|
+
require 'yaml'
|
4
5
|
|
5
6
|
module ::Tilt
|
6
7
|
class LivingStyleGuideTemplate < Template
|
@@ -10,26 +11,59 @@ module ::Tilt
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def evaluate(scope, locals, &block)
|
13
|
-
|
14
|
-
|
14
|
+
parse_options(data)
|
15
|
+
generate_sass
|
16
|
+
render_living_style_guide
|
15
17
|
end
|
16
18
|
|
17
19
|
private
|
18
20
|
def sass_options
|
19
21
|
options = Compass.configuration.to_sass_plugin_options
|
22
|
+
if defined?(Rails)
|
23
|
+
options[:load_paths] = options[:load_paths] | Rails.application.config.assets.paths
|
24
|
+
end
|
20
25
|
options[:template_location].each do |path, short|
|
21
26
|
options[:load_paths] << ::LivingStyleGuide::Importer.new(path)
|
22
27
|
end
|
23
|
-
options[:filename]
|
24
|
-
options[:line]
|
25
|
-
options[:syntax]
|
26
|
-
options[:importer]
|
28
|
+
options[:filename] = eval_file
|
29
|
+
options[:line] = line
|
30
|
+
options[:syntax] = @options[:syntax]
|
31
|
+
options[:importer] = LivingStyleGuide::Importer.new('.')
|
32
|
+
options[:living_style_guide] = @options
|
27
33
|
options
|
28
34
|
end
|
29
35
|
|
30
36
|
private
|
31
|
-
def
|
32
|
-
|
37
|
+
def parse_options(data)
|
38
|
+
@options = YAML.load(data)
|
39
|
+
@options.keys.each do |key|
|
40
|
+
@options[key.gsub('-', '_').to_sym] = @options.delete(key)
|
41
|
+
end
|
42
|
+
@options[:syntax] = @options.has_key?(:styleguide_sass) ? :sass : :scss
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
def generate_sass
|
47
|
+
@sass = [
|
48
|
+
%Q(@import "#{@options[:source]}"),
|
49
|
+
style_variables,
|
50
|
+
%Q(@import "livingstyleguide"),
|
51
|
+
@options[:styleguide_sass] || @options[:styleguide_scss]
|
52
|
+
].flatten.join(@options[:syntax] == :sass ? "\n" : ';')
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
def style_variables
|
57
|
+
return unless @options.has_key?(:style)
|
58
|
+
@options[:style].map do |key, value|
|
59
|
+
"$livingstyleguide--#{key}: #{value}"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
private
|
64
|
+
def render_living_style_guide
|
65
|
+
engine = ::Sass::Engine.new(@sass, sass_options)
|
66
|
+
engine.render_living_style_guide
|
33
67
|
end
|
34
68
|
end
|
35
69
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
.livingstyleguide--code-block,
|
3
3
|
.livingstyleguide--unordered-list,
|
4
4
|
.livingstyleguide--ordered-list {
|
5
|
+
color: $livingstyleguide--color;
|
5
6
|
display: block;
|
6
7
|
font-family: $livingstyleguide--base-font;
|
7
8
|
font-size: $livingstyleguide--base-font-size;
|
@@ -24,6 +25,7 @@
|
|
24
25
|
.livingstyleguide--headline,
|
25
26
|
.livingstyleguide--sub-headline,
|
26
27
|
.livingstyleguide--sub-sub-headline {
|
28
|
+
color: $livingstyleguide--color;
|
27
29
|
display: block;
|
28
30
|
font-family: $livingstyleguide--headline-font;
|
29
31
|
font-size: $livingstyleguide--headline-font-size;
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<meta charset="utf-8">
|
6
6
|
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
7
7
|
<meta content="The LivingStyleGuide Gem – http://livingstyleguide.org" name="generator">
|
8
|
-
<title
|
8
|
+
<title><%= h(@title) %></title>
|
9
9
|
<script>
|
10
10
|
// see: http://www.hagenburger.net/BLOG/Simple-HTML5-Fix-for-IE.html
|
11
11
|
for(var e,l='article aside footer header nav section time picture'.split(' ');e=l.pop();document.createElement(e));
|
@@ -13,10 +13,13 @@ for(var e,l='article aside footer header nav section time picture'.split(' ');e=
|
|
13
13
|
<style>
|
14
14
|
<%= @css %>
|
15
15
|
</style>
|
16
|
+
<%= @head %>
|
16
17
|
</head>
|
17
18
|
|
18
19
|
<body class="livingstyleguide">
|
20
|
+
<%= @header %>
|
19
21
|
<%= @html %>
|
22
|
+
<%= @footer %>
|
20
23
|
</body>
|
21
24
|
|
22
25
|
</html>
|
@@ -4,9 +4,44 @@ require 'tilt'
|
|
4
4
|
class MarkdownTest < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def test_standalone_project
|
7
|
-
html =
|
7
|
+
html = render('test/fixtures/standalone/styleguide.html.lsg')
|
8
8
|
assert_match %r(background: red), html
|
9
9
|
assert_match %r(<button class="button">), html
|
10
|
+
assert_match %r(<title>My Nice & Beautiful Living Style Guide</title>), html
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_custom_styles
|
14
|
+
html = render('test/fixtures/standalone/styleguide-with-style.html.lsg')
|
15
|
+
assert_match %r(.livingstyleguide--ordered-list { color: red;), html
|
16
|
+
assert_match %r(border-radius: 3px), html
|
17
|
+
assert_match %r(em { color: green;), html
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_javascript_includes
|
21
|
+
html = render('test/fixtures/standalone/styleguide-with-javascript.html.lsg')
|
22
|
+
assert_match %r(<script src="modernizr.js"></script>.*</head>), html
|
23
|
+
assert_match %r(<script src="http://code.jquery.com/jquery-2.0.3.js"></script> <script src="application.js"></script> </body>), html
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_additional_scss_code
|
27
|
+
html = render('test/fixtures/standalone/styleguide-with-scss.html.lsg')
|
28
|
+
assert_match %r(#test { color: red; }), html
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_additional_sass_code
|
32
|
+
html = render('test/fixtures/standalone/styleguide-with-sass.html.lsg')
|
33
|
+
assert_match %r(#test { color: green; }), html
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_header_footer
|
37
|
+
html = render('test/fixtures/standalone/styleguide-with-header-footer.html.lsg')
|
38
|
+
assert_match %r(<h1>Super Style Guide</h1>), html
|
39
|
+
assert_match %r(<p>Made by me</p>), html
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
def render(file)
|
44
|
+
Tilt.new(file).render.gsub(/\s+/, ' ')
|
10
45
|
end
|
11
46
|
|
12
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: livingstyleguide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.0.alpha.
|
4
|
+
version: 0.6.0.alpha.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nico Hagenburger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minisyntax
|
@@ -190,6 +190,11 @@ files:
|
|
190
190
|
- test/fixtures/standalone/modules/_buttons.md
|
191
191
|
- test/fixtures/standalone/modules/_buttons.scss
|
192
192
|
- test/fixtures/standalone/style.scss
|
193
|
+
- test/fixtures/standalone/styleguide-with-header-footer.html.lsg
|
194
|
+
- test/fixtures/standalone/styleguide-with-javascript.html.lsg
|
195
|
+
- test/fixtures/standalone/styleguide-with-sass.html.lsg
|
196
|
+
- test/fixtures/standalone/styleguide-with-scss.html.lsg
|
197
|
+
- test/fixtures/standalone/styleguide-with-style.html.lsg
|
193
198
|
- test/fixtures/standalone/styleguide.html.lsg
|
194
199
|
- test/fixtures/stylesheets/variables/_more-other-colors.sass
|
195
200
|
- test/fixtures/stylesheets/variables/colors.scss
|
@@ -239,6 +244,11 @@ test_files:
|
|
239
244
|
- test/fixtures/standalone/modules/_buttons.md
|
240
245
|
- test/fixtures/standalone/modules/_buttons.scss
|
241
246
|
- test/fixtures/standalone/style.scss
|
247
|
+
- test/fixtures/standalone/styleguide-with-header-footer.html.lsg
|
248
|
+
- test/fixtures/standalone/styleguide-with-javascript.html.lsg
|
249
|
+
- test/fixtures/standalone/styleguide-with-sass.html.lsg
|
250
|
+
- test/fixtures/standalone/styleguide-with-scss.html.lsg
|
251
|
+
- test/fixtures/standalone/styleguide-with-style.html.lsg
|
242
252
|
- test/fixtures/standalone/styleguide.html.lsg
|
243
253
|
- test/fixtures/stylesheets/variables/_more-other-colors.sass
|
244
254
|
- test/fixtures/stylesheets/variables/colors.scss
|