usmu 0.1.0

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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.cane +4 -0
  3. data/.gitignore +17 -0
  4. data/.rspec +5 -0
  5. data/.travis.yml +34 -0
  6. data/.yardopts +1 -0
  7. data/Gemfile +4 -0
  8. data/Gemfile-jruby +4 -0
  9. data/LICENSE.md +22 -0
  10. data/README.md +50 -0
  11. data/Rakefile +61 -0
  12. data/bin/usmu +10 -0
  13. data/cucumber.yml +2 -0
  14. data/lib/usmu.rb +12 -0
  15. data/lib/usmu/configuration.rb +83 -0
  16. data/lib/usmu/layout.rb +166 -0
  17. data/lib/usmu/page.rb +19 -0
  18. data/lib/usmu/site_generator.rb +82 -0
  19. data/lib/usmu/static_file.rb +39 -0
  20. data/lib/usmu/ui.rb +7 -0
  21. data/lib/usmu/ui/console.rb +26 -0
  22. data/lib/usmu/version.rb +5 -0
  23. data/test/expected-site/default.html +3 -0
  24. data/test/expected-site/embedded.html +15 -0
  25. data/test/expected-site/index.html +14 -0
  26. data/test/expected-site/robots.txt +1 -0
  27. data/test/features/generator.feature +10 -0
  28. data/test/features/step_definitions/step_general.rb +18 -0
  29. data/test/site/content/default.md +3 -0
  30. data/test/site/content/embedded.md +1 -0
  31. data/test/site/content/embedded.meta.yml +2 -0
  32. data/test/site/content/index.md +3 -0
  33. data/test/site/content/index.meta.yml +3 -0
  34. data/test/site/content/robots.txt +1 -0
  35. data/test/site/layouts/embedded.meta.yml +2 -0
  36. data/test/site/layouts/embedded.slim +2 -0
  37. data/test/site/layouts/html.meta.yml +2 -0
  38. data/test/site/layouts/html.slim +8 -0
  39. data/test/site/usmu.yml +15 -0
  40. data/test/spec/configuration_spec.rb +51 -0
  41. data/test/spec/layout_spec.rb +27 -0
  42. data/test/spec/page_spec.rb +15 -0
  43. data/test/spec/site_generator_spec.rb +32 -0
  44. data/test/spec/spec_helper.rb +85 -0
  45. data/test/spec/static_file_spec.rb +20 -0
  46. data/test/spec/support/shared_layout.rb +111 -0
  47. data/usmu-jruby.gemspec +34 -0
  48. data/usmu.gemspec +35 -0
  49. metadata +291 -0
