nesta 0.9.13 → 0.10.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 (53) hide show
  1. checksums.yaml +7 -0
  2. data/{spec/spec.opts → .rspec} +0 -0
  3. data/.travis.yml +3 -2
  4. data/CHANGES +130 -1
  5. data/Gemfile +1 -8
  6. data/Gemfile.lock +68 -51
  7. data/LICENSE +1 -1
  8. data/README.md +38 -6
  9. data/Rakefile +2 -5
  10. data/bin/nesta +59 -3
  11. data/config.ru +3 -0
  12. data/lib/nesta.rb +1 -1
  13. data/lib/nesta/app.rb +20 -17
  14. data/lib/nesta/commands.rb +6 -3
  15. data/lib/nesta/config.rb +52 -15
  16. data/lib/nesta/helpers.rb +30 -3
  17. data/lib/nesta/models.rb +48 -30
  18. data/lib/nesta/navigation.rb +32 -12
  19. data/lib/nesta/overrides.rb +5 -5
  20. data/lib/nesta/version.rb +1 -1
  21. data/nesta.gemspec +9 -10
  22. data/smoke-test.sh +102 -0
  23. data/spec/atom_spec.rb +52 -49
  24. data/spec/commands_spec.rb +22 -16
  25. data/spec/config_spec.rb +66 -6
  26. data/spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb +1 -3
  27. data/spec/model_factory.rb +16 -16
  28. data/spec/models_spec.rb +197 -144
  29. data/spec/overrides_spec.rb +21 -21
  30. data/spec/page_spec.rb +182 -136
  31. data/spec/sitemap_spec.rb +48 -43
  32. data/spec/spec_helper.rb +32 -17
  33. data/templates/Gemfile +5 -2
  34. data/templates/config/config.yml +13 -13
  35. data/templates/config/deploy.rb +2 -2
  36. data/templates/index.haml +2 -0
  37. data/templates/themes/app.rb +1 -1
  38. data/templates/themes/views/layout.haml +7 -0
  39. data/templates/themes/views/master.sass +3 -0
  40. data/templates/themes/views/page.haml +1 -0
  41. data/views/atom.haml +3 -3
  42. data/views/comments.haml +1 -1
  43. data/views/error.haml +1 -1
  44. data/views/feed.haml +1 -1
  45. data/views/layout.haml +6 -3
  46. data/views/master.sass +143 -133
  47. data/views/mixins.sass +53 -28
  48. data/views/normalize.scss +396 -0
  49. data/views/page_meta.haml +2 -2
  50. data/views/sitemap.haml +2 -2
  51. data/views/summaries.haml +2 -2
  52. metadata +155 -202
  53. data/lib/nesta/cache.rb +0 -138
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 904b608182032947bdcad754a909a9b49e1f4be7
4
+ data.tar.gz: 3759e6ccd241eac679f762209f4987746511596c
5
+ SHA512:
6
+ metadata.gz: f36f814b284024e1d99bf37abf6cf37444db418d2c67cb980cbf8a80cb654ab36f5c1851e8a38d14e5de6cc7eeb70f3ed3c5201dab618071f0f0546522e5e217
7
+ data.tar.gz: e25c5f1dead47715cff47cb2458e7f9df44a0a87f682733fa475bd016ad1b5a7d9af9856564c8c2061394759eeed5ea92966e163fac8a83ec32f8093645136e7
File without changes
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.8.7
4
- - 1.9.2
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.1
data/CHANGES CHANGED
@@ -1,4 +1,128 @@
1
- = 0.9.12 / (3 March 2012)
1
+ = 0.10.0 / (25 April 2014)
2
+
3
+ * Upgraded the default theme to a responsive design, using Google's
4
+ Roboto Slab web font. (Graham Ashton)
5
+
6
+ * Reduced the amount of I/O required to load a page with some judicious
7
+ in memory caching of filenames. Expect a speed boost! (Graham Ashton)
8
+
9
+ * Added 'Link text' metadata. When working out how to link to your
10
+ pages from the automatically generated menus and breadcrumbs, Nesta
11
+ uses the page's heading. It still does, but if you want to use
12
+ different words when linking to the page in breadcrumbs or in the
13
+ menu you can by defining the "Link text" metadata. (Micah Chalmer)
14
+
15
+ NOTE: Some existing sites may have pages that don't define a heading.
16
+ Those sites will not work with Nesta 0.10.0 until they've been
17
+ upgraded; either add an h1 level heading at the top of your pages
18
+ (preferred) or define the 'Link text' metadata. If you don't want
19
+ h1 headings to appear at the top of your web pages, hide them with
20
+ CSS (this is the best approach for accessibility), or define the
21
+ "Link text" metadata.
22
+
23
+ * The text used in the 'Read more' link is now configurable in config.yml.
24
+ The config key is called `read_more`. (Pete Gadomski)
25
+
26
+ See the config.yml template (on GitHub) for more details.
27
+ https://github.com/gma/nesta/blob/master/templates/config/config.yml
28
+
29
+ * Added the skip-sitemap flag, to prevent a page from being listed in
30
+ the XML sitemap. Add 'Flags: skip-sitemap' to the top of your page to
31
+ enable it. Draft pages have also been removed from the sitemap.
32
+ (Suggested by Joshua Mervine, implemented by Graham Ashton)
33
+
34
+ * Added support for user-defined config settings in config.yml.
35
+ If you've ever wanted to add config settings to config.yml and then
36
+ access them from within your app.rb file or templates, this is for
37
+ you.
38
+
39
+ There's a new `Nesta::Config.fetch` method for reading these
40
+ settings. It can also read settings from the environment, looking for
41
+ variables whose names are prefixed with "NESTA_". For example, the
42
+ value in the `NESTA_MY_SETTING` variable can be returned by
43
+ calling `Nesta::Config.fetch(:my_setting)`.
44
+
45
+ If the setting you're trying to read isn't defined a NotDefined
46
+ exception (a subclass of KeyError) will be raised. Similarly to
47
+ Ruby's Hash#fetch method, you can avoid the exception by specifying a
48
+ second argument (such as nil) that will be returned if the setting
49
+ isn't defined.
50
+
51
+ (Sean Redmond, Graham Ashton)
52
+
53
+ * The built-in file caching (where Nesta could write generated HTML for
54
+ rendered pages to disk) has been removed. If you'd like to cache
55
+ pages to disk, use the sinatra-cache gem.
56
+
57
+ See http://nestacms.com/docs/deployment/page-caching for more
58
+ details, and instructions for installing and testing sintra-cache.
59
+
60
+ (Graham Ashton)
61
+
62
+ * The nesta script's theme:create command now copies default templates
63
+ into a new theme. (Jake Rayson)
64
+
65
+ * Added the --zsh-completion option to the nesta command, which outputs
66
+ code that will configure command line completion in Zsh for the nesta
67
+ command. (Wynn Netherland)
68
+
69
+ * Page titles no longer include the heading from the parent page.
70
+ Behaviour was a little inconsistent, and it's arguably not a great
71
+ feature in the first place. Since the Title metadata appeared you can
72
+ ovverride the page title to something more useful if you need to too.
73
+ (Graham Ashton)
74
+
75
+ * When commenting via Disqus is configured, comments appeared on every
76
+ page in earlier versions of Nesta. From now on only pages with a date
77
+ set (i.e. articles) will display the comment form by default. If
78
+ you've copied the comments.haml template into your ./views folder (or
79
+ into a theme) you'll need to modify it slightly. See the `if`
80
+ statement in the latest version.
81
+
82
+ If you'd actually like comments to appear on every page of your site,
83
+ redefine the Page#receives_comments? method in your app.rb file, so
84
+ that it returns `true`.
85
+
86
+ (Graham Ashton)
87
+
88
+ * Breadcrumbs include Microdata for use by search engines. See:
89
+ http://support.google.com/webmasters/bin/answer.py?hl=en&answer=185417
90
+ (Sean Schofield)
91
+
92
+ * The menu and breadcrumb helper methods can now generate HTML that
93
+ identifies the current page. When viewing a page that appears in the
94
+ menu, its menu item will have the class "current". To change the name
95
+ of the class, override the Nesta::Navigation::current_menu_item_class
96
+ method.
97
+
98
+ The current page doesn't have a class applied by default. If you want
99
+ to add a class to style it, override the ::current_breadcrumb_class
100
+ method (also in the Nesta::Navigation module), returning a string.
101
+
102
+ (Pete Gadomski)
103
+
104
+ * Version 0.9.13 used Sinatra's `url` helper method to generate links
105
+ to pages on the site. When these pages were cached by proxy servers
106
+ the hostname in the URL could be set incorrectly, as it would be
107
+ determined from the HTTP headers (see issue #103 for more details).
108
+
109
+ The solution was to link to pages on the current site using an
110
+ absolute path, rather than a full URL. The `path_to` helper was added,
111
+ and used in place of Sinatra's `url` helper method.
112
+
113
+ (Micah Chalmer)
114
+
115
+ * Updated the test suite from RSpec 1.3 to RSpec 2.
116
+ (Wynn Netherland, Graham Ashton)
117
+
118
+ * Support for Ruby 1.8 has been dropped. Ruby 1.9.3 or above is
119
+ recommended.
120
+
121
+ * There were also plenty of small bug fixes that didn't make it into
122
+ this list. See GitHub for the full list of commits.
123
+ https://github.com/gma/nesta/compare/v0.9.13...v0.10.0
124
+
125
+ = 0.9.13 / (3 March 2012)
2
126
 
3
127
  * The nesta script has a new command; edit. You can pass it the path
4
128
  to a file within your content/pages folder and it will open the file
@@ -28,6 +152,11 @@
28
152
  * The Page class has a new method; body_markup. It can be overridden by
29
153
  a plugin, and is used by the foldable plugin. (Micah Chalmer)
30
154
 
155
+ * The `current_item?` helper has been created in `Nesta::Navigation`.
156
+ You can override it to implement your own logic for determining
157
+ whether or not a menu item rendered by the menu helpers are
158
+ considered to be "current". (Chad Ostrowski)
159
+
31
160
  * The FileModel class has a new method; parse_metadata. It can be
32
161
  overriden by plugins that implement an alternate metadata syntax.
33
162
  Used by the yaml-metadata plugin.
data/Gemfile CHANGED
@@ -3,11 +3,4 @@ source 'http://rubygems.org'
3
3
  # Specify your gem's dependencies in nesta.gemspec
4
4
  gemspec
5
5
 
6
- group :development do
7
- gem 'guard-ctags-bundler'
8
- gem 'guard-livereload'
9
- gem 'rb-readline'
10
- gem 'ZenTest'
11
- end
12
-
13
- # gem (RUBY_VERSION =~ /^1.9/) ? 'ruby-debug19': 'ruby-debug'
6
+ gem 'debugger'
@@ -1,73 +1,90 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nesta (0.9.13)
4
+ nesta (0.10.0)
5
5
  RedCloth (~> 4.2)
6
- haml (~> 3.1)
7
- rack (~> 1.1)
8
- rdiscount (~> 1.6)
9
- sass (~> 3.1)
10
- shotgun (>= 0.8)
11
- sinatra (~> 1.3)
6
+ haml (>= 3.1)
7
+ rack (>= 1.3)
8
+ rdiscount (~> 2.1)
9
+ sass (>= 3.1)
10
+ sinatra (~> 1.4)
12
11
 
13
12
  GEM
14
13
  remote: http://rubygems.org/
15
14
  specs:
16
15
  RedCloth (4.2.9)
17
- ZenTest (4.6.2)
18
- addressable (2.2.7)
19
- em-websocket (0.3.6)
20
- addressable (>= 2.1.1)
21
- eventmachine (>= 0.12.9)
22
- eventmachine (0.12.10)
23
- ffi (1.0.11)
24
- guard (1.0.0)
25
- ffi (>= 0.5.0)
26
- thor (~> 0.14.6)
27
- guard-ctags-bundler (0.0.5)
28
- guard (>= 0.4.0)
29
- guard-livereload (0.4.2)
30
- em-websocket (>= 0.2.0)
31
- guard (>= 0.10.0)
32
- multi_json (~> 1.0)
33
- haml (3.1.4)
34
- hoe (2.15.0)
35
- rake (~> 0.8)
36
- hpricot (0.8.4)
37
- multi_json (1.1.0)
38
- rack (1.4.1)
39
- rack-protection (1.2.0)
16
+ columnize (0.8.9)
17
+ debugger (1.6.6)
18
+ columnize (>= 0.3.1)
19
+ debugger-linecache (~> 1.2.0)
20
+ debugger-ruby_core_source (~> 1.3.2)
21
+ debugger-linecache (1.2.0)
22
+ debugger-ruby_core_source (1.3.2)
23
+ diff-lcs (1.2.5)
24
+ ffi (1.9.3)
25
+ haml (4.0.5)
26
+ tilt
27
+ hoe (3.12.0)
28
+ rake (>= 0.8, < 11.0)
29
+ kgio (2.9.2)
30
+ listen (1.3.1)
31
+ rb-fsevent (>= 0.9.3)
32
+ rb-inotify (>= 0.9)
33
+ rb-kqueue (>= 0.2)
34
+ mini_portile (0.5.3)
35
+ mr-sparkle (0.3.0)
36
+ listen (~> 1.0)
37
+ rb-fsevent (>= 0.9)
38
+ rb-inotify (>= 0.8)
39
+ unicorn (>= 4.5)
40
+ nokogiri (1.6.1)
41
+ mini_portile (~> 0.5.0)
42
+ rack (1.5.2)
43
+ rack-protection (1.5.3)
40
44
  rack
41
45
  rack-test (0.6.1)
42
46
  rack (>= 1.0)
43
- rake (0.9.2.2)
44
- rb-readline (0.4.2)
45
- rdiscount (1.6.8)
46
- rspec (1.3.0)
47
- rspec_hpricot_matchers (1.0)
48
- sass (3.1.15)
49
- shotgun (0.9)
50
- rack (>= 1.0)
51
- sinatra (1.3.2)
52
- rack (~> 1.3, >= 1.3.6)
53
- rack-protection (~> 1.2)
54
- tilt (~> 1.3, >= 1.3.3)
47
+ raindrops (0.13.0)
48
+ rake (10.3.1)
49
+ rb-fsevent (0.9.4)
50
+ rb-inotify (0.9.3)
51
+ ffi (>= 0.5.0)
52
+ rb-kqueue (0.2.2)
53
+ ffi (>= 0.5.0)
54
+ rdiscount (2.1.7.1)
55
+ rspec (2.14.1)
56
+ rspec-core (~> 2.14.0)
57
+ rspec-expectations (~> 2.14.0)
58
+ rspec-mocks (~> 2.14.0)
59
+ rspec-core (2.14.8)
60
+ rspec-expectations (2.14.5)
61
+ diff-lcs (>= 1.1.3, < 2.0)
62
+ rspec-mocks (2.14.6)
63
+ sass (3.3.5)
64
+ sinatra (1.4.5)
65
+ rack (~> 1.4)
66
+ rack-protection (~> 1.4)
67
+ tilt (~> 1.3, >= 1.3.4)
55
68
  test-unit (1.2.3)
56
69
  hoe (>= 1.5.1)
57
- thor (0.14.6)
58
- tilt (1.3.3)
70
+ tilt (1.4.1)
71
+ unicorn (4.8.2)
72
+ kgio (~> 2.6)
73
+ rack
74
+ raindrops (~> 0.7)
75
+ webrat (0.7.3)
76
+ nokogiri (>= 1.2.0)
77
+ rack (>= 1.0)
78
+ rack-test (>= 0.5.3)
59
79
 
60
80
  PLATFORMS
61
81
  ruby
62
82
 
63
83
  DEPENDENCIES
64
- ZenTest
65
- guard-ctags-bundler
66
- guard-livereload
67
- hpricot (= 0.8.4)
84
+ debugger
85
+ mr-sparkle (>= 0.0.2)
68
86
  nesta!
69
87
  rack-test (= 0.6.1)
70
- rb-readline
71
- rspec (= 1.3.0)
72
- rspec_hpricot_matchers (= 1.0)
88
+ rspec (~> 2.14.0)
73
89
  test-unit (= 1.2.3)
90
+ webrat (~> 0.7.3)
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008-2011 Graham Ashton
1
+ Copyright (c) 2008-2014 Graham Ashton
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -31,12 +31,44 @@ You'll find basic configuration options for your site in
31
31
  before you go very far.
32
32
 
33
33
  That's it - you can launch a local web server in development mode using
34
- shotgun...
34
+ mr-sparkle...
35
35
 
36
- $ bundle exec shotgun config.ru
36
+ $ bundle exec mr-sparkle config.ru
37
37
 
38
- ...then point your web browser at http://localhost:9393. Start editing
39
- the files in `content/pages` (see the [Writing content][content] docs
40
- for full instructions).
38
+ ...then point your web browser at http://localhost:8080. Start editing
39
+ the files in `content/pages` (see the [docs on writing content][] for
40
+ full instructions).
41
41
 
42
- [content]: http://nestacms.com/docs/creating-content
42
+ [docs on writing content]: http://nestacms.com/docs/creating-content
43
+
44
+ ## Support
45
+
46
+ There's plenty of information on <http://nestacms.com>. If you need some
47
+ help with anything just jump on the [mailing list][] and ask.
48
+
49
+ [mailing list]: http://nestacms.com/support
50
+
51
+ If you like Nesta you can keep up with developments by following [@nestacms][]
52
+ on Twitter, and on [the blog][].
53
+
54
+ [@nestacms]: http://twitter.com/nestacms
55
+ [the blog]: http://nestacms.com/blog
56
+
57
+ ## Contributing
58
+
59
+ If you want to add a new feature, I recommend that you post a quick
60
+ message to the [mailing list][] before you start coding. I'm likely to
61
+ suggest that we implement it as a [plugin][] (to keep Nesta itself lean
62
+ and simple), so you might save yourself some time if we chat about a
63
+ good approach before you start.
64
+
65
+ [plugin]: http://nestacms.com/docs/plugins
66
+
67
+ If you think you've found a bug, please bring that up on the [mailing
68
+ list][] too, rather than creating an issue on GitHub straight away.
69
+ You'll probably get a faster response on the mailing list, as I'm the
70
+ only person who'll see your new issue.
71
+
72
+ -- Graham ([@grahamashton][] on Twitter).
73
+
74
+ [@grahamashton]: http://twitter.com/grahamashton
data/Rakefile CHANGED
@@ -3,12 +3,9 @@ require "bundler/setup"
3
3
 
