nesta 0.13.0 → 0.15.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 +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
|
+

|
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__))
|