@@ -0,0 +1,85 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
+ # file to always be loaded, without a need to explicitly require it in any files.
5
+ #
6
+ # Given that it is always loaded, you are encouraged to keep this file as
7
+ # light-weight as possible. Requiring heavyweight dependencies from this file
8
+ # will add to the boot time of your test suite on EVERY test run, even for an
9
+ # individual file that may not need all of that loaded. Instead, consider making
10
+ # a separate helper file that requires the additional dependencies and performs
11
+ # the additional setup, and require it from the spec files that actually need it.
12
+ #
13
+ # The `.rspec` file also contains a few flags that are not defaults but that
14
+ # users commonly want.
15
+ #
16
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
+ RSpec.configure do |config|
18
+ # rspec-expectations config goes here. You can use an alternate
19
+ # assertion/expectation library such as wrong or the stdlib/minitest
20
+ # assertions if you prefer.
21
+ config.expect_with :rspec do |expectations|
22
+ # This option will default to `true` in RSpec 4. It makes the `description`
23
+ # and `failure_message` of custom matchers include text for helper methods
24
+ # defined using `chain`, e.g.:
25
+ # be_bigger_than(2).and_smaller_than(4).description
26
+ # # => "be bigger than 2 and smaller than 4"
27
+ # ...rather than:
28
+ # # => "be bigger than 2"
29
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
30
+ end
31
+
32
+ # rspec-mocks config goes here. You can use an alternate test double
33
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
34
+ config.mock_with :rspec do |mocks|
35
+ # Prevents you from mocking or stubbing a method that does not exist on
36
+ # a real object. This is generally recommended, and will default to
37
+ # `true` in RSpec 4.
38
+ mocks.verify_partial_doubles = true
39
+ end
40
+
41
+ # These two settings work together to allow you to limit a spec run
42
+ # to individual examples or groups you care about by tagging them with
43
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
44
+ # get run.
45
+ config.filter_run :focus
46
+ config.run_all_when_everything_filtered = true
47
+
48
+ # Limits the available syntax to the non-monkey patched syntax that is recommended.
49
+ # For more details, see:
50
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
51
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
52
+ # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
53
+ config.disable_monkey_patching!
54
+
55
+ # This setting enables warnings. It's recommended, but in some cases may
56
+ # be too noisy due to issues in dependencies.
57
+ config.warnings = true
58
+
59
+ # Many RSpec users commonly either run the entire suite or an individual
60
+ # file, and it's useful to allow more verbose output when running an
61
+ # individual spec file.
62
+ if config.files_to_run.one?
63
+ # Use the documentation formatter for detailed output,
64
+ # unless a formatter has already been configured
65
+ # (e.g. via a command-line flag).
66
+ config.default_formatter = 'doc'
67
+ end
68
+
69
+ # Print the 10 slowest examples and example groups at the
70
+ # end of the spec run, to help surface which specs are running
71
+ # particularly slow.
72
+ config.profile_examples = 10
73
+
74
+ # Run specs in random order to surface order dependencies. If you find an
75
+ # order dependency and want to debug it, you can fix the order by providing
76
+ # the seed, which is printed after each run.
77
+ # --seed 1234
78
+ config.order = :random
79
+
80
+ # Seed global randomization in this process using the `--seed` CLI option.
81
+ # Setting this allows you to use `--seed` to deterministically reproduce
82
+ # test failures related to randomization by passing the same `--seed` value
83
+ # as the one that triggered the failure.
84
+ Kernel.srand config.seed
85
+ end
@@ -0,0 +1,20 @@
1
+ require 'rspec'
2
+ require 'support/shared_layout'
3
+ require 'usmu/static_file'
4
+
5
+ RSpec.describe Usmu::StaticFile do
6
+ it_behaves_like 'a renderable file'
7
+
8
+ let(:configuration) { Usmu::Configuration.from_file('test/site/usmu.yml') }
9
+
10
+ it 'uses the \'source\' folder' do
11
+ file = Usmu::StaticFile.new(configuration, 'robots.txt')
12
+ rendered = file.render
13
+ expect(rendered).to eq(File.read('test/expected-site/robots.txt'))
14
+ end
15
+
16
+ it 'has an output filename that matches input' do
17
+ file = Usmu::StaticFile.new(configuration, 'robots.txt')
18
+ expect(file.output_filename).to eq('robots.txt')
19
+ end
20
+ end
@@ -0,0 +1,111 @@
1
+
2
+ RSpec.shared_examples 'a renderable file' do
3
+ let(:empty_configuration) { Usmu::Configuration.from_hash({}) }
4
+
5
+ it 'and has a name' do
6
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', '', {})
7
+ expect(layout.respond_to? :name).to eq(true)
8
+ expect(layout.name).to eq('body.slim')
9
+ end
10
+
11
+ it 'and can be rendered' do
12
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', '', {})
13
+ expect(layout.respond_to? :render).to eq(true)
14
+ expect(layout.method(:render).arity).to eq(-1)
15
+ expect(layout.method(:render).parameters.length).to eq(1)
16
+ end
17
+ end
18
+
19
+ RSpec.shared_examples 'a layout' do
20
+ include_examples 'a renderable file'
21
+
22
+ let(:title_configuration) { Usmu::Configuration.from_hash({'default meta' => {'title' => 'title'}}) }
23
+ let(:meta_with_title) { {'title' => 'title'} }
24
+ let(:content) { "title \#{title}\nbody\n #container\n | \#{{content}}" }
25
+
26
+ it 'and has a type' do
27
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, meta_with_title)
28
+ expect(layout.respond_to? :type).to eq(true)
29
+ expect(layout.type).to eq('slim')
30
+ end
31
+
32
+ it 'and it renders a template' do
33
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, {})
34
+ expect(layout.render({'title' => 'title', 'content' => 'test'})).to eq(<<-EOF)
35
+ <title>title</title><body><div id="container">test</div></body>
36
+ EOF
37
+ end
38
+ end
39
+
40
+ RSpec.shared_examples 'a layout with metadata' do
41
+ include_examples 'a layout'
42
+
43
+ it 'and has metadata' do
44
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, meta_with_title)
45
+ expect(layout.respond_to? :metadata).to eq(true)
46
+ expect(layout.metadata).to eq(meta_with_title)
47
+ end
48
+
49
+ it 'and respects default meta from configuration' do
50
+ layout = described_class.new(title_configuration, 'body.slim', 'slim', content, {})
51
+ expect(layout.render({'content' => 'test'})).to eq(<<-EOF)
52
+ <title>title</title><body><div id="container">test</div></body>
53
+ EOF
54
+ end
55
+
56
+ context 'and prioritises' do
57
+ it 'variables over metadata' do
58
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, meta_with_title)
59
+ expect(layout.render({'content' => 'test', 'title' => 'overridden title'})).to eq(<<-EOF)
60
+ <title>overridden title</title><body><div id="container">test</div></body>
61
+ EOF
62
+ end
63
+
64
+ it 'variables over default metadata' do
65
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, {})
66
+ expect(layout.render({'content' => 'test', 'title' => 'overridden title'})).to eq(<<-EOF)
67
+ <title>overridden title</title><body><div id="container">test</div></body>
68
+ EOF
69
+ end
70
+ end
71
+
72
+ it 'and it has a html output filename' do
73
+ layout = described_class.new(empty_configuration, 'index.md', 'md', content, {})
74
+ expect(layout.output_filename).to eq('index.html')
75
+ end
76
+ end
77
+
78
+ RSpec.shared_examples 'an embeddable layout' do
79
+ include_examples 'a layout with metadata'
80
+
81
+ let(:wrapper) { "html\n | \#{{content}}"}
82
+
83
+ it 'and respects parent templates' do
84
+ parent = described_class.new(empty_configuration, 'html.slim', 'slim', wrapper, {})
85
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, {'layout' => parent, 'title' => 'test title'})
86
+ expect(layout.render({'content' => 'test'})).to eq(<<-EOF)
87
+ <html><title>test title</title><body><div id="container">test</div></body>
88
+ </html>
89
+ EOF
90
+ end
91
+
92
+ context 'and prioritises' do
93
+ it 'metadata over parent metadata' do
94
+ parent = described_class.new(empty_configuration, 'html.slim', 'slim', wrapper, {'title' => 'title'})
95
+ layout = described_class.new(empty_configuration, 'body.slim', 'slim', content, {'layout' => parent, 'title' => 'overridden title'})
96
+ expect(layout.render({'content' => 'test'})).to eq(<<-EOF)
97
+ <html><title>overridden title</title><body><div id="container">test</div></body>
98
+ </html>
99
+ EOF
100
+ end
101
+
102
+ it 'parent metadata over default metadata' do
103
+ parent = described_class.new(title_configuration, 'html.slim', 'slim', wrapper, {'title' => 'overridden title'})
104
+ layout = described_class.new(title_configuration, 'body.slim', 'slim', content, {'layout' => parent})
105
+ expect(layout.render({'content' => 'test'})).to eq(<<-EOF)
106
+ <html><title>overridden title</title><body><div id="container">test</div></body>
107
+ </html>
108
+ EOF
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'usmu/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'usmu'
8
+ spec.version = Usmu::VERSION
9
+ spec.authors = ['Matthew Scharley']
10
+ spec.email = ['matt.scharley@gmail.com']
11
+ spec.summary = %q{A static site generator with a web-based frontend for editing.}
12
+ spec.homepage = 'https://github.com/usmu/usmu'
13
+ spec.license = 'MIT'
14
+ spec.platform = 'java'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'slim', '~> 2.1'
22
+ spec.add_dependency 'tilt', '~> 2.0'
23
+ spec.add_dependency 'kramdown', '~> 1.5'
24
+ spec.add_dependency 'deep_merge', '~> 1.0'
25
+ spec.add_dependency 'trollop', '~> 2.0'
26
+ spec.add_dependency 'highline', '~> 1.6'
27
+
28
+ spec.add_development_dependency 'bundler', '~> 1.6'
29
+ spec.add_development_dependency 'rake', '~> 10.0'
30
+ spec.add_development_dependency 'rspec', '~> 3.1'
31
+ spec.add_development_dependency 'cucumber', '~> 1.3'
32
+ spec.add_development_dependency 'yard', '~> 0.8'
33
+ spec.add_development_dependency 'cane', '~> 2.6'
34
+ end
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'usmu/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'usmu'
8
+ spec.version = Usmu::VERSION
9
+ spec.authors = ['Matthew Scharley']
10
+ spec.email = ['matt.scharley@gmail.com']
11
+ spec.summary = %q{A static site generator with a web-based frontend for editing.}
12
+ spec.homepage = 'https://github.com/usmu/usmu'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_dependency 'slim', '~> 2.1'
21
+ spec.add_dependency 'tilt', '~> 2.0'
22
+ # For now yard requires redcarpet < 3.2
23
+ # See: https://github.com/lsegal/yard/issues/812
24
+ spec.add_dependency 'redcarpet', '~> 3.1', '< 3.2'
25
+ spec.add_dependency 'deep_merge', '~> 1.0'
26
+ spec.add_dependency 'trollop', '~> 2.0'
27
+ spec.add_dependency 'highline', '~> 1.6'
28
+
29
+ spec.add_development_dependency 'bundler', '~> 1.6'
30
+ spec.add_development_dependency 'rake', '~> 10.0'
31
+ spec.add_development_dependency 'rspec', '~> 3.1'
32
+ spec.add_development_dependency 'cucumber', '~> 1.3'
33
+ spec.add_development_dependency 'yard', '~> 0.8'
34
+ spec.add_development_dependency 'cane', '~> 2.6'
35
+ end
metadata ADDED
@@ -0,0 +1,291 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: usmu
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Matthew Scharley
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: slim
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: tilt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: redcarpet
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '3.2'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.1'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.2'
61
+ - !ruby/object:Gem::Dependency
62
+ name: deep_merge
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: trollop
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: highline
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.6'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.6'
103
+ - !ruby/object:Gem::Dependency
104
+ name: bundler
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.6'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.6'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '10.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '10.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rspec
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.1'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.1'
145
+ - !ruby/object:Gem::Dependency
146
+ name: cucumber
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '1.3'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '1.3'
159
+ - !ruby/object:Gem::Dependency
160
+ name: yard
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '0.8'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0.8'
173
+ - !ruby/object:Gem::Dependency
174
+ name: cane
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '2.6'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '2.6'
187
+ description:
188
+ email:
189
+ - matt.scharley@gmail.com
190
+ executables:
191
+ - usmu
192
+ extensions: []
193
+ extra_rdoc_files: []
194
+ files:
195
+ - ".cane"
196
+ - ".gitignore"
197
+ - ".rspec"
198
+ - ".travis.yml"
199
+ - ".yardopts"
200
+ - Gemfile
201
+ - Gemfile-jruby
202
+ - LICENSE.md
203
+ - README.md
204
+ - Rakefile
205
+ - bin/usmu
206
+ - cucumber.yml
207
+ - lib/usmu.rb
208
+ - lib/usmu/configuration.rb
209
+ - lib/usmu/layout.rb
210
+ - lib/usmu/page.rb
211
+ - lib/usmu/site_generator.rb
212
+ - lib/usmu/static_file.rb
213
+ - lib/usmu/ui.rb
214
+ - lib/usmu/ui/console.rb
215
+ - lib/usmu/version.rb
216
+ - test/expected-site/default.html
217
+ - test/expected-site/embedded.html
218
+ - test/expected-site/index.html
219
+ - test/expected-site/robots.txt
220
+ - test/features/generator.feature
221
+ - test/features/step_definitions/step_general.rb
222
+ - test/site/content/default.md
223
+ - test/site/content/embedded.md
224
+ - test/site/content/embedded.meta.yml
225
+ - test/site/content/index.md
226
+ - test/site/content/index.meta.yml
227
+ - test/site/content/robots.txt
228
+ - test/site/layouts/embedded.meta.yml
229
+ - test/site/layouts/embedded.slim
230
+ - test/site/layouts/html.meta.yml
231
+ - test/site/layouts/html.slim
232
+ - test/site/usmu.yml
233
+ - test/spec/configuration_spec.rb
234
+ - test/spec/layout_spec.rb
235
+ - test/spec/page_spec.rb
236
+ - test/spec/site_generator_spec.rb
237
+ - test/spec/spec_helper.rb
238
+ - test/spec/static_file_spec.rb
239
+ - test/spec/support/shared_layout.rb
240
+ - usmu-jruby.gemspec
241
+ - usmu.gemspec
242
+ homepage: https://github.com/usmu/usmu
243
+ licenses:
244
+ - MIT
245
+ metadata: {}
246
+ post_install_message:
247
+ rdoc_options: []
248
+ require_paths:
249
+ - lib
250
+ required_ruby_version: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ required_rubygems_version: !ruby/object:Gem::Requirement
256
+ requirements:
257
+ - - ">="
258
+ - !ruby/object:Gem::Version
259
+ version: '0'
260
+ requirements: []
261
+ rubyforge_project:
262
+ rubygems_version: 2.4.2
263
+ signing_key:
264
+ specification_version: 4
265
+ summary: A static site generator with a web-based frontend for editing.
266
+ test_files:
267
+ - test/expected-site/default.html
268
+ - test/expected-site/embedded.html
269
+ - test/expected-site/index.html
270
+ - test/expected-site/robots.txt
271
+ - test/features/generator.feature
272
+ - test/features/step_definitions/step_general.rb
273
+ - test/site/content/default.md
274
+ - test/site/content/embedded.md
275
+ - test/site/content/embedded.meta.yml
276
+ - test/site/content/index.md
277
+ - test/site/content/index.meta.yml
278
+ - test/site/content/robots.txt
279
+ - test/site/layouts/embedded.meta.yml
280
+ - test/site/layouts/embedded.slim
281
+ - test/site/layouts/html.meta.yml
282
+ - test/site/layouts/html.slim
283
+ - test/site/usmu.yml
284
+ - test/spec/configuration_spec.rb
285
+ - test/spec/layout_spec.rb
286
+ - test/spec/page_spec.rb
287
+ - test/spec/site_generator_spec.rb
288
+ - test/spec/spec_helper.rb
289
+ - test/spec/static_file_spec.rb
290
+ - test/spec/support/shared_layout.rb
291
+ has_rdoc: