vivus 1.0.7 → 1.0.8
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/vivus/application.js +1 -1
- data/app/assets/stylesheets/vivus/module/component.scss +5 -0
- data/app/assets/stylesheets/vivus/module/nav.scss +10 -1
- data/app/controllers/vivus/styles_controller.rb +7 -15
- data/app/models/component.rb +1 -1
- data/app/models/styleguide.rb +21 -0
- data/app/models/stylesheet.rb +5 -5
- data/app/views/layouts/vivus/application.html.erb +9 -1
- data/app/views/vivus/styles/_component.html.erb +1 -0
- data/app/views/vivus/styles/_nav.html.erb +4 -4
- data/app/views/vivus/styles/index.html.erb +2 -2
- data/lib/vivus/version.rb +1 -1
- metadata +5 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b185bf25bd7e7ba47b047943c0456c2f82e271b3
|
4
|
+
data.tar.gz: 8429dc067fd83b962aed851a24cd451c3d60b626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc3e6369648090da445ccbd0342e723dc9fd0d88aa3164f97acab5b9d0f9dcef0ae359742e08c07d18797484410b9ecf0c58c5988c120b46335b142509d535c7
|
7
|
+
data.tar.gz: b2b0d125f085af2359d257a9eb998d88bcaa518ef363e08ed4634ccea8adc042c500dabbcc6c3f1d7b664535972461039d58d8ae3ba10038dcc409c864331fa2
|
@@ -9,7 +9,7 @@ $(document).ready(function() {
|
|
9
9
|
});
|
10
10
|
|
11
11
|
$('h2.vivus-name').each(function(i, el) {
|
12
|
-
$(el).before("<a name='" + $(el).text().toLowerCase().replace(/ /g, '-') +"'></a>");
|
12
|
+
$(el).before("<a name='" + $(el).text().toLowerCase().replace(',', '').replace(/ /g, '-') +"'></a>");
|
13
13
|
})
|
14
14
|
|
15
15
|
$('.vivus-documentation *:contains("TODO:")').html(function(_, html) {
|
@@ -43,6 +43,12 @@
|
|
43
43
|
margin-left: 0;
|
44
44
|
padding-left: 15px;
|
45
45
|
border-left: 5px solid #F3DF6C;
|
46
|
+
|
47
|
+
ul {
|
48
|
+
li {
|
49
|
+
display: block;
|
50
|
+
}
|
51
|
+
}
|
46
52
|
}
|
47
53
|
|
48
54
|
a {
|
@@ -51,8 +57,11 @@
|
|
51
57
|
|
52
58
|
ul {
|
53
59
|
margin-top: 10px;
|
54
|
-
}
|
55
60
|
|
61
|
+
li {
|
62
|
+
display: none;
|
63
|
+
}
|
64
|
+
}
|
56
65
|
|
57
66
|
.h2 {
|
58
67
|
font-size: 13px;
|
@@ -11,26 +11,18 @@ class Vivus::StylesController < Vivus::ApplicationController
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def gather_stylesheets
|
14
|
+
|
14
15
|
sprockets = Rails.application.assets
|
15
16
|
|
16
17
|
@css_paths = %w{application.css}
|
17
|
-
@css_paths += Rails.application.config.assets.precompile.select
|
18
|
+
@css_paths += Rails.application.config.assets.precompile.select do |item|
|
18
19
|
item.is_a?(String) && item[-4,4] == ".css"
|
19
|
-
}
|
20
|
-
|
21
|
-
@stylesheets = @css_paths
|
22
|
-
.map{|file_path| Stylesheet.new(css: sprockets[file_path].body)}
|
23
|
-
.map{|stylesheet| stylesheet.parse}
|
24
|
-
.reject{|stylesheet| stylesheet.empty?}
|
25
|
-
.inject({}){ | accum, data |
|
26
|
-
data.each do |section, components|
|
27
|
-
accum[section] ||= []
|
28
|
-
accum[section] += components
|
29
|
-
end
|
30
|
-
|
31
|
-
accum
|
32
|
-
}
|
33
20
|
end
|
21
|
+
stylesheets = @css_paths.map{|file_path| Stylesheet.new(file_path: file_path, css: sprockets[file_path].body)}
|
22
|
+
|
23
|
+
styleguide = Styleguide.new(stylesheets: stylesheets)
|
24
|
+
@stylesheets = styleguide.generate
|
25
|
+
end
|
34
26
|
|
35
27
|
def is_a_file? file
|
36
28
|
File.file?(file)
|
data/app/models/component.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rdiscount'
|
2
2
|
|
3
3
|
class Component
|
4
|
-
attr_accessor :name, :section, :description, :example, :url
|
4
|
+
attr_accessor :name, :section, :description, :example, :url, :source
|
5
5
|
|
6
6
|
def display_description
|
7
7
|
RDiscount.new(self.description, :smart, :filter_html).to_html.html_safe if self.description
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Takes a bunch of Stylesheets, parses them,
|
2
|
+
# and merges them into a single styleguide.
|
3
|
+
class Styleguide
|
4
|
+
def initialize(options)
|
5
|
+
@stylesheets = options[:stylesheets]
|
6
|
+
end
|
7
|
+
|
8
|
+
def generate
|
9
|
+
@stylesheets
|
10
|
+
.map{|stylesheet| stylesheet.parse}
|
11
|
+
.reject{|stylesheet| stylesheet.empty?}
|
12
|
+
.inject({}){ | accum, data |
|
13
|
+
data.each do |section, components|
|
14
|
+
accum[section] ||= []
|
15
|
+
accum[section] += components
|
16
|
+
end
|
17
|
+
|
18
|
+
accum
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
data/app/models/stylesheet.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
|
-
|
4
1
|
class Stylesheet
|
5
2
|
def initialize(options)
|
3
|
+
@file_path = options[:file_path]
|
6
4
|
@css = options[:css]
|
7
5
|
end
|
8
6
|
|
9
7
|
def parse
|
10
8
|
documentation = []
|
11
9
|
|
12
|
-
|
10
|
+
styleguide_comments.each do |comment|
|
13
11
|
comment = comment[1]
|
14
12
|
|
15
13
|
name = find_name_for(comment)
|
@@ -21,6 +19,8 @@ class Stylesheet
|
|
21
19
|
if name.present? || section.present? || description.present? || example.present? || url.present?
|
22
20
|
component = Component.new
|
23
21
|
|
22
|
+
component.source = @file_path
|
23
|
+
|
24
24
|
component.name = name if name
|
25
25
|
if section
|
26
26
|
component.section = section
|
@@ -86,7 +86,7 @@ class Stylesheet
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
def
|
89
|
+
def styleguide_comments
|
90
90
|
regex = /\/\*\*(.*?)\*\*\//m
|
91
91
|
scan_comment(@css, regex)
|
92
92
|
end
|
@@ -4,7 +4,15 @@
|
|
4
4
|
<title>Vivus</title>
|
5
5
|
<%= stylesheet_link_tag "vivus/application", :media => "all" %>
|
6
6
|
<%= javascript_include_tag "vivus/application" %>
|
7
|
-
|
7
|
+
|
8
|
+
<% @css_paths.each do |path| %>
|
9
|
+
<% if path.match(/print/).nil? %>
|
10
|
+
<%= stylesheet_link_tag path, :media => "all" %>
|
11
|
+
<% else %>
|
12
|
+
<%= stylesheet_link_tag path, :media => "print" %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
|
8
16
|
<%= csrf_meta_tags %>
|
9
17
|
</head>
|
10
18
|
<body id="vivus">
|
@@ -3,16 +3,16 @@
|
|
3
3
|
<% @stylesheets.each do |group| %>
|
4
4
|
<% section = group[0] %>
|
5
5
|
<% section_slug = section.downcase.gsub(/[^a-z1-9]+/, '-').chomp('-') %>
|
6
|
-
<%
|
6
|
+
<% components = group[1] %>
|
7
7
|
|
8
8
|
<li class="h1 <%= "active" if section.downcase.gsub(/[^a-z1-9]+/, '-').chomp('-') == params[:section] %>">
|
9
9
|
<%= link_to section, vivus_section_path(section_slug) %>
|
10
10
|
|
11
|
-
<% if
|
11
|
+
<% if components.present? %>
|
12
12
|
<ul>
|
13
|
-
<%
|
13
|
+
<% components.each do |component| %>
|
14
14
|
<li class="h2">
|
15
|
-
<%= link_to
|
15
|
+
<%= link_to component.name, vivus_section_path(section_slug, anchor: component.slug) %>
|
16
16
|
</li>
|
17
17
|
<% end %>
|
18
18
|
</ul>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<p>Above each block of code in your CSS, start documenting your styleguide by writing comments.</p>
|
9
9
|
<p>Use the below example as a starting point.</p>
|
10
10
|
<pre>
|
11
|
-
|
11
|
+
/**
|
12
12
|
[Name] The name of the component (e.g. Success Buttons)
|
13
13
|
[Section] A section that groups components together (e.g. Buttons)
|
14
14
|
[Description]
|
@@ -32,7 +32,7 @@ need be.
|
|
32
32
|
<a href="#" class="button">Some text<a>
|
33
33
|
</div>
|
34
34
|
[Url] A web address pointing to further documentation / example (optional)
|
35
|
-
|
35
|
+
**/
|
36
36
|
</pre>
|
37
37
|
</li>
|
38
38
|
</ul>
|
data/lib/vivus/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vivus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Cipolla
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4
|
19
|
+
version: '4'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '5'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '4
|
29
|
+
version: '4'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5'
|
@@ -57,9 +57,6 @@ dependencies:
|
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '2.14'
|
60
|
-
- - "<"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '3'
|
63
60
|
type: :development
|
64
61
|
prerelease: false
|
65
62
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -67,9 +64,6 @@ dependencies:
|
|
67
64
|
- - ">="
|
68
65
|
- !ruby/object:Gem::Version
|
69
66
|
version: '2.14'
|
70
|
-
- - "<"
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: '3'
|
73
67
|
description: Styleguides can be a pain to keep as a living documentation for your
|
74
68
|
CSS. By analysing the comments in your SASS files, and by adding markdown to your
|
75
69
|
stylesheets, you can generate a living, breathing documentation styleguide that
|
@@ -95,6 +89,7 @@ files:
|
|
95
89
|
- app/controllers/vivus/application_controller.rb
|
96
90
|
- app/controllers/vivus/styles_controller.rb
|
97
91
|
- app/models/component.rb
|
92
|
+
- app/models/styleguide.rb
|
98
93
|
- app/models/stylesheet.rb
|
99
94
|
- app/views/layouts/vivus/application.html.erb
|
100
95
|
- app/views/vivus/styles/_component.html.erb
|