4
4
  Bundler.require(:default, :test)
5
5
 
6
- require "spec/rake/spectask"
7
6
  Bundler::GemHelper.install_tasks
8
7
 
9
- desc "Run all specs in spec directory"
10
- Spec::Rake::SpecTask.new(:spec) do |t|
11
- t.spec_files = FileList["spec/*_spec.rb"]
12
- end
8
+ require 'rspec/core/rake_task'
9
+ RSpec::Core::RakeTask.new(:spec)
13
10
 
14
11
  task :default => :spec
data/bin/nesta CHANGED
@@ -14,6 +14,7 @@ GLOBAL OPTIONS
14
14
  --help, -h Display this message.
15
15
  --version, -v Display version number.
16
16
  --bash-completion Output command completion setup for Bash.
17
+ --zsh-completion Output command completion setup for Zsh.
17
18
 
18
19
  COMMANDS
19
20
  new <path> Create a new Nesta project.
@@ -43,17 +44,20 @@ EOF
43
44
  ['--git', GetoptLong::NO_ARGUMENT],
44
45
  ['--help', '-h', GetoptLong::NO_ARGUMENT],
45
46
  ['--version', '-v', GetoptLong::NO_ARGUMENT],
46
- ['--vlad', GetoptLong::NO_ARGUMENT]
47
+ ['--vlad', GetoptLong::NO_ARGUMENT],
48
+ ['--zsh-completion', GetoptLong::NO_ARGUMENT]
47
49
  )
48
50
  options = {}
49
51
  opts.each do |opt, arg|
50
- case opt
52
+ case opt
51
53
  when '--bash-completion'
52
54
  bash_completion
53
55
  when '--help'
54
56
  usage(exitcode=0)
55
57
  when '--version'
56
58
  version
59
+ when '--zsh-completion'
60
+ zsh_completion
57
61
  else
58
62
  options[opt.sub(/^--/, '')] = arg
59
63
  end
@@ -104,7 +108,7 @@ EOF
104
108
  # Install it with these commands:
105
109
  #
106
110
  # $ nesta --bash-completion > ~/.nesta-completion.sh
107
- # $ echo '[ -f ~/.nesta-completion.sh ] && source ~/.nesta-completion.sh' \
111
+ # $ echo '[ -f ~/.nesta-completion.sh ] && source ~/.nesta-completion.sh' \
108
112
  # >> ~/.bash_profile
109
113
  # $ source ~/.nesta-completion.sh
110
114
 
@@ -141,6 +145,58 @@ complete -F _nesta nesta
141
145
  EOF
142
146
  exit 0
143
147
  end
148
+
149
+ def self.zsh_completion
150
+ puts <<-EOF
151
+ # Zsh completion configuration for the nesta command.
152
+ #
153
+ # Install it with these commands:
154
+ #
155
+ # $ nesta --zsh-completion > <somewhere/in/your/$fpath>/nesta-completion.sh
156
+ #
157
+ # Source form somewhere in your $fpath
158
+
159
+ #compdef nesta
160
+
161
+
162
+ _nesta_content() {
163
+ content=(`ls content/pages/**/*`)
164
+ }
165
+
166
+
167
+ local -a _1st_arguments
168
+ _1st_arguments=(
169
+ 'new:Create a new Nesta project'
170
+ 'edit:Edit a document'
171
+ 'demo\:content:Install example pages in ./content-demo'
172
+ 'theme\:install:Install a theme from a git repository'
173
+ 'theme\:enable:Make the theme active, updating config.yml'
174
+ 'theme\:create:Makes a template for a new theme in ./themes'
175
+ )
176
+
177
+ local expl
178
+ local -a content
179
+
180
+ _arguments \
181
+ '(-h)'{-h,--help}'[Display usage]' \
182
+ '(-v)'{-v,--version}'[Display Nesta version]' \
183
+ '(--bash-completion)--bash-completion[Output command for Bash completion]' \
184
+ '(--zsh-completion)--zsh-completion[Output command for Zsh completion]' \
185
+ '*:: :->subcmds' && return 0
186
+
187
+ if (( CURRENT == 1 )); then
188
+ _describe -t commands "nesta subcommand" _1st_arguments
189
+ return
190
+ fi
191
+
192
+ case "$words[1]" in
193
+ edit)
194
+ _nesta_content
195
+ _wanted content expl 'all content' compadd -a content ;;
196
+ esac
197
+ EOF
198
+ exit 0
199
+ end
144
200
  end
145
201
  end
146
202