nesta 0.13.0 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +1 -1
- data/.gitignore +1 -0
- data/{CHANGES → CHANGELOG.md} +117 -21
- data/Gemfile.lock +28 -26
- data/LICENSE +1 -1
- data/README.md +45 -31
- data/RELEASING.md +1 -1
- data/bin/nesta +4 -1
- data/lib/nesta/app.rb +1 -2
- data/lib/nesta/commands/build.rb +38 -0
- data/lib/nesta/commands/new.rb +2 -1
- data/lib/nesta/commands.rb +1 -0
- data/lib/nesta/config.rb +49 -75
- data/lib/nesta/config_file.rb +5 -1
- data/lib/nesta/helpers.rb +0 -5
- data/lib/nesta/models/file_model.rb +191 -0
- data/lib/nesta/models/menu.rb +67 -0
- data/lib/nesta/models/page.rb +167 -0
- data/lib/nesta/models.rb +3 -422
- 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/version.rb +1 -1
- data/lib/nesta.rb +1 -3
- 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/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/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 +42 -31
- /data/test/unit/{file_model_test.rb → models/file_model_test.rb} +0 -0
- /data/test/unit/{menu_test.rb → models/menu_test.rb} +0 -0
- /data/test/unit/{page_test.rb → models/page_test.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7080f8e4c8c7b993aaaf2f1f2ea59edbefd0b49ef73218a8f20d6877880b18c2
|
4
|
+
data.tar.gz: 806b5caf9fbfc69221087bd98254e282ddb5ba0e4288ee835d3af22fc879ab9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17a405a098acca204751044cff182ee6484c93c373b7266a2c194345736438b71366b05cd04ea8d64e7949c9ab071e01cde387a1c68d1190a2087d211fa45060
|
7
|
+
data.tar.gz: 8d37d4b2b1fb4df23d57403da16c865db06a4a899a942a594cfac47212f998c52ef330ae9091149e1858c06f390f2ed9e4ef94621b115c52f04ed821d0cc9b7d
|
data/.github/workflows/tests.yml
CHANGED
data/.gitignore
CHANGED
data/{CHANGES → CHANGELOG.md}
RENAMED
@@ -1,4 +1,99 @@
|
|
1
|
-
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.15.0 (11 July 2023)
|
4
|
+
|
5
|
+
* Upgrade to Sinatra 3. (Graham Ashton)
|
6
|
+
|
7
|
+
* The `models.rb` file has been long and unnecessarily hard to navigate
|
8
|
+
for too long. It has been split up into multiple files, one for each
|
9
|
+
class. (Graham Ashton, suggested by Lilith River)
|
10
|
+
|
11
|
+
* Remove support for the BlueCloth markdown library. Nesta uses Tilt
|
12
|
+
for rendering Markdown, and BlueCloth support has been removed in
|
13
|
+
Tilt 2.2.0. See rtomayko/tilt#382 for details.
|
14
|
+
|
15
|
+
If your site uses BlueCloth, remove your call to `Tilt.prefer`,
|
16
|
+
and Nesta will use its default Markdown processor. See Nesta's docs
|
17
|
+
on [configuring the Markdown processor] for more details.
|
18
|
+
|
19
|
+
[configuring the Markdown processor]: https://nestacms.com/docs/creating-content/changing-the-markdown-processor
|
20
|
+
|
21
|
+
(Graham Ashton)
|
22
|
+
|
23
|
+
## 0.14.0 (23 March 2023)
|
24
|
+
|
25
|
+
* Nesta can now be used as a Static Site Generator (SSG) with its new
|
26
|
+
`nesta build` command! Server Side Rendering (SSR) is still supported,
|
27
|
+
as is development with a local web server.
|
28
|
+
|
29
|
+
Back in the days when Heroku allowed us to deploy Nesta on their
|
30
|
+
platform for free, there really didn't seem to be any point in
|
31
|
+
converting a site to a bunch of static HTML and CSS files. If you
|
32
|
+
enabled the appropriate HTTP cache-control headers, Heroku would
|
33
|
+
automatically cache an entire site in memory, so there was no real
|
34
|
+
performance benefit. That's why Nesta never had SSG support, even
|
35
|
+
though everybody seemed to think it was cool.
|
36
|
+
|
37
|
+
But Heroku is not free any more. And there's a wide choice of hosting
|
38
|
+
platforms for static site generators. So why not?
|
39
|
+
|
40
|
+
See the docs for full details, but in short:
|
41
|
+
|
42
|
+
- If you run `bundle exec nesta build`, Nesta will generate a static
|
43
|
+
copy of your site in a ./dist directory.
|
44
|
+
|
45
|
+
- You might want to add ./dist to your .gitignore file.
|
46
|
+
|
47
|
+
- There are a couple of new config settings in config.yml.
|
48
|
+
|
49
|
+
- You can configure hosting platforms like Netlify, AWS Amplify,
|
50
|
+
Vercel (and others) to redeploy your site by running the build
|
51
|
+
command when you push changes to your git repository.
|
52
|
+
|
53
|
+
This was fun to implement. (Graham Ashton)
|
54
|
+
|
55
|
+
* Sass and SCSS files are now rendered with Dart Sass (the main implementation
|
56
|
+
of Sass). We had been using the (now deprecated) libsass library.
|
57
|
+
|
58
|
+
Sass has changed a bit since libsass was current, so you may need to make
|
59
|
+
some small changes to your stylesheets. Documentation that should help with
|
60
|
+
those changes can be found here:
|
61
|
+
|
62
|
+
https://sass-lang.com/documentation/breaking-changes
|
63
|
+
|
64
|
+
* Replace Nesta's custom template-locating code with Sinatra's #find_template
|
65
|
+
method. (Graham Ashton, suggested by Lilith River)
|
66
|
+
|
67
|
+
* Update multiple dependencies to fix security vulnerabilities; see commit
|
68
|
+
history for details. (Graham Ashton)
|
69
|
+
|
70
|
+
* Built-in support for configuring Nesta via environment variables has been
|
71
|
+
dropped. (Graham Ashton)
|
72
|
+
|
73
|
+
Should you still want to configure Nesta via the environment you can
|
74
|
+
use Erb in `config.yml`, like this:
|
75
|
+
|
76
|
+
some_value: <%= ENV.fetch('NESTA_VARIABLE') %>
|
77
|
+
|
78
|
+
* During a tidy up of the config file code, the `yaml_conf` attribute on
|
79
|
+
the Nesta::Config class has been renamed to `config`. This is unlikely
|
80
|
+
to affect you, but if it does just change the name. (Graham Ashton)
|
81
|
+
|
82
|
+
* The `yaml_path` attribute on the Nesta::Config class has been moved
|
83
|
+
to `Nesta::ConfigFile.path`. Again, I can't imagine why anybody would
|
84
|
+
have written code that used it, but it's a breaking change so I'm
|
85
|
+
mentioning it. (Graham Ashton)
|
86
|
+
|
87
|
+
* Support for loading plugins from a local directory (which was deprecated
|
88
|
+
in version 0.9.10) has been removed. (Graham Ashton)
|
89
|
+
|
90
|
+
* The local_stylesheet? helper method (deprecated in 0.9.1) has been
|
91
|
+
removed. (Graham Ashton)
|
92
|
+
|
93
|
+
* The breadcrumb_label helper method (deprecated in 0.9.3) has been removed.
|
94
|
+
(Graham Ashton)
|
95
|
+
|
96
|
+
## 0.13.0 (28 September 2022)
|
2
97
|
|
3
98
|
* Update dependencies in order to support Ruby 3.0 and above.
|
4
99
|
(Graham Ashton)
|
@@ -24,7 +119,7 @@
|
|
24
119
|
* Stopped the test suite from executing external commands during tests.
|
25
120
|
(Graham Ashton)
|
26
121
|
|
27
|
-
|
122
|
+
## 0.12.0 (30 June 2020)
|
28
123
|
|
29
124
|
* Upgrade to Sinatra 2 and Rack 2. (Graham Ashton)
|
30
125
|
|
@@ -40,12 +135,12 @@
|
|
40
135
|
* Stop running the test suite under Ruby 2.3 and 2.4, both of which
|
41
136
|
have reached end-of-life. (Graham Ashton)
|
42
137
|
|
43
|
-
|
138
|
+
## 0.11.1 (26 March 2015)
|
44
139
|
|
45
140
|
* Tighten dependency on Tilt, as version 2.x is incompatible.
|
46
141
|
(Graham Ashton)
|
47
142
|
|
48
|
-
|
143
|
+
## 0.11.0 (16 March 2015)
|
49
144
|
|
50
145
|
* Allow Haml pages to use the built-in Markdown filter again, by
|
51
146
|
including the haml-contrib gem.
|
@@ -88,7 +183,7 @@
|
|
88
183
|
|
89
184
|
* Support for Ruby 2.2. (Graham Ashton)
|
90
185
|
|
91
|
-
|
186
|
+
## 0.10.0 (25 April 2014)
|
92
187
|
|
93
188
|
* Upgraded the default theme to a responsive design, using Google's
|
94
189
|
Roboto Slab web font. (Graham Ashton)
|
@@ -212,7 +307,7 @@
|
|
212
307
|
this list. See GitHub for the full list of commits.
|
213
308
|
https://github.com/gma/nesta/compare/v0.9.13...v0.10.0
|
214
309
|
|
215
|
-
|
310
|
+
## 0.9.13 (3 March 2012)
|
216
311
|
|
217
312
|
* The nesta script has a new command; edit. You can pass it the path
|
218
313
|
to a file within your content/pages folder and it will open the file
|
@@ -270,9 +365,9 @@
|
|
270
365
|
* Bug fix: Summaries on Haml pages were not marked up as paragraphs.
|
271
366
|
See #75.
|
272
367
|
|
273
|
-
|
368
|
+
## 0.9.12 (Released then pulled, due to rubygems [still] being a total mess)
|
274
369
|
|
275
|
-
|
370
|
+
## 0.9.11 (22 September 2011)
|
276
371
|
|
277
372
|
* Use Tilt to render the Markdown, Textile and Haml in content/pages.
|
278
373
|
RDiscount is now the default Markdown processor. To continue using
|
@@ -299,7 +394,7 @@
|
|
299
394
|
within the content folder by crafting a relative path containing
|
300
395
|
the string '../' (Louis Nyffenegger).
|
301
396
|
|
302
|
-
|
397
|
+
## 0.9.10 (9 September 2011)
|
303
398
|
|
304
399
|
* Load Nesta plugins from gems. Any gem whose name begins with
|
305
400
|
nesta-plugin- can be used in a project by adding it to the project's
|
@@ -317,7 +412,7 @@
|
|
317
412
|
the Sass rendering engine by default, which allows it to find .sass
|
318
413
|
files within the gem if no matching files are found locally.
|
319
414
|
|
320
|
-
|
415
|
+
## 0.9.9 (24 August 2011)
|
321
416
|
|
322
417
|
* Bug fix: What a debacle this is turning into. The new Nesta::Env
|
323
418
|
class must be required before the code in 'nesta/app' is loaded.
|
@@ -325,7 +420,7 @@
|
|
325
420
|
via config.ru. Running Nesta any other way lead to an immediate
|
326
421
|
crash.
|
327
422
|
|
328
|
-
|
423
|
+
## 0.9.8 (22 August 2011)
|
329
424
|
|
330
425
|
* Bug fix: The Sinatra app's root directory wasn't set which meant
|
331
426
|
that Nesta couldn't always find the ./public directory (such as when
|
@@ -336,12 +431,12 @@
|
|
336
431
|
Nesta::Env class. In 0.9.6 I forgot to actually set Nesta::App.root
|
337
432
|
as well, which was a big mistake. Whoops.
|
338
433
|
|
339
|
-
|
434
|
+
## 0.9.7 (19 August 2011)
|
340
435
|
|
341
436
|
* No code changes from 0.9.6; version number increased to allow new gem
|
342
437
|
to be deployed to rubygems.org.
|
343
438
|
|
344
|
-
|
439
|
+
## 0.9.6 (18 August 2011) [never released due to packaging bug]
|
345
440
|
|
346
441
|
* Nesta no longer cares whether you write your Sass stylesheets in the
|
347
442
|
original indented Sass format or the default SCSS syntax (which is a
|
@@ -367,7 +462,7 @@
|
|
367
462
|
Nesta::App.root would be before requiring nesta/app. Fixed by
|
368
463
|
creating Nesta::Env and moving root to there instead.
|
369
464
|
|
370
|
-
|
465
|
+
## 0.9.5 (1 May 2011)
|
371
466
|
|
372
467
|
* Added --version option to nesta command (Christopher Lindblom).
|
373
468
|
|
@@ -393,14 +488,14 @@
|
|
393
488
|
within Haml templates. See https://github.com/gma/nesta/pull/18
|
394
489
|
(Carl Furrow).
|
395
490
|
|
396
|
-
|
491
|
+
## 0.9.4 (18 February 2011)
|
397
492
|
|
398
493
|
* Updated the link colours in the default theme.
|
399
494
|
|
400
495
|
* Set the default encoding to UTF-8. Without it Heroku would sometimes
|
401
496
|
fail to render pages (issue 14).
|
402
497
|
|
403
|
-
|
498
|
+
## 0.9.3 (18 January 2011)
|
404
499
|
|
405
500
|
* The route and view for serving the home page (/) has been removed,
|
406
501
|
and the home page must now be created as an index page in
|
@@ -442,7 +537,7 @@
|
|
442
537
|
* Bug fix: Don't output empty <li> tags for nested submenus that are
|
443
538
|
beneath the requested number of levels.
|
444
539
|
|
445
|
-
|
540
|
+
## 0.9.2 (10 January 2011)
|
446
541
|
|
447
542
|
* Made the FileModel.metadata method public, to allow for custom
|
448
543
|
metadata at the top of each page. (Wynn Netherland)
|
@@ -452,7 +547,7 @@
|
|
452
547
|
|
453
548
|
* Added templates required by `nesta theme:create`.
|
454
549
|
|
455
|
-
|
550
|
+
## 0.9.1 (31 December 2010)
|
456
551
|
|
457
552
|
* Re-implemented the default theme, using semantic HTML5 and
|
458
553
|
Andy Clarke's Universal Internet Explorer 6 CSS. Named the previous
|
@@ -465,15 +560,16 @@
|
|
465
560
|
* Moved the navigation helpers into the Nesta::Navigation::Renderers
|
466
561
|
module.
|
467
562
|
|
468
|
-
|
563
|
+
## 0.9.0 (20 December 2010)
|
469
564
|
|
470
565
|
* Packaged Nesta as a gem for the first time, instead of as a template
|
471
566
|
site that can be cloned, edited and deployed. Added the `nesta`
|
472
567
|
command for generating new sites and managing themes.
|
473
568
|
|
474
|
-
|
569
|
+
## Previous versions (from 26 November 2008)
|
475
570
|
|
476
571
|
* Prior to 0.9.0 Nesta was distributed as a git repository that could
|
477
572
|
be forked, edited and deployed. The only change log for these
|
478
|
-
versions is the
|
573
|
+
versions is the commit history:
|
574
|
+
|
479
575
|
https://github.com/gma/nesta/commits/master
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nesta (0.
|
4
|
+
nesta (0.15.0)
|
5
5
|
RedCloth (~> 4.2)
|
6
6
|
haml (>= 3.1, < 6.0)
|
7
7
|
haml-contrib (>= 1.0)
|
8
|
-
rack (~> 2
|
8
|
+
rack (~> 2)
|
9
|
+
rake
|
9
10
|
rdiscount (~> 2.1)
|
10
|
-
|
11
|
-
sinatra (~>
|
11
|
+
sass-embedded (~> 1.58)
|
12
|
+
sinatra (~> 3.0)
|
12
13
|
tilt (~> 2.0)
|
13
14
|
|
14
15
|
GEM
|
@@ -28,6 +29,7 @@ GEM
|
|
28
29
|
rack-test (>= 0.5.4)
|
29
30
|
xpath (>= 2.0, < 4.0)
|
30
31
|
ffi (1.15.5)
|
32
|
+
google-protobuf (3.22.2)
|
31
33
|
haml (5.2.2)
|
32
34
|
temple (>= 0.8.0)
|
33
35
|
tilt
|
@@ -39,9 +41,9 @@ GEM
|
|
39
41
|
rb-inotify (>= 0.9)
|
40
42
|
rb-kqueue (>= 0.2)
|
41
43
|
mini_mime (1.1.2)
|
42
|
-
mini_portile2 (2.8.
|
43
|
-
minitest (5.
|
44
|
-
minitest-reporters (1.
|
44
|
+
mini_portile2 (2.8.1)
|
45
|
+
minitest (5.18.0)
|
46
|
+
minitest-reporters (1.6.0)
|
45
47
|
ansi
|
46
48
|
builder
|
47
49
|
minitest (>= 5.0)
|
@@ -51,37 +53,38 @@ GEM
|
|
51
53
|
rb-fsevent (>= 0.9)
|
52
54
|
rb-inotify (>= 0.8)
|
53
55
|
unicorn (>= 4.5)
|
54
|
-
mustermann (
|
56
|
+
mustermann (3.0.0)
|
55
57
|
ruby2_keywords (~> 0.0.1)
|
56
|
-
nokogiri (1.
|
58
|
+
nokogiri (1.14.3)
|
57
59
|
mini_portile2 (~> 2.8.0)
|
58
60
|
racc (~> 1.4)
|
59
|
-
public_suffix (5.0.
|
60
|
-
racc (1.6.
|
61
|
-
rack (2.2.4)
|
62
|
-
rack-protection (
|
61
|
+
public_suffix (5.0.1)
|
62
|
+
racc (1.6.2)
|
63
|
+
rack (2.2.6.4)
|
64
|
+
rack-protection (3.0.5)
|
63
65
|
rack
|
64
66
|
rack-test (2.0.2)
|
65
67
|
rack (>= 1.3)
|
66
|
-
raindrops (0.20.
|
68
|
+
raindrops (0.20.1)
|
67
69
|
rake (13.0.6)
|
68
70
|
rb-fsevent (0.11.2)
|
69
71
|
rb-inotify (0.10.1)
|
70
72
|
ffi (~> 1.0)
|
71
73
|
rb-kqueue (0.2.8)
|
72
74
|
ffi (>= 0.5.0)
|
73
|
-
rdiscount (2.2.
|
74
|
-
ruby-progressbar (1.
|
75
|
+
rdiscount (2.2.7)
|
76
|
+
ruby-progressbar (1.13.0)
|
75
77
|
ruby2_keywords (0.0.5)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
rack
|
78
|
+
sass-embedded (1.58.3)
|
79
|
+
google-protobuf (~> 3.21)
|
80
|
+
rake (>= 10.0.0)
|
81
|
+
sinatra (3.0.5)
|
82
|
+
mustermann (~> 3.0)
|
83
|
+
rack (~> 2.2, >= 2.2.4)
|
84
|
+
rack-protection (= 3.0.5)
|
82
85
|
tilt (~> 2.0)
|
83
|
-
temple (0.
|
84
|
-
tilt (2.0
|
86
|
+
temple (0.10.0)
|
87
|
+
tilt (2.1.0)
|
85
88
|
unicorn (6.1.0)
|
86
89
|
kgio (~> 2.6)
|
87
90
|
raindrops (~> 0.7)
|
@@ -98,7 +101,6 @@ DEPENDENCIES
|
|
98
101
|
minitest-reporters
|
99
102
|
mr-sparkle
|
100
103
|
nesta!
|
101
|
-
rake
|
102
104
|
|
103
105
|
BUNDLED WITH
|
104
|
-
2.
|
106
|
+
2.4.6
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,34 +1,37 @@
|
|
1
|
-
#
|
1
|
+
# Lightweight file-based CMS and Static Site Generator
|
2
2
|
|
3
|
-
|
3
|
+
Nesta is a lightweight CMS for building content sites and blogs, written in
|
4
|
+
[Sinatra].
|
4
5
|
|
5
|
-
Content can be written in [Markdown]
|
6
|
-
|
7
|
-
some HTML to your pages). There's no database; write your content in
|
8
|
-
your editor. Publish by pushing to a git repository.
|
6
|
+
Content can be written in [Markdown] or [Textile], stored in text files on your
|
7
|
+
computer. There is no database.
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
You do your writing in your text editor.
|
10
|
+
|
11
|
+
Publish by pushing your changes to a git repository that's setup to deploy your
|
12
|
+
changes to the web.
|
13
|
+
|
14
|
+
[Sinatra]: http://www.sinatrarb.com/ "Sinatra"
|
15
|
+
[Markdown]: http://daringfireball.net/projects/markdown/
|
16
|
+
[Textile]: http://textism.com/tools/textile/
|
13
17
|
|
14
18
|
## Installation
|
15
19
|
|
16
|
-
Begin by installing the gem:
|
20
|
+
Begin by [installing Ruby], then the Nesta gem:
|
17
21
|
|
18
22
|
$ gem install nesta
|
19
23
|
|
20
|
-
|
24
|
+
Use the `nesta` command to generate a new site:
|
21
25
|
|
22
|
-
$ nesta new mysite.com --git
|
26
|
+
$ nesta new mysite.com --git # a git repo is optional, but recommended
|
23
27
|
|
24
28
|
Install a few dependencies, and you're away:
|
25
29
|
|
26
30
|
$ cd mysite.com
|
27
31
|
$ bundle
|
28
32
|
|
29
|
-
You'll find
|
30
|
-
|
31
|
-
before you go very far.
|
33
|
+
You'll find configuration options for your site in `config/config.yml`. The
|
34
|
+
defaults will work, but you'll want to tweak it before you go very far.
|
32
35
|
|
33
36
|
That's it - you can launch a local web server in development mode using
|
34
37
|
mr-sparkle...
|
@@ -36,32 +39,43 @@ mr-sparkle...
|
|
36
39
|
$ bundle exec mr-sparkle config.ru
|
37
40
|
|
38
41
|
...then point your web browser at http://localhost:8080. Start editing
|
39
|
-
the files in `content/pages` (see the [docs on writing content]
|
40
|
-
|
42
|
+
the files in `content/pages` (see the [docs on writing content] for full
|
43
|
+
instructions).
|
44
|
+
|
45
|
+
You can either [deploy it] behind a web server, or build a static version of
|
46
|
+
your site:
|
41
47
|
|
42
|
-
|
48
|
+
$ nesta build # but see config.yml for related settings
|
49
|
+
|
50
|
+
[installing Ruby]: https://www.ruby-lang.org/en/documentation/installation/
|
51
|
+
[docs on writing content]: http://nestacms.com/docs/creating-content/
|
52
|
+
[deploy it]: https://nestacms.com/docs/deployment/
|
43
53
|
|
44
54
|
## Support
|
45
55
|
|
46
56
|
There's plenty of information on <http://nestacms.com>. If you need some
|
47
|
-
help with anything feel free to file an issue, or contact me
|
48
|
-
|
57
|
+
help with anything feel free to file an issue, or contact me on Mastodon
|
58
|
+
([@gma@hachyderm.io]) or Twitter ([@grahamashton]).
|
59
|
+
|
60
|
+
If you like Nesta you can keep up with developments by following [@nestacms]
|
61
|
+
on Twitter, and on [the blog].
|
49
62
|
|
50
|
-
|
51
|
-
|
63
|
+
[@gma@hachyderm.io]: https://hachyderm.io/@gma
|
64
|
+
[@grahamashton]: https://twitter.com/grahamashton
|
65
|
+
[@nestacms]: https://twitter.com/nestacms
|
66
|
+
[the blog]: https://nestacms.com/blog
|
52
67
|
|
53
|
-
[
|
54
|
-
[the blog]: http://nestacms.com/blog
|
68
|
+
![Tests](https://github.com/gma/nesta/actions/workflows/tests.yml/badge.svg)
|
55
69
|
|
56
70
|
## Contributing
|
57
71
|
|
58
|
-
If you want to add a new feature,
|
59
|
-
|
60
|
-
|
61
|
-
|
72
|
+
If you want to add a new feature, please [create an issue] to discuss it before
|
73
|
+
you start coding. I might suggest that we implement it as a [plugin] (to keep
|
74
|
+
Nesta itself lean and simple), or be able to chip in with ideas on how to
|
75
|
+
approach it.
|
62
76
|
|
63
|
-
[
|
77
|
+
[create an issue]: https://github.com/gma/nesta/issues/new
|
78
|
+
[plugin]: https://nestacms.com/docs/plugins
|
64
79
|
|
65
|
-
-- Graham
|
80
|
+
-- Graham
|
66
81
|
|
67
|
-
[@grahamashton]: http://twitter.com/grahamashton
|
data/RELEASING.md
CHANGED
@@ -10,7 +10,7 @@ the steps:
|
|
10
10
|
the version number in `Gemfile.lock` to be updated too, so regenerate
|
11
11
|
it now and check them in together.
|
12
12
|
|
13
|
-
3. Update the `
|
13
|
+
3. Update the `CHANGLOG.md` file with a summary of significant changes since
|
14
14
|
the previous release.
|
15
15
|
|
16
16
|
4. Commit these changes with a commit message of 'Bump version to <version>'
|
data/bin/nesta
CHANGED
@@ -24,6 +24,7 @@ COMMANDS
|
|
24
24
|
theme:install <url> Install a theme from a git repository.
|
25
25
|
theme:enable <name> Make the theme active, updating config.yml.
|
26
26
|
theme:create <name> Makes a template for a new theme in ./themes.
|
27
|
+
build [path] Build static copy of site (path defaults to ./dist)
|
27
28
|
|
28
29
|
OPTIONS FOR new
|
29
30
|
--git Create a new git repository for the project.
|
@@ -41,6 +42,7 @@ EOF
|
|
41
42
|
def self.parse_command_line
|
42
43
|
opts = GetoptLong.new(
|
43
44
|
['--bash-completion', GetoptLong::NO_ARGUMENT],
|
45
|
+
['--domain', GetoptLong::REQUIRED_ARGUMENT],
|
44
46
|
['--git', GetoptLong::NO_ARGUMENT],
|
45
47
|
['--help', '-h', GetoptLong::NO_ARGUMENT],
|
46
48
|
['--version', '-v', GetoptLong::NO_ARGUMENT],
|
@@ -118,7 +120,7 @@ _nesta() {
|
|
118
120
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
119
121
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
120
122
|
|
121
|
-
opts="new 'demo:content' edit 'plugin:create' 'theme:install' 'theme:enable' 'theme:create'"
|
123
|
+
opts="new 'demo:content' edit 'plugin:create' 'theme:install' 'theme:enable' 'theme:create' build"
|
122
124
|
|
123
125
|
case "${cur}" in
|
124
126
|
theme:*)
|
@@ -172,6 +174,7 @@ _1st_arguments=(
|
|
172
174
|
'theme\:install:Install a theme from a git repository'
|
173
175
|
'theme\:enable:Make the theme active, updating config.yml'
|
174
176
|
'theme\:create:Makes a template for a new theme in ./themes'
|
177
|
+
'build\:Build static copy of site'
|
175
178
|
)
|
176
179
|
|
177
180
|
local expl
|
data/lib/nesta/app.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'sinatra/base'
|
2
2
|
require 'haml'
|
3
|
-
require 'sassc'
|
4
3
|
|
5
4
|
require File.expand_path('../nesta', File.dirname(__FILE__))
|
6
5
|
require File.expand_path('env', File.dirname(__FILE__))
|
@@ -18,6 +17,7 @@ module Nesta
|
|
18
17
|
set :root, Nesta::Env.root
|
19
18
|
set :views, File.expand_path('../../views', File.dirname(__FILE__))
|
20
19
|
set :haml, { format: :html5 }
|
20
|
+
set :public_folder, 'public'
|
21
21
|
|
22
22
|
helpers Overrides::Renderers
|
23
23
|
helpers Navigation::Renderers
|
@@ -90,5 +90,4 @@ module Nesta
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
Nesta::Plugin.load_local_plugins
|
94
93
|
Nesta::Plugin.initialize_plugins
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
require_relative '../static/assets'
|
4
|
+
require_relative '../static/site'
|
5
|
+
|
6
|
+
module Nesta
|
7
|
+
module Commands
|
8
|
+
class Build
|
9
|
+
DEFAULT_DESTINATION = "dist"
|
10
|
+
|
11
|
+
attr_accessor :domain
|
12
|
+
|
13
|
+
def initialize(build_dir = nil, options = {})
|
14
|
+
@build_dir = build_dir || DEFAULT_DESTINATION
|
15
|
+
if @build_dir == Nesta::App.settings.public_folder
|
16
|
+
raise RuntimeError.new("#{@build_dir} is already used, for assets")
|
17
|
+
end
|
18
|
+
@domain = options['domain'] || configured_domain_name
|
19
|
+
end
|
20
|
+
|
21
|
+
def configured_domain_name
|
22
|
+
Nesta::Config.build.fetch('domain', 'localhost')
|
23
|
+
end
|
24
|
+
|
25
|
+
def execute(process)
|
26
|
+
logger = Proc.new { |message| puts message }
|
27
|
+
site = Nesta::Static::Site.new(@build_dir, @domain, logger)
|
28
|
+
site.render_pages
|
29
|
+
site.render_not_found
|
30
|
+
site.render_atom_feed
|
31
|
+
site.render_sitemap
|
32
|
+
site.render_templated_assets
|
33
|
+
Nesta::Static::Assets.new(@build_dir, logger).copy_attachments
|
34
|
+
Nesta::Static::Assets.new(@build_dir, logger).copy_public_folder
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/nesta/commands/new.rb
CHANGED
@@ -25,7 +25,8 @@ module Nesta
|
|
25
25
|
def create_repository(process)
|
26
26
|
FileUtils.cd(@path) do
|
27
27
|
File.open('.gitignore', 'w') do |file|
|
28
|
-
|
28
|
+
lines = %w[._* .*.swp .bundle .DS_Store .sass-cache dist]
|
29
|
+
file.puts lines.join("\n")
|
29
30
|
end
|
30
31
|
process.run('git', 'init')
|
31
32
|
process.run('git', 'add', '.')
|
data/lib/nesta/commands.rb
CHANGED
@@ -7,6 +7,7 @@ require File.expand_path('path', File.dirname(__FILE__))
|
|
7
7
|
require File.expand_path('system_command', File.dirname(__FILE__))
|
8
8
|
require File.expand_path('version', File.dirname(__FILE__))
|
9
9
|
|
10
|
+
require File.expand_path('commands/build', File.dirname(__FILE__))
|
10
11
|
require File.expand_path('commands/demo', File.dirname(__FILE__))
|
11
12
|
require File.expand_path('commands/edit', File.dirname(__FILE__))
|
12
13
|
require File.expand_path('commands/new', File.dirname(__FILE__))
|