styledown2 2.0.0.pre5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/Gemfile +2 -0
- data/README.md +57 -0
- data/Rakefile +10 -0
- data/docs/api.md +144 -0
- data/lib/styledown/class_methods.rb +26 -0
- data/lib/styledown/file_reader.rb +42 -0
- data/lib/styledown/version.rb +3 -0
- data/lib/styledown.rb +146 -0
- data/lib/styledown2.rb +1 -0
- data/styledown2.gemspec +25 -0
- metadata +111 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4eaad569e5408829bb0289e13088fe4638a65d8a
|
4
|
+
data.tar.gz: d3c45314499459d4667aa06f911b4a2cf815977d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dbd4d66a476871d50a819bc7e2e942575f1fb04310595ec9f72de7d634f9964a4e6d22ce99b5a89838771f3a114fcac6e72be81be7ba557fb0ae9348274999ac
|
7
|
+
data.tar.gz: 74a62fe9d0020462a1f948923fecd32a417987b3558584611db43f12aaa6b7bf55055f6c2291dab6a7237f3a2a3f92724c3914027397278151f27034b07007e3
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Styledown for Ruby
|
2
|
+
|
3
|
+
> Write maintainable CSS styleguides using Markdown
|
4
|
+
|
5
|
+
Ruby implementation for [Styledown2](https://github.com/styledown/styledown2).
|
6
|
+
|
7
|
+
## Install
|
8
|
+
|
9
|
+
```
|
10
|
+
gem 'styledown2'
|
11
|
+
```
|
12
|
+
|
13
|
+
## API
|
14
|
+
|
15
|
+
See [API reference](docs/api.md) for full API reference.
|
16
|
+
|
17
|
+
### Object-oriented API
|
18
|
+
|
19
|
+
This gem provides a `Styledown` class.
|
20
|
+
|
21
|
+
```rb
|
22
|
+
styleguide = Styledown.new('/path/to/styleguides')
|
23
|
+
styleguide.render # Updates #output
|
24
|
+
|
25
|
+
styleguide.output
|
26
|
+
# => {
|
27
|
+
# 'buttons.html' => { 'contents' => '...' },
|
28
|
+
# 'forms.html' => { 'contents' => '...' },
|
29
|
+
# 'styledown/script.js' => { 'contents' => '...' }
|
30
|
+
# }
|
31
|
+
```
|
32
|
+
|
33
|
+
See [API reference](docs/api.md#styledown) for full reference on the `Styledown` class.
|
34
|
+
|
35
|
+
### Functional API
|
36
|
+
|
37
|
+
This implements the same functional API as the JavaScript `styledown2`.
|
38
|
+
|
39
|
+
```rb
|
40
|
+
files = Styledown.read(...)
|
41
|
+
data = Styledown.parse(files)
|
42
|
+
output = Styledown.render(data)
|
43
|
+
```
|
44
|
+
|
45
|
+
See [API reference](docs/api.md#class-methods) for full reference on `Styledown` class methods.
|
46
|
+
|
47
|
+
## Thanks
|
48
|
+
|
49
|
+
**styledown2-ruby** © 2017+, Rico Sta. Cruz. Released under the [MIT] License.<br>
|
50
|
+
Authored and maintained by Rico Sta. Cruz with help from contributors ([list][contributors]).
|
51
|
+
|
52
|
+
> [ricostacruz.com](http://ricostacruz.com) ·
|
53
|
+
> GitHub [@rstacruz](https://github.com/rstacruz) ·
|
54
|
+
> Twitter [@rstacruz](https://twitter.com/rstacruz)
|
55
|
+
|
56
|
+
[MIT]: http://mit-license.org/
|
57
|
+
[contributors]: http://github.com/styledown/styledown2-ruby/contributors
|
data/Rakefile
ADDED
data/docs/api.md
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
# API
|
2
|
+
|
3
|
+
## Styledown
|
4
|
+
|
5
|
+
> `styleguide = Styledown.new(path, [options])`
|
6
|
+
|
7
|
+
Styledown class.
|
8
|
+
|
9
|
+
```rb
|
10
|
+
styleguide = Styledown.new('/path/to/guides')
|
11
|
+
styleguide.render
|
12
|
+
|
13
|
+
styleguide.output
|
14
|
+
# => {
|
15
|
+
# 'buttons.html' => { 'contents' => '...' },
|
16
|
+
# 'forms.html' => { 'contents' => '...' }
|
17
|
+
# }
|
18
|
+
```
|
19
|
+
|
20
|
+
### render
|
21
|
+
|
22
|
+
> `styleguide.render`
|
23
|
+
|
24
|
+
Processes files and updates [#output](#output). Styledown keeps a cache, so this will not re-read or re-process if no files have changed. See [Styledown class](#styledown) for an example.
|
25
|
+
|
26
|
+
### fast_render
|
27
|
+
|
28
|
+
> `styleguide.fast_render`
|
29
|
+
|
30
|
+
Like [#render](#render), but skips checking if any files have been updated. Use this in production.
|
31
|
+
|
32
|
+
### render!
|
33
|
+
|
34
|
+
> `styleguide.render!`
|
35
|
+
|
36
|
+
Forces a [#render](#render) regardless of whether files have changed or not.
|
37
|
+
|
38
|
+
### output
|
39
|
+
|
40
|
+
> `styleguide.output`
|
41
|
+
|
42
|
+
The final transformed files. This is a Hash. See [Styledown class](#styledown) for an example.
|
43
|
+
|
44
|
+
### add\_data\_filter
|
45
|
+
|
46
|
+
> `styleguide.add_data_filter { |data| ... }`
|
47
|
+
|
48
|
+
Adds a function to be invoked on [#render](#render) that will transform Styledown raw data. The given block should return a new `data`, or the same one if it was mutated.
|
49
|
+
|
50
|
+
### add\_file\_filter
|
51
|
+
|
52
|
+
> `styleguide.add_file_filter { |filename, file| ... }`
|
53
|
+
|
54
|
+
Adds a function to be invoked on [#render](#render) that will transform Styledown `file` data. The given block should return a `[filename, file]` tuple.
|
55
|
+
|
56
|
+
```rb
|
57
|
+
styleguide = Styledown.new('/path/to/guides')
|
58
|
+
|
59
|
+
styleguide.add_file_filter do |filename, file|
|
60
|
+
filename = filename.gsub(/\.html$/, '.htm')
|
61
|
+
[filename, file]
|
62
|
+
end
|
63
|
+
|
64
|
+
styleguide.render
|
65
|
+
```
|
66
|
+
|
67
|
+
### add\_section\_filter
|
68
|
+
|
69
|
+
> `styleguide.add_section_filter { |section| ... }`
|
70
|
+
|
71
|
+
Adds a function to be invoked on [#render](#render) that will transform Styledown `section` data. The given block should return a new `section`, or the same one if it was mutated.
|
72
|
+
|
73
|
+
```rb
|
74
|
+
styleguide = Styledown.new('/path/to/guides')
|
75
|
+
|
76
|
+
styleguide.add_section_filter do |section|
|
77
|
+
# Prefix id's for whatever reason
|
78
|
+
section['id'] = "sg-#{section['id']}"
|
79
|
+
section
|
80
|
+
end
|
81
|
+
|
82
|
+
styleguide.render
|
83
|
+
```
|
84
|
+
|
85
|
+
### add\_part\_filter
|
86
|
+
|
87
|
+
> `styleguide.add_part_filter { |part| ... }`
|
88
|
+
|
89
|
+
Adds a function to be invoked on [#render](#render) that will transform Styledown `part` data. The given block should return a new `part`, or the same one if it was mutated.
|
90
|
+
|
91
|
+
```rb
|
92
|
+
styleguide = Styledown.new('/path/to/guides')
|
93
|
+
|
94
|
+
styleguide.add_part_filter do |part|
|
95
|
+
part['class'] += ' my-class'
|
96
|
+
part
|
97
|
+
end
|
98
|
+
|
99
|
+
styleguide.render
|
100
|
+
```
|
101
|
+
|
102
|
+
### add\_figure\_filter
|
103
|
+
|
104
|
+
> `styleguide.add_figure_filter(language) { |content| ... }`
|
105
|
+
|
106
|
+
Adds a function to be invoked on [#render](#render) for transpiling example figures. The given block should return `[language, content]` where `language` is the new language it was transformed to, and `content` is the transformed result.
|
107
|
+
|
108
|
+
```rb
|
109
|
+
styleguide = Styledown.new('/path/to/guides')
|
110
|
+
|
111
|
+
styleguide.add_figure_filter('erb') do |contetns|
|
112
|
+
[ 'html', ERB.render(contents) ]
|
113
|
+
end
|
114
|
+
|
115
|
+
styleguide.render
|
116
|
+
```
|
117
|
+
|
118
|
+
### invalidate
|
119
|
+
|
120
|
+
Invalidates the cache so that the next [#render](#render) will always run.
|
121
|
+
|
122
|
+
### invalidate_data
|
123
|
+
|
124
|
+
Partially invalidates the cache so that the next [#render](#render) will always run the build step. It will not re-run the read step, however.
|
125
|
+
|
126
|
+
## Class functions
|
127
|
+
|
128
|
+
### Styledown.read
|
129
|
+
|
130
|
+
> `Styledown.read(path, [options])`
|
131
|
+
|
132
|
+
Reads files in `path` and returns their contents in a Hash, ready to be processed by [styledown.build](#styledown-build). This mirrors the `styledown.read()` implementation in JavaScript.
|
133
|
+
|
134
|
+
### Styledown.build
|
135
|
+
|
136
|
+
> `Styledown.build(files, [options])`
|
137
|
+
|
138
|
+
Processes `files` (as returned by [styledown.read](#styledown-read) and returns data to be rendered. This mirrors the `styledown.build()` implementation in JavaScript.
|
139
|
+
|
140
|
+
### Styledown.render
|
141
|
+
|
142
|
+
> `Styledown.render(data, [options])`
|
143
|
+
|
144
|
+
Processes `data` (as returned by [styledown.build](#styledown-build) and returns output files. This mirrors the `styledown.render()` implementation in JavaScript.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Styledown
|
2
|
+
# Functional API for Styledown that interfaces via ExecJS. This is the
|
3
|
+
# low-level API that the OOP API uses.
|
4
|
+
module ClassMethods
|
5
|
+
def context
|
6
|
+
@context ||= begin
|
7
|
+
require 'execjs'
|
8
|
+
ExecJS.compile(Styledown::Source::SOURCE)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def build(source, options = {})
|
13
|
+
context.call('Styledown.build', source, options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def render(data, options = {})
|
17
|
+
context.call('Styledown.render', data, options)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Reimplementation of Styledown.read(). Reads files and returns their
|
21
|
+
# contents into a Hash.
|
22
|
+
def read(paths, options = {})
|
23
|
+
FileReader.read(paths, options)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Styledown
|
2
|
+
module FileReader
|
3
|
+
SEARCH_GLOB = '{styledown.json,**/*.md,templates/**/*.{html,js,css}}'
|
4
|
+
|
5
|
+
def self.read(paths, options = {})
|
6
|
+
glob(paths).inject({}) do |result, (file, short_file)|
|
7
|
+
result[short_file] = { 'contents' => File.read(file) }
|
8
|
+
result
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.mtime(paths)
|
13
|
+
glob(paths).inject(0) do |mtime, (file, _)|
|
14
|
+
new_mtime = File.mtime(file).to_i
|
15
|
+
new_mtime > mtime ? new_mtime : mtime
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns a list of files in a `path`. Each item is a tuple of `[full_path,
|
20
|
+
# short_path]`.
|
21
|
+
#
|
22
|
+
# glob('/path/to/foo')
|
23
|
+
# => [
|
24
|
+
# [ '/path/to/foo/bar.txt', 'bar.txt' ],
|
25
|
+
# [ '/path/to/foo/baz.txt', 'baz.txt' ]
|
26
|
+
# ]
|
27
|
+
#
|
28
|
+
def self.glob(paths)
|
29
|
+
[*paths].inject([]) do |result, path|
|
30
|
+
abspath = File.absolute_path(path)
|
31
|
+
glob = File.join(abspath, SEARCH_GLOB)
|
32
|
+
|
33
|
+
result + Dir[glob].map do |file|
|
34
|
+
short_file = file[(abspath.length + File::SEPARATOR.length)..-1]
|
35
|
+
.gsub(/#{File::SEPARATOR}/, '/')
|
36
|
+
|
37
|
+
[file, short_file]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/styledown.rb
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'styledown/class_methods'
|
2
|
+
require 'styledown/source'
|
3
|
+
require 'styledown/file_reader'
|
4
|
+
|
5
|
+
class Styledown
|
6
|
+
extend Styledown::ClassMethods
|
7
|
+
|
8
|
+
# You can change these and they will be honored on next #render
|
9
|
+
attr_reader :paths
|
10
|
+
attr_reader :options
|
11
|
+
|
12
|
+
# Pipeline artifacts
|
13
|
+
attr_reader :mtime # Last modified time
|
14
|
+
attr_reader :input # Output of Styledown.read
|
15
|
+
attr_reader :raw_data # Output of Styledown.build
|
16
|
+
attr_reader :data # Output of apply_data_filters
|
17
|
+
attr_reader :output # Output of Styledown.render (final output)
|
18
|
+
|
19
|
+
# Returns a styleguide context.
|
20
|
+
def initialize(paths = nil, options = {})
|
21
|
+
@paths = paths
|
22
|
+
@options = options
|
23
|
+
|
24
|
+
@data_filters = []
|
25
|
+
end
|
26
|
+
|
27
|
+
def paths=(paths)
|
28
|
+
invalidate
|
29
|
+
@paths = paths
|
30
|
+
end
|
31
|
+
|
32
|
+
def options=(options)
|
33
|
+
invalidate
|
34
|
+
@options = options
|
35
|
+
end
|
36
|
+
|
37
|
+
# Reads files, processes them, and updates the `#output`.
|
38
|
+
def render
|
39
|
+
invalidate_if_updated
|
40
|
+
fast_render
|
41
|
+
end
|
42
|
+
|
43
|
+
# Renders without invalidation.
|
44
|
+
def fast_render
|
45
|
+
@input ||= Styledown.read(@paths, @options)
|
46
|
+
@raw_data ||= Styledown.build(@input, @options)
|
47
|
+
@data ||= apply_data_filters(@raw_data)
|
48
|
+
@output ||= Styledown.render(@data, @options)
|
49
|
+
self
|
50
|
+
end
|
51
|
+
|
52
|
+
# Like `#render`, but always re-runs.
|
53
|
+
# Also aliased as `#reload`.
|
54
|
+
def render!
|
55
|
+
invalidate
|
56
|
+
render
|
57
|
+
end
|
58
|
+
|
59
|
+
# Busts the cache
|
60
|
+
def invalidate
|
61
|
+
@mtime = nil
|
62
|
+
@input = nil
|
63
|
+
@raw_data = nil
|
64
|
+
invalidate_data
|
65
|
+
end
|
66
|
+
|
67
|
+
# Busts the cache, partially
|
68
|
+
def invalidate_data
|
69
|
+
@data = nil
|
70
|
+
@output = nil
|
71
|
+
end
|
72
|
+
|
73
|
+
def valid?
|
74
|
+
!!@output
|
75
|
+
end
|
76
|
+
|
77
|
+
def add_data_filter(&blk)
|
78
|
+
invalidate_data
|
79
|
+
@data_filters << blk
|
80
|
+
end
|
81
|
+
|
82
|
+
# Adds a function that will transform files on `#render`.
|
83
|
+
# The given block should return `[filename, file]`.
|
84
|
+
def add_file_filter(&blk)
|
85
|
+
add_data_filter do |data|
|
86
|
+
files = data['files'].map do |filename, file|
|
87
|
+
blk.(filename, file) # => [filename, file]
|
88
|
+
end
|
89
|
+
data['files'] = Hash[files]
|
90
|
+
data
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# Adds a function that will transform sections on `#render`.
|
95
|
+
def add_section_filter(&blk)
|
96
|
+
add_file_filter do |filename, file|
|
97
|
+
file['sections'].map! do |section|
|
98
|
+
blk.(section, filename, file)
|
99
|
+
end if file['sections']
|
100
|
+
[filename, file]
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# Adds a function that will transform section parts on `#render`.
|
105
|
+
def add_part_filter(&blk)
|
106
|
+
add_section_filter do |section, filename, file|
|
107
|
+
section['parts'].map! do |part|
|
108
|
+
res = blk.(part, section, filename, file)
|
109
|
+
res
|
110
|
+
end if section['parts']
|
111
|
+
section
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Adds a function that will transform section part figures on `#render`.
|
116
|
+
def add_figure_filter(lang, &blk)
|
117
|
+
add_part_filter do |part, section, filename, file|
|
118
|
+
if part['isExample'] && [*lang].map(&:to_s).include?(part['language'])
|
119
|
+
new_lang, new_content = blk.(part['content'])
|
120
|
+
part['content'] = new_content
|
121
|
+
part['language'] = new_lang
|
122
|
+
part
|
123
|
+
else
|
124
|
+
part
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
private
|
130
|
+
|
131
|
+
# Checks if it's been update since last call of `#if_updated`.
|
132
|
+
def invalidate_if_updated
|
133
|
+
mtime = Styledown::FileReader.mtime(@paths)
|
134
|
+
if mtime != @mtime
|
135
|
+
invalidate
|
136
|
+
@mtime = mtime
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
# Applies data filters defined by `add_*_filter` functions.
|
141
|
+
def apply_data_filters(data)
|
142
|
+
@data_filters.reduce(data) do |data_, filter|
|
143
|
+
filter.(data_)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
data/lib/styledown2.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'styledown'
|
data/styledown2.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require File.expand_path('../lib/styledown/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |spec|
|
5
|
+
spec.name = 'styledown2'
|
6
|
+
spec.version = Styledown::VERSION
|
7
|
+
spec.authors = ['Rico Sta. Cruz']
|
8
|
+
spec.email = ['rstacruz@users.noreply.github.com']
|
9
|
+
|
10
|
+
spec.summary = 'Write maintainable CSS styleguides using Markdown'
|
11
|
+
spec.description = 'Styledown lets you write maintainable CSS styleguides using Markdown.'
|
12
|
+
spec.homepage = 'https://github.com/styledown/styledown2'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
16
|
+
|
17
|
+
spec.bindir = 'exe'
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_dependency 'styledown2-source', "= #{Styledown::VERSION}"
|
22
|
+
spec.add_dependency 'execjs', '< 3.0.0'
|
23
|
+
spec.add_development_dependency 'rake'
|
24
|
+
spec.add_development_dependency 'minitest'
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: styledown2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0.pre5
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Rico Sta. Cruz
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: styledown2-source
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.0.pre5
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.0.pre5
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: execjs
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "<"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Styledown lets you write maintainable CSS styleguides using Markdown.
|
70
|
+
email:
|
71
|
+
- rstacruz@users.noreply.github.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- Gemfile
|
78
|
+
- README.md
|
79
|
+
- Rakefile
|
80
|
+
- docs/api.md
|
81
|
+
- lib/styledown.rb
|
82
|
+
- lib/styledown/class_methods.rb
|
83
|
+
- lib/styledown/file_reader.rb
|
84
|
+
- lib/styledown/version.rb
|
85
|
+
- lib/styledown2.rb
|
86
|
+
- styledown2.gemspec
|
87
|
+
homepage: https://github.com/styledown/styledown2
|
88
|
+
licenses:
|
89
|
+
- MIT
|
90
|
+
metadata: {}
|
91
|
+
post_install_message:
|
92
|
+
rdoc_options: []
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 1.3.1
|
105
|
+
requirements: []
|
106
|
+
rubyforge_project:
|
107
|
+
rubygems_version: 2.5.1
|
108
|
+
signing_key:
|
109
|
+
specification_version: 4
|
110
|
+
summary: Write maintainable CSS styleguides using Markdown
|
111
|
+
test_files: []
|