nesta 0.12.0 → 0.14.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.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +21 -0
- data/.gitignore +1 -0
- data/.gitmodules +0 -6
- data/CHANGES +99 -0
- data/Gemfile.lock +43 -39
- data/LICENSE +1 -1
- data/README.md +9 -14
- data/RELEASING.md +9 -7
- data/Rakefile +2 -2
- data/bin/nesta +5 -2
- data/config/deploy.rb.sample +1 -1
- data/lib/nesta/app.rb +1 -2
- data/lib/nesta/commands/build.rb +38 -0
- data/lib/nesta/commands/demo/content.rb +8 -10
- data/lib/nesta/commands/edit.rb +2 -6
- data/lib/nesta/commands/new.rb +11 -12
- data/lib/nesta/commands/plugin/create.rb +7 -9
- data/lib/nesta/commands/template.rb +20 -0
- data/lib/nesta/commands/theme/create.rb +8 -8
- data/lib/nesta/commands/theme/enable.rb +3 -5
- data/lib/nesta/commands/theme/install.rb +6 -10
- data/lib/nesta/commands.rb +9 -0
- data/lib/nesta/config.rb +49 -75
- data/lib/nesta/config_file.rb +29 -0
- data/lib/nesta/helpers.rb +0 -5
- data/lib/nesta/models.rb +33 -34
- data/lib/nesta/navigation.rb +0 -5
- data/lib/nesta/overrides.rb +32 -43
- data/lib/nesta/plugin.rb +0 -16
- data/lib/nesta/static/assets.rb +50 -0
- data/lib/nesta/static/html_file.rb +26 -0
- data/lib/nesta/static/site.rb +104 -0
- data/lib/nesta/system_command.rb +15 -0
- data/lib/nesta/version.rb +1 -1
- data/lib/nesta.rb +7 -4
- data/nesta.gemspec +5 -5
- data/templates/config/config.yml +28 -2
- data/templates/themes/README.md +1 -1
- data/templates/themes/views/master.sass +1 -1
- data/test/integration/atom_feed_test.rb +1 -1
- data/test/integration/commands/build_test.rb +53 -0
- data/test/integration/commands/demo/content_test.rb +8 -6
- data/test/integration/commands/edit_test.rb +4 -4
- data/test/integration/commands/new_test.rb +22 -51
- data/test/integration/commands/plugin/create_test.rb +7 -4
- data/test/integration/commands/theme/create_test.rb +8 -2
- data/test/integration/commands/theme/enable_test.rb +7 -1
- data/test/integration/commands/theme/install_test.rb +13 -9
- data/test/integration/overrides_test.rb +1 -1
- data/test/integration/sitemap_test.rb +1 -1
- data/test/support/temporary_files.rb +1 -1
- data/test/support/test_configuration.rb +2 -4
- data/test/unit/config_test.rb +25 -94
- data/test/unit/static/assets_test.rb +56 -0
- data/test/unit/static/html_file_test.rb +41 -0
- data/test/unit/static/site_test.rb +104 -0
- data/test/unit/system_command_test.rb +20 -0
- data/views/atom.haml +2 -2
- data/views/comments.haml +2 -2
- data/views/footer.haml +1 -1
- data/views/header.haml +2 -3
- data/views/layout.haml +2 -2
- data/views/master.sass +1 -1
- data/views/mixins.sass +2 -2
- data/views/normalize.scss +0 -1
- data/views/sitemap.haml +1 -1
- metadata +44 -31
- data/.hound.yml +0 -2
- data/.rspec +0 -1
- data/.travis.yml +0 -11
- data/lib/nesta/commands/command.rb +0 -57
- data/test/support/silence_commands_during_tests.rb +0 -5
- data/test/unit/commands_test.rb +0 -23
data/test/unit/config_test.rb
CHANGED
@@ -3,11 +3,17 @@ require 'test_helper'
|
|
3
3
|
describe Nesta::Config do
|
4
4
|
include TestConfiguration
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
it 'cannot be instantiated directly' do
|
7
|
+
assert_raises(NoMethodError) { Nesta::Config.new }
|
8
8
|
end
|
9
9
|
|
10
|
-
it '
|
10
|
+
it 'exposes settings at the class level' do
|
11
|
+
Nesta::Config::SETTINGS.each do |setting|
|
12
|
+
assert Nesta::Config.respond_to?(setting), "should respond to '#{setting}'"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'defines default value for "Read more"' do
|
11
17
|
assert_equal 'Continue reading', Nesta::Config.read_more
|
12
18
|
end
|
13
19
|
|
@@ -15,100 +21,34 @@ describe Nesta::Config do
|
|
15
21
|
assert_nil Nesta::Config.author
|
16
22
|
end
|
17
23
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'falls back to config.yml' do
|
25
|
-
stub_config('subtitle' => 'Subtitle in YAML file') do
|
26
|
-
assert_equal 'Subtitle in YAML file', Nesta::Config.subtitle
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'overrides config.yml' do
|
31
|
-
stub_config('title' => 'Title in YAML file') do
|
32
|
-
assert_equal @title, Nesta::Config.title
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'knows how to cope with boolean values' do
|
37
|
-
Nesta::Config.settings << 'a_boolean'
|
38
|
-
begin
|
39
|
-
ENV['NESTA_A_BOOLEAN'] = 'true'
|
40
|
-
assert_equal true, Nesta::Config.a_boolean, 'should be true'
|
41
|
-
ENV['NESTA_A_BOOLEAN'] = 'false'
|
42
|
-
assert_equal false, Nesta::Config.a_boolean, 'should be false'
|
43
|
-
ensure
|
44
|
-
Nesta::Config.settings.pop
|
45
|
-
ENV.delete('NESTA_A_BOOLEAN')
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'should return configured value for "Read more"' do
|
50
|
-
ENV['NESTA_READ_MORE'] = 'Read on'
|
51
|
-
begin
|
52
|
-
assert_equal 'Read on', Nesta::Config.read_more
|
53
|
-
ensure
|
54
|
-
ENV.delete('NESTA_READ_MORE')
|
55
|
-
end
|
24
|
+
it 'reads configuration from YAML' do
|
25
|
+
title = 'Site Title'
|
26
|
+
stub_config('subtitle' => title) do
|
27
|
+
assert_equal title, Nesta::Config.subtitle
|
56
28
|
end
|
29
|
+
end
|
57
30
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
ENV['NESTA_AUTHOR__URI'] = uri
|
31
|
+
it 'sets author hash from YAML' do
|
32
|
+
name = 'Name from YAML'
|
33
|
+
uri = 'URI from YAML'
|
34
|
+
stub_config('author' => { 'name' => name, 'uri' => uri }) do
|
63
35
|
assert_equal name, Nesta::Config.author['name']
|
64
36
|
assert_equal uri, Nesta::Config.author['uri']
|
65
37
|
assert Nesta::Config.author['email'].nil?, 'should be nil'
|
66
38
|
end
|
67
39
|
end
|
68
40
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
assert_equal @title, Nesta::Config.subtitle
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'sets author hash from YAML' do
|
81
|
-
name = 'Name from YAML'
|
82
|
-
uri = 'URI from YAML'
|
83
|
-
stub_config('author' => { 'name' => name, 'uri' => uri }) do
|
84
|
-
assert_equal name, Nesta::Config.author['name']
|
85
|
-
assert_equal uri, Nesta::Config.author['uri']
|
86
|
-
assert Nesta::Config.author['email'].nil?, 'should be nil'
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'overrides top level settings with environment specific settings' do
|
91
|
-
config = {
|
92
|
-
'content' => 'general/path',
|
93
|
-
'test' => { 'content' => 'rack_env_specific/path' }
|
94
|
-
}
|
95
|
-
stub_config(config) do
|
96
|
-
assert_equal 'rack_env_specific/path', Nesta::Config.content
|
97
|
-
end
|
41
|
+
it 'overrides top level settings with environment specific settings' do
|
42
|
+
config = {
|
43
|
+
'content' => 'general/path',
|
44
|
+
'test' => { 'content' => 'rack_env_specific/path' }
|
45
|
+
}
|
46
|
+
stub_config(config) do
|
47
|
+
assert_equal 'rack_env_specific/path', Nesta::Config.content
|
98
48
|
end
|
99
49
|
end
|
100
50
|
|
101
51
|
describe 'Nesta::Config.fetch' do
|
102
|
-
it 'retrieves settings from environment' do
|
103
|
-
ENV['NESTA_MY_SETTING'] = 'value in ENV'
|
104
|
-
begin
|
105
|
-
assert_equal 'value in ENV', Nesta::Config.fetch('my_setting')
|
106
|
-
assert_equal 'value in ENV', Nesta::Config.fetch(:my_setting)
|
107
|
-
ensure
|
108
|
-
ENV.delete('NESTA_MY_SETTING')
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
52
|
it 'retrieves settings from YAML' do
|
113
53
|
stub_config('my_setting' => 'value in YAML') do
|
114
54
|
assert_equal 'value in YAML', Nesta::Config.fetch('my_setting')
|
@@ -125,14 +65,5 @@ describe Nesta::Config do
|
|
125
65
|
it 'allows default values to be set' do
|
126
66
|
assert_equal 'default', Nesta::Config.fetch('no such setting', 'default')
|
127
67
|
end
|
128
|
-
|
129
|
-
it 'copes with non-truthy boolean values' do
|
130
|
-
ENV['NESTA_SETTING'] = 'false'
|
131
|
-
begin
|
132
|
-
assert_equal false, Nesta::Config.fetch('setting')
|
133
|
-
ensure
|
134
|
-
ENV.delete('NESTA_SETTING')
|
135
|
-
end
|
136
|
-
end
|
137
68
|
end
|
138
69
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative '../../../lib/nesta/static/assets'
|
4
|
+
|
5
|
+
describe 'Assets' do
|
6
|
+
include TestConfiguration
|
7
|
+
|
8
|
+
after do
|
9
|
+
remove_temp_directory
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'is happy if attachments directory not present' do
|
13
|
+
in_temporary_project do |project_root|
|
14
|
+
stub_config('content' => File.join(project_root, 'content')) do
|
15
|
+
Nesta::Static::Assets.new('dist').copy_attachments
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'copies attachments into build directory' do
|
21
|
+
build_dir = 'dist'
|
22
|
+
attachment = 'image.jpeg'
|
23
|
+
|
24
|
+
in_temporary_project do |project_root|
|
25
|
+
stub_config('content' => File.join(project_root, 'content')) do
|
26
|
+
FileUtils.mkdir_p(Nesta::Config.attachment_path)
|
27
|
+
open(File.join(Nesta::Config.attachment_path, attachment), 'w')
|
28
|
+
|
29
|
+
Nesta::Static::Assets.new(build_dir).copy_attachments
|
30
|
+
|
31
|
+
assert_exists_in_project File.join(build_dir, 'attachments', attachment)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'is happy if public directory not present' do
|
37
|
+
in_temporary_project do |project_root|
|
38
|
+
Nesta::Static::Assets.new('dist').copy_public_folder
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'copies contents of public directory into build directory' do
|
43
|
+
build_dir = 'dist'
|
44
|
+
asset_path = File.join('css', 'third-party.css')
|
45
|
+
|
46
|
+
in_temporary_project do |project_root|
|
47
|
+
public_path = File.join(project_root, 'public')
|
48
|
+
FileUtils.mkdir_p(File.dirname(File.join(public_path, asset_path)))
|
49
|
+
open(File.join(public_path, asset_path), 'w')
|
50
|
+
|
51
|
+
Nesta::Static::Assets.new(build_dir).copy_public_folder
|
52
|
+
|
53
|
+
assert_exists_in_project File.join(build_dir, asset_path)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative '../../../lib/nesta/static/html_file'
|
4
|
+
|
5
|
+
describe 'HtmlFile' do
|
6
|
+
include ModelFactory
|
7
|
+
include TestConfiguration
|
8
|
+
|
9
|
+
after do
|
10
|
+
remove_temp_directory
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'determines HTML filename from build dir and page filename' do
|
14
|
+
build_dir = "dist"
|
15
|
+
|
16
|
+
with_temp_content_directory do
|
17
|
+
page = create(:page)
|
18
|
+
|
19
|
+
html_file = Nesta::Static::HtmlFile.new(build_dir, page)
|
20
|
+
|
21
|
+
expected = File.join(build_dir, "page-1.html")
|
22
|
+
assert_equal expected, html_file.filename
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'creates index.html in directory if page shares path with directory' do
|
27
|
+
build_dir = "dist"
|
28
|
+
|
29
|
+
with_temp_content_directory do
|
30
|
+
page = create(:page)
|
31
|
+
ext = File.extname(page.filename)
|
32
|
+
directory_path = page.filename.sub(/#{ext}$/, '')
|
33
|
+
FileUtils.mkdir(directory_path)
|
34
|
+
|
35
|
+
html_file = Nesta::Static::HtmlFile.new(build_dir, page)
|
36
|
+
|
37
|
+
expected = File.join(build_dir, "page-1", "index.html")
|
38
|
+
assert_equal expected, html_file.filename
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative '../../../lib/nesta/static/site'
|
4
|
+
|
5
|
+
describe 'Site' do
|
6
|
+
include ModelFactory
|
7
|
+
include TestConfiguration
|
8
|
+
|
9
|
+
after do
|
10
|
+
remove_temp_directory
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'converts Markdown to HTML' do
|
14
|
+
build_dir = 'dist'
|
15
|
+
domain = 'localhost'
|
16
|
+
|
17
|
+
in_temporary_project do
|
18
|
+
with_temp_content_directory do
|
19
|
+
page = create(:page)
|
20
|
+
|
21
|
+
Nesta::Static::Site.new(build_dir, domain).render_pages
|
22
|
+
|
23
|
+
html_file = File.join(build_dir, page.abspath + '.html')
|
24
|
+
markup = open(html_file).read
|
25
|
+
|
26
|
+
assert markup.include?("<title>#{page.title}</title>")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'renders a 404 not found page' do
|
32
|
+
build_dir = 'dist'
|
33
|
+
domain = 'localhost'
|
34
|
+
|
35
|
+
in_temporary_project do
|
36
|
+
with_temp_content_directory do
|
37
|
+
Nesta::Static::Site.new(build_dir, domain).render_not_found
|
38
|
+
|
39
|
+
html_file = File.join(build_dir, '404.html')
|
40
|
+
markup = open(html_file).read
|
41
|
+
|
42
|
+
assert markup.include?("<h1>Page not found</h1>")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'renders Atom feed' do
|
48
|
+
build_dir = 'dist'
|
49
|
+
domain = 'mysite.com'
|
50
|
+
|
51
|
+
in_temporary_project do
|
52
|
+
with_temp_content_directory do
|
53
|
+
article = create(:article)
|
54
|
+
Nesta::Static::Site.new(build_dir, domain).render_atom_feed
|
55
|
+
|
56
|
+
xml_file = File.join(build_dir, 'articles.xml')
|
57
|
+
xml = open(xml_file).read
|
58
|
+
|
59
|
+
assert xml.include?("<link href='https://#{domain + article.abspath}'")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'includes domain name in sitemap' do
|
65
|
+
build_dir = 'dist'
|
66
|
+
domain = 'mysite.com'
|
67
|
+
|
68
|
+
in_temporary_project do
|
69
|
+
with_temp_content_directory do
|
70
|
+
page = create(:page)
|
71
|
+
Nesta::Static::Site.new(build_dir, domain).render_sitemap
|
72
|
+
|
73
|
+
xml_file = File.join(build_dir, 'sitemap.xml')
|
74
|
+
xml = open(xml_file).read
|
75
|
+
|
76
|
+
assert xml.include?(domain + page.abspath)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it "renders the user's list of templated assets" do
|
82
|
+
build_dir = 'dist'
|
83
|
+
css_path = '/css/styles.css'
|
84
|
+
build_config = {}
|
85
|
+
|
86
|
+
in_temporary_project do
|
87
|
+
stub_config('build' => { 'templated_assets' => [css_path] }) do
|
88
|
+
views = File.join(project_root, 'views')
|
89
|
+
FileUtils.mkdir_p(views)
|
90
|
+
open(File.join(views, 'styles.sass'), 'w') do |sass|
|
91
|
+
sass.write("p\n font-size: 1em\n")
|
92
|
+
end
|
93
|
+
|
94
|
+
site = Nesta::Static::Site.new(build_dir, 'mysite.com')
|
95
|
+
site.render_templated_assets
|
96
|
+
|
97
|
+
css_file = File.join(build_dir, css_path)
|
98
|
+
assert_exists_in_project(css_file)
|
99
|
+
|
100
|
+
assert_equal open(css_file).read, "p {\n font-size: 1em;\n}"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require_relative '../../lib/nesta/system_command'
|
3
|
+
|
4
|
+
describe 'Nesta::SystemCommand' do
|
5
|
+
describe '#run' do
|
6
|
+
it 'catches errors when running external processes' do
|
7
|
+
command = Nesta::SystemCommand.new
|
8
|
+
command.run('ls / >/dev/null')
|
9
|
+
begin
|
10
|
+
stderr, $stderr = $stderr, StringIO.new
|
11
|
+
assert_raises(SystemExit) do
|
12
|
+
command.run('ls no-such-file 2>/dev/null')
|
13
|
+
end
|
14
|
+
ensure
|
15
|
+
$stderr.close
|
16
|
+
$stderr = stderr
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/views/atom.haml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
!!! XML
|
2
|
-
%feed(xmlns='
|
2
|
+
%feed(xmlns='https://www.w3.org/2005/Atom')
|
3
3
|
%title(type='text')= @title
|
4
|
-
%generator(uri='
|
4
|
+
%generator(uri='https://nestacms.com') Nesta
|
5
5
|
%id= atom_id
|
6
6
|
%link(href="#{path_to('/articles.xml', :uri => true)}" rel='self')
|
7
7
|
%link(href="#{path_to('/', :uri => true)}" rel='alternate')
|
data/views/comments.haml
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
- if Sinatra::Application.environment == :development
|
4
4
|
:javascript
|
5
5
|
var disqus_developer = true;
|
6
|
-
%script{:type => 'text/javascript', :src => "
|
6
|
+
%script{:type => 'text/javascript', :src => "https://#{short_name}.disqus.com/embed.js", :async => true}
|
7
7
|
|
8
8
|
%noscript
|
9
|
-
%a(href="
|
9
|
+
%a(href="https://#{short_name}.disqus.com/embed.js?url=ref") View comments.
|
data/views/footer.haml
CHANGED
data/views/header.haml
CHANGED
data/views/layout.haml
CHANGED
@@ -8,13 +8,13 @@
|
|
8
8
|
- if @keywords
|
9
9
|
%meta(name="keywords" content=@keywords)
|
10
10
|
%title= @title
|
11
|
-
%link(href='
|
11
|
+
%link(href='//fonts.googleapis.com/css?family=Roboto+Slab:400,700' rel='stylesheet' type='text/css')
|
12
12
|
<!--[if ! lte IE 6]><!-->
|
13
13
|
%link(href="#{path_to('/css/master.css')}" media="screen" rel="stylesheet")
|
14
14
|
- local_stylesheet_link_tag('local')
|
15
15
|
<!--<![endif]-->
|
16
16
|
/[if lte IE 6]
|
17
|
-
%link(rel="stylesheet" href="
|
17
|
+
%link(rel="stylesheet" href="//universal-ie6-css.googlecode.com/files/ie6.1.1.css" media="screen, projection")
|
18
18
|
/[if lt IE 9]
|
19
19
|
%script(src="//html5shim.googlecode.com/svn/trunk/html5.js")
|
20
20
|
%script(src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.1.0/respond.min.js")
|
data/views/master.sass
CHANGED
data/views/mixins.sass
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Default ratios between font sizes; used to maintain the type hierarchy.
|
2
|
-
//
|
2
|
+
// https://www.markboulton.co.uk/journal/comments/five-simple-steps-to-better-typography-part-4
|
3
3
|
|
4
4
|
$size5: 2.18em
|
5
5
|
$size4: 1.64em
|
@@ -23,7 +23,7 @@ $nav-link-color: desaturate(lighten($link-color, 10%), 25%)
|
|
23
23
|
$meta-color: #87877D
|
24
24
|
|
25
25
|
@function empx($em, $base: 16px)
|
26
|
-
@return ($em / 1em) * $base
|
26
|
+
@return calc($em / 1em) * $base
|
27
27
|
|
28
28
|
// Layout settings
|
29
29
|
|
data/views/normalize.scss
CHANGED
data/views/sitemap.haml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nesta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Graham Ashton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.1'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '6.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '3.1'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '6.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: haml-contrib
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +50,28 @@ dependencies:
|
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '2
|
53
|
+
version: '2'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
58
|
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '2
|
60
|
+
version: '2'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
76
|
name: rdiscount
|
57
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,19 +101,19 @@ dependencies:
|
|
81
101
|
- !ruby/object:Gem::Version
|
82
102
|
version: '4.2'
|
83
103
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
104
|
+
name: sass-embedded
|
85
105
|
requirement: !ruby/object:Gem::Requirement
|
86
106
|
requirements:
|
87
|
-
- - "
|
107
|
+
- - "~>"
|
88
108
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
109
|
+
version: '1.58'
|
90
110
|
type: :runtime
|
91
111
|
prerelease: false
|
92
112
|
version_requirements: !ruby/object:Gem::Requirement
|
93
113
|
requirements:
|
94
|
-
- - "
|
114
|
+
- - "~>"
|
95
115
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
116
|
+
version: '1.58'
|
97
117
|
- !ruby/object:Gem::Dependency
|
98
118
|
name: sinatra
|
99
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,20 +212,6 @@ dependencies:
|
|
192
212
|
- - ">="
|
193
213
|
- !ruby/object:Gem::Version
|
194
214
|
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: rake
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
215
|
description: |
|
210
216
|
Nesta is a lightweight Content Management System, written in Ruby using
|
211
217
|
the Sinatra web framework. Nesta has the simplicity of a static site
|
@@ -225,11 +231,9 @@ executables:
|
|
225
231
|
extensions: []
|
226
232
|
extra_rdoc_files: []
|
227
233
|
files:
|
234
|
+
- ".github/workflows/tests.yml"
|
228
235
|
- ".gitignore"
|
229
236
|
- ".gitmodules"
|
230
|
-
- ".hound.yml"
|
231
|
-
- ".rspec"
|
232
|
-
- ".travis.yml"
|
233
237
|
- CHANGES
|
234
238
|
- Gemfile
|
235
239
|
- Gemfile.lock
|
@@ -244,18 +248,20 @@ files:
|
|
244
248
|
- lib/nesta.rb
|
245
249
|
- lib/nesta/app.rb
|
246
250
|
- lib/nesta/commands.rb
|
247
|
-
- lib/nesta/commands/
|
251
|
+
- lib/nesta/commands/build.rb
|
248
252
|
- lib/nesta/commands/demo.rb
|
249
253
|
- lib/nesta/commands/demo/content.rb
|
250
254
|
- lib/nesta/commands/edit.rb
|
251
255
|
- lib/nesta/commands/new.rb
|
252
256
|
- lib/nesta/commands/plugin.rb
|
253
257
|
- lib/nesta/commands/plugin/create.rb
|
258
|
+
- lib/nesta/commands/template.rb
|
254
259
|
- lib/nesta/commands/theme.rb
|
255
260
|
- lib/nesta/commands/theme/create.rb
|
256
261
|
- lib/nesta/commands/theme/enable.rb
|
257
262
|
- lib/nesta/commands/theme/install.rb
|
258
263
|
- lib/nesta/config.rb
|
264
|
+
- lib/nesta/config_file.rb
|
259
265
|
- lib/nesta/env.rb
|
260
266
|
- lib/nesta/helpers.rb
|
261
267
|
- lib/nesta/models.rb
|
@@ -263,6 +269,10 @@ files:
|
|
263
269
|
- lib/nesta/overrides.rb
|
264
270
|
- lib/nesta/path.rb
|
265
271
|
- lib/nesta/plugin.rb
|
272
|
+
- lib/nesta/static/assets.rb
|
273
|
+
- lib/nesta/static/html_file.rb
|
274
|
+
- lib/nesta/static/site.rb
|
275
|
+
- lib/nesta/system_command.rb
|
266
276
|
- lib/nesta/version.rb
|
267
277
|
- nesta.gemspec
|
268
278
|
- scripts/import-from-mephisto
|
@@ -292,6 +302,7 @@ files:
|
|
292
302
|
- test/fixtures/nesta-plugin-test/lib/nesta-plugin-test/version.rb
|
293
303
|
- test/fixtures/nesta-plugin-test/nesta-plugin-test.gemspec
|
294
304
|
- test/integration/atom_feed_test.rb
|
305
|
+
- test/integration/commands/build_test.rb
|
295
306
|
- test/integration/commands/demo/content_test.rb
|
296
307
|
- test/integration/commands/edit_test.rb
|
297
308
|
- test/integration/commands/new_test.rb
|
@@ -305,17 +316,19 @@ files:
|
|
305
316
|
- test/integration/sitemap_test.rb
|
306
317
|
- test/integration_test_helper.rb
|
307
318
|
- test/support/model_factory.rb
|
308
|
-
- test/support/silence_commands_during_tests.rb
|
309
319
|
- test/support/temporary_files.rb
|
310
320
|
- test/support/test_configuration.rb
|
311
321
|
- test/test_helper.rb
|
312
|
-
- test/unit/commands_test.rb
|
313
322
|
- test/unit/config_test.rb
|
314
323
|
- test/unit/file_model_test.rb
|
315
324
|
- test/unit/menu_test.rb
|
316
325
|
- test/unit/page_test.rb
|
317
326
|
- test/unit/path_test.rb
|
318
327
|
- test/unit/plugin_test.rb
|
328
|
+
- test/unit/static/assets_test.rb
|
329
|
+
- test/unit/static/html_file_test.rb
|
330
|
+
- test/unit/static/site_test.rb
|
331
|
+
- test/unit/system_command_test.rb
|
319
332
|
- views/analytics.haml
|
320
333
|
- views/atom.haml
|
321
334
|
- views/categories.haml
|
@@ -335,7 +348,7 @@ files:
|
|
335
348
|
- views/sidebar.haml
|
336
349
|
- views/sitemap.haml
|
337
350
|
- views/summaries.haml
|
338
|
-
homepage:
|
351
|
+
homepage: https://nestacms.com
|
339
352
|
licenses: []
|
340
353
|
metadata: {}
|
341
354
|
post_install_message:
|
@@ -353,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
353
366
|
- !ruby/object:Gem::Version
|
354
367
|
version: '0'
|
355
368
|
requirements: []
|
356
|
-
rubygems_version: 3.
|
369
|
+
rubygems_version: 3.4.6
|
357
370
|
signing_key:
|
358
371
|
specification_version: 4
|
359
372
|
summary: Ruby CMS, written in Sinatra
|
data/.hound.yml
DELETED