nesta 0.9.13 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -4,97 +4,102 @@ require File.expand_path('model_factory', File.dirname(__FILE__))
4
4
  describe "sitemap XML" do
5
5
  include RequestSpecHelper
6
6
  include ModelFactory
7
-
7
+
8
8
  before(:each) do
9
9
  stub_configuration
10
10
  @category = create_category do |path|
11
- mock_file_stat(:stub!, path, "3 Jan 2009, 15:07")
11
+ mock_file_stat(:stub, path, "3 Jan 2009, 15:07")
12
12
  end
13
13
  @article = create_article do |path|
14
- mock_file_stat(:stub!, path, "3 Jan 2009, 15:10")
14
+ mock_file_stat(:stub, path, "3 Jan 2009, 15:10")
15
+ end
16
+ skipped_page_definition = {
17
+ path: 'unlisted-page',
18
+ metadata: { 'flags' => 'skip-sitemap' }
19
+ }
20
+ @skipped = create_page(skipped_page_definition) do |path|
21
+ mock_file_stat(:stub, path, "3 Jan 2009, 15:07")
15
22
  end
16
23
  get "/sitemap.xml"
17
24
  end
18
-
25
+
19
26
  after(:each) do
20
27
  Nesta::FileModel.purge_cache
21
28
  remove_temp_directory
22
29
  end
23
-
30
+
24
31
  it "should render successfully" do
25
32
  last_response.should be_ok
26
33
  end
27
-
34
+
28
35
  it "should have a urlset tag" do
29
36
  namespace = "http://www.sitemaps.org/schemas/sitemap/0.9"
30
- body.should have_tag("/urlset[@xmlns=#{namespace}]")
37
+ assert_xpath "//urlset[@xmlns='#{namespace}']"
31
38
  end
32
-
39
+
33
40
  it "should reference the home page" do
34
- body.should have_tag("/urlset/url/loc", "http://example.org/")
41
+ assert_xpath "//urlset/url/loc", content: "http://example.org/"
35
42
  end
36
-
43
+
37
44
  it "should configure home page to be checked frequently" do
38
- body.should have_tag("/urlset/url") do |url|
39
- url.should have_tag("loc", "http://example.org/")
40
- url.should have_tag("changefreq", "daily")
41
- url.should have_tag("priority", "1.0")
42
- end
45
+ assert_xpath "//urlset/url/loc", content: "http://example.org/"
46
+ assert_xpath "//urlset/url/changefreq", content: "daily"
47
+ assert_xpath "//urlset/url/priority", content: "1.0"
43
48
  end
44
-
49
+
45
50
  it "should set the homepage lastmod from latest article" do
46
- body.should have_tag("/urlset/url") do |url|
47
- url.should have_tag("loc", "http://example.org/")
48
- url.should have_tag("lastmod", /^2009-01-03T15:10:00/)
49
- end
51
+ assert_xpath "//urlset/url/loc", content: "http://example.org/"
52
+ assert_xpath "//urlset/url/lastmod", content: "2009-01-03T15:10:00"
53
+ end
54
+
55
+ def test_url(path)
56
+ "http://example.org/#{path}"
50
57
  end
51
-
58
+
52
59
  it "should reference category pages" do
53
- body.should have_tag(
54
- "/urlset/url/loc", "http://example.org/#{@category.path}")
60
+ assert_xpath "//urlset/url/loc", content: test_url(@category.path)
55
61
  end
56
-
62
+
57
63
  it "should reference article pages" do
58
- body.should have_tag(
59
- "/urlset/url/loc", "http://example.org/#{@article.path}")
64
+ assert_xpath "//urlset/url/loc", content: test_url(@article.path)
65
+ end
66
+
67
+ it "should not include pages that have the skip-sitemap flag set" do
68
+ assert_not_xpath "//urlset/url/loc", content: test_url(@skipped.path)
60
69
  end
61
70
  end
62
71
 
63
72
  describe "sitemap XML lastmod" do
64
73
  include ModelFactory
65
74
  include RequestSpecHelper
66
-
75
+
67
76
  before(:each) do
68
77
  stub_configuration
69
78
  end
70
-
79
+
71
80
  after(:each) do
72
81
  remove_temp_directory
73
82
  Nesta::FileModel.purge_cache
74
83
  end
75
-
84
+
76
85
  it "should be set for file based page" do
77
86
  create_article do |path|
78
- mock_file_stat(:stub!, path, "3 January 2009, 15:37:01")
87
+ mock_file_stat(:stub, path, "3 January 2009, 15:37:01")
79
88
  end
80
89
  get "/sitemap.xml"
81
- body.should have_tag("url") do |url|
82
- url.should have_tag("loc", /my-article$/)
83
- url.should have_tag("lastmod", /^2009-01-03T15:37:01/)
84
- end
90
+ assert_selector("url loc:contains('my-article')")
91
+ assert_selector("url lastmod:contains('2009-01-03T15:37:01')")
85
92
  end
86
-
93
+
87
94
  it "should be set to latest page for home page" do
88
- create_article(:path => "article-1") do |path|
89
- mock_file_stat(:stub!, path, "4 January 2009")
95
+ create_article(path: "article-1") do |path|
96
+ mock_file_stat(:stub, path, "4 January 2009")
90
97
  end
91
- create_article(:path => "article-2") do |path|
92
- mock_file_stat(:stub!, path, "3 January 2009")
98
+ create_article(path: "article-2") do |path|
99
+ mock_file_stat(:stub, path, "3 January 2009")
93
100
  end
94
101
  get "/sitemap.xml"
95
- body.should have_tag("url") do |url|
96
- url.should have_tag("loc", "http://example.org/")
97
- url.should have_tag("lastmod", /^2009-01-04/)
98
- end
102
+ assert_selector("url loc:contains('http://example.org/')")
103
+ assert_selector("url lastmod:contains('2009-01-04')")
99
104
  end
100
105
  end
@@ -1,11 +1,9 @@
1
- require 'rubygems'
2
- require 'spec'
3
- require 'spec/interop/test'
1
+ require 'rspec'
4
2
  require 'rack/test'
5
- require 'rspec_hpricot_matchers'
6
3
  require 'sinatra'
7
-
8
- Test::Unit::TestCase.send :include, Rack::Test::Methods
4
+ require 'test/unit'
5
+ require 'webrat'
6
+ require 'webrat/core/matchers'
9
7
 
10
8
  module Nesta
11
9
  class App < Sinatra::Base
@@ -20,25 +18,25 @@ require File.expand_path('../lib/nesta/app', File.dirname(__FILE__))
20
18
  module ConfigSpecHelper
21
19
  def stub_yaml_config
22
20
  @config = {}
23
- Nesta::Config.stub!(:yaml_exists?).and_return(true)
24
- Nesta::Config.stub!(:yaml_conf).and_return(@config)
21
+ Nesta::Config.stub(:yaml_exists?).and_return(true)
22
+ Nesta::Config.stub(:yaml_conf).and_return(@config)
25
23
  end
26
24
 
27
25
  def stub_config_key(key, value, options = {})
28
26
  stub_yaml_config unless @config
29
- if options[:rack_env]
27
+ if options[:for_environment]
30
28
  @config['test'] ||= {}
31
29
  @config['test'][key] = value
32
30
  else
33
31
  @config[key] = value
34
32
  end
35
33
  end
36
-
34
+
37
35
  def stub_configuration(options = {})
38
36
  stub_config_key('title', 'My blog', options)
39
37
  stub_config_key('subtitle', 'about stuff', options)
40
38
  stub_config_key(
41
- 'content', temp_path('content'), options.merge(:rack_env => true))
39
+ 'content', temp_path('content'), options.merge(rack_env: true))
42
40
  end
43
41
  end
44
42
 
@@ -50,27 +48,44 @@ module TempFileHelper
50
48
  end
51
49
 
52
50
  def remove_temp_directory
53
- FileUtils.rm_r(TempFileHelper::TEMP_DIR, :force => true)
51
+ FileUtils.rm_r(TempFileHelper::TEMP_DIR, force: true)
54
52
  end
55
-
53
+
56
54
  def temp_path(base)
57
55
  File.join(TempFileHelper::TEMP_DIR, base)
58
56
  end
59
57
  end
60
58
 
61
- Spec::Runner.configure do |config|
62
- config.include(RspecHpricotMatchers)
63
-
59
+ RSpec.configure do |config|
64
60
  config.include(ConfigSpecHelper)
65
61
  config.include(TempFileHelper)
62
+ config.include(Rack::Test::Methods)
66
63
  end
67
64
 
68
65
  module RequestSpecHelper
66
+ include Webrat::Matchers
67
+
69
68
  def app
70
69
  Nesta::App
71
70
  end
72
-
71
+
73
72
  def body
74
73
  last_response.body
75
74
  end
75
+
76
+ def assert_xpath(*args)
77
+ body.should have_xpath(*args)
78
+ end
79
+
80
+ def assert_not_xpath(*args)
81
+ body.should_not have_xpath(*args)
82
+ end
83
+
84
+ def assert_selector(*args)
85
+ body.should have_selector(*args)
86
+ end
87
+
88
+ def assert_not_selector(*args)
89
+ body.should_not have_selector(*args)
90
+ end
76
91
  end
@@ -1,8 +1,11 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'nesta', '<%= Nesta::VERSION %>'
4
- <% if @options['heroku'] %>gem 'heroku'<% end %>
5
4
  <% if @options['vlad'] %>gem 'vlad', '2.1.0'
6
5
  gem 'vlad-git', '2.2.0'<% end %>
7
6
 
8
- # gem (RUBY_VERSION =~ /^1.9/) ? 'ruby-debug19': 'ruby-debug'
7
+ group :development do
8
+ gem 'mr-sparkle'
9
+ end
10
+
11
+ # gem 'debugger'
@@ -28,14 +28,6 @@ subtitle: "(change this text in config/config.yml)"
28
28
  #
29
29
  # disqus_short_name: mysite
30
30
 
31
- # cache
32
- # Set it to true if you'd like Nesta to cache your pages in ./public.
33
- # Useful if you're deploying Nesta with a proxy server such as Nginx,
34
- # but not in the least bit helpful if your pages are dynamic, or you're
35
- # deploying Nesta to Heroku.
36
- #
37
- cache: false
38
-
39
31
  # content
40
32
  # The root directory where nesta will look for your article files.
41
33
  # Should contain "pages" and "attachments" subdirectories that contain
@@ -54,14 +46,22 @@ content: content
54
46
  #
55
47
  # google_analytics_code: "UA-???????-?"
56
48
 
57
- # Overriding "cache" and "content" in production is recommended if you're
58
- # deploying Nesta to your own server (but see the deployment documentation
59
- # on the Nesta site). Setting google_analytics_code in production is
60
- # recommended regardless of how you're deploying (if you have a GA account!).
49
+ # read_more
50
+ # When the summary of an article is displayed on the home page, or
51
+ # on a category page, there is a link underneath the summary that
52
+ # points to the rest of the post. Use this value to customize the
53
+ # default link text. You can still override this value on a per-page
54
+ # basis with the 'Read more' metadata key.
55
+ #
56
+ # read_more: "Continue reading"
57
+
58
+ # Overriding "content" in production is recommended if you're deploying
59
+ # Nesta to your own server (but see the deployment documentation on the
60
+ # Nesta site). Setting google_analytics_code in production is recommended
61
+ # regardless of how you're deploying (if you have a GA # account!).
61
62
  #
62
63
  # Don't forget to uncomment the "production:" line too...
63
64
 
64
65
  # production:
65
- # cache: true
66
66
  # content: /var/apps/nesta/shared/content
67
67
  # google_analytics_code: "UA-???????-?"
@@ -38,10 +38,10 @@ namespace :vlad do
38
38
  # using a different app server in the call to Vlad.load in Rakefile.
39
39
  #
40
40
  desc "Deploy the code and restart the server"
41
- task :deploy => [:update, :start_app]
41
+ task deploy: [:update, :start_app]
42
42
 
43
43
  # If you use bundler to manage the installation of gems on your server
44
44
  # you can use this definition of the deploy task instead:
45
45
  #
46
- # task :deploy => [:update, :bundle, :start_app]
46
+ # task deploy: [:update, :bundle, :start_app]
47
47
  end
@@ -1 +1,3 @@
1
+ Link text: Home
2
+
1
3
  %section.articles= article_summaries(latest_articles)
@@ -8,7 +8,7 @@ module Nesta
8
8
  #
9
9
  # Put your assets in themes/<%= @name %>/public/<%= @name %>.
10
10
  #
11
- # use Rack::Static, :urls => ["/<%= @name %>"], :root => "themes/<%= @name %>/public"
11
+ # use Rack::Static, urls: ["/<%= @name %>"], root: "themes/<%= @name %>/public"
12
12
 
13
13
  helpers do
14
14
  # Add new helpers here.
@@ -0,0 +1,7 @@
1
+ <!DOCTYPE html>
2
+ %html(lang="en")
3
+ %head
4
+ %meta(charset="utf-8")
5
+ %title
6
+ %body
7
+ = yield
@@ -0,0 +1,3 @@
1
+ // Master Sass stylesheet
2
+ // http://sass-lang.com/
3
+
@@ -0,0 +1 @@
1
+ ~ @page.to_html(self)
@@ -3,8 +3,8 @@
3
3
  %title(type='text')= @title
4
4
  %generator(uri='http://nestacms.com') Nesta
5
5
  %id= atom_id
6
- %link(href="#{url('/articles.xml')}" rel='self')
7
- %link(href="#{url('/')}" rel='alternate')
6
+ %link(href="#{path_to('/articles.xml', :uri => true)}" rel='self')
7
+ %link(href="#{path_to('/', :uri => true)}" rel='alternate')
8
8
  %subtitle(type='text')= @subtitle
9
9
  - if @articles[0]
10
10
  %updated= @articles[0].date(:xmlschema)
@@ -19,7 +19,7 @@
19
19
  - @articles.each do |article|
20
20
  %entry
21
21
  %title= article.heading
22
- %link{ :href => url(article.path), :type => 'text/html', :rel => 'alternate' }
22
+ %link{ :href => path_to(article.path, :uri => true), :type => 'text/html', :rel => 'alternate' }
23
23
  %id= atom_id(article)
24
24
  %content(type='html')&= find_and_preserve(absolute_urls(article.body(self)))
25
25
  %published= article.date(:xmlschema)
@@ -1,4 +1,4 @@
1
- - if short_name = Nesta::Config.disqus_short_name
1
+ - if @page.receives_comments? && short_name = Nesta::Config.disqus_short_name
2
2
  #disqus_thread
3
3
  - if Sinatra::Application.environment == :development
4
4
  :javascript
@@ -1,5 +1,5 @@
1
1
  %nav.breadcrumb
2
- %a(href="#{url('/')}") Home
2
+ %a(href="#{path_to('/')}") Home
3
3
 
4
4
  #content
5
5
  %section(role="main")
@@ -1,3 +1,3 @@
1
1
  - title ||= "Atom feed"
2
2
  .feed
3
- %a(href="#{url('/articles.xml')}" title=title)= title
3
+ %a(href="#{path_to('/articles.xml')}" title=title)= title
@@ -2,20 +2,23 @@
2
2
  %html(lang="en")
3
3
  %head
4
4
  %meta(charset="utf-8")
5
+ %meta(content="width=device-width, initial-scale=1.0" name="viewport")
5
6
  - if @description
6
7
  %meta(name="description" content=@description)
7
8
  - if @keywords
8
9
  %meta(name="keywords" content=@keywords)
9
10
  %title= @title
11
+ %link(href='http://fonts.googleapis.com/css?family=Roboto+Slab:400,700' rel='stylesheet' type='text/css')
10
12
  <!--[if ! lte IE 6]><!-->
11
- %link(href="#{url('/css/master.css')}" media="screen" rel="stylesheet")
13
+ %link(href="#{path_to('/css/master.css')}" media="screen" rel="stylesheet")
14
+ - local_stylesheet_link_tag('local')
12
15
  <!--<![endif]-->
13
16
  /[if lte IE 6]
14
17
  %link(rel="stylesheet" href="http://universal-ie6-css.googlecode.com/files/ie6.1.1.css" media="screen, projection")
15
18
  /[if lt IE 9]
16
19
  %script(src="//html5shim.googlecode.com/svn/trunk/html5.js")
17
- - local_stylesheet_link_tag('local')
18
- %link(href="#{url('/articles.xml')}" rel="alternate" type="application/atom+xml")
20
+ %script(src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.1.0/respond.min.js")
21
+ %link(href="#{path_to('/articles.xml')}" rel="alternate" type="application/atom+xml")
19
22
  = haml :analytics, :layout => false
20
23
  %body
21
24
  #container
@@ -1,143 +1,138 @@
1
1
  @import "mixins.sass"
2
- @import "colors.sass"
3
-
4
- // Variables
5
-
6
- $content-width: 37em
7
-
8
- $border-style: 1px dashed $border-color
9
-
10
- // Reset
11
-
12
- *
13
- margin: 0
14
- padding: 0
15
-
16
- // Typography
17
-
18
- @mixin text-shadow
19
- text-shadow: 0 2px 3px #ddd
2
+ @import "normalize"
20
3
 
21
4
  body
22
- font: ($base-font * 1.05) Georgia, serif
23
- line-height: $vertical-rhythm
5
+ font: $size1 "Roboto Slab", serif
6
+ line-height: 1.6
24
7
  color: $base-color
25
8
 
9
+ div#container
10
+ position: relative
11
+ margin: 0 1em
12
+
26
13
  header[role=banner]
27
14
  h1,
28
15
  h2
29
16
  margin: 0
30
- line-height: 1.2em
31
17
  font-weight: normal
18
+
32
19
  h1
33
- font-size: 327%
34
- @include text-shadow
20
+ margin-top: 0.5em
21
+ font-size: $size2
22
+
35
23
  h2
36
24
  color: $meta-color
37
- font-size: 1em
25
+ font-size: $size0
26
+
27
+ footer.branding
28
+ padding-top: 2em
29
+
30
+ +respond-to(medium-screens)
31
+ div#container
32
+ margin: 0 auto
33
+ max-width: $measure
34
+
35
+ +respond-to(wide-screens)
36
+ div#container
37
+ max-width: $full-page-width
38
+
39
+ div#content
40
+ float: left
41
+ width: 37em
42
+
43
+ div#sidebar
44
+ float: right
45
+ width: $sidebar-width
46
+
47
+ footer.branding
48
+ clear: both
49
+
50
+ h1, h2, h3, h4
51
+ margin: 1em 0 0.5em
38
52
 
39
- h1, h2, h3, h4, h5, h6
40
- font-family: Georgia, serif
41
53
  h1
42
- @include adjust-font-size($h1-scale, 0.6, 0.4)
43
- font-weight: normal
54
+ font-size: $size4
44
55
  h2
45
- @include adjust-font-size($h2-scale, 1.5, 0.5)
46
- font-weight: normal
56
+ font-size: $size3
47
57
  h3
48
- @include adjust-font-size($h3-scale, 1.5, 0.5)
49
- font-weight: normal
58
+ font-size: $size2
50
59
  h4
51
- @include adjust-font-size($h4-scale, 2, 0)
60
+ font-size: $size2
52
61
 
53
62
  ol,
54
63
  p,
55
64
  pre,
56
65
  ul
57
- margin: 0
58
- margin-bottom: $base-vertical-margin
66
+ margin: 0 0 $vertical-margin
59
67
 
60
68
  li
61
- @include adjust-font-size(1, 0, 0)
69
+ margin: 0
62
70
 
63
71
  blockquote
64
- margin: $base-vertical-margin 0
65
- padding: 0 $base-vertical-margin
72
+ margin: $vertical-margin 0
73
+ padding: 0 $vertical-margin / 2
74
+ border-left: 5px solid $tint
66
75
 
67
76
  font-style: italic
68
77
  color: $base-color + #555
69
78
 
70
79
  pre
71
- padding: ($vertical-rhythm / 2) 1em
80
+ display: block
81
+ width: auto
82
+
83
+ padding: 0.5em
84
+
85
+ font-size: $size0
86
+
72
87
  overflow: auto
88
+ white-space: pre
89
+
90
+ code
91
+ font-size: 1em
92
+
93
+ code
94
+ font-size: $size0
73
95
 
74
96
  img
75
97
  border: none
76
98
 
77
99
  nav.breadcrumb
78
- margin-top: $vertical-rhythm
100
+ margin-top: $vertical-margin
79
101
  color: $meta-color
80
- padding: 0.5em 0
81
102
 
82
103
  font-size: 0.909em
83
104
 
84
- // Layout
105
+ ul
106
+ margin: 0
107
+ padding: 0
85
108
 
86
- article, aside, footer, header, nav, section
87
- display: block
109
+ li
110
+ display: inline
111
+ list-style: none
88
112
 
89
- div#container
90
- width: 54em
91
- margin: 0 auto
92
- padding: 1em 1em 0 1em
113
+ &::before
114
+ content: " > "
93
115
 
94
- div#content
95
- position: relative
96
- width: $content-width
97
- float: left
98
- padding: 1px 0
116
+ &:last-child
117
+ display: block
118
+ margin-left: 1em
99
119
 
100
- div#sidebar
101
- width: 12em
102
- margin-left: 40em
103
- padding: 0 1em
104
-
105
- footer.branding
106
- clear: both
107
- color: $meta-color
108
- @include adjust-font-size($base-scale)
109
- p
110
- width: $content-width
111
- margin: 0
112
- padding: 1em 0
120
+ +respond-to(medium-screens)
121
+ display: inline
122
+ margin: 0
113
123
 
114
- // The visuals
124
+ &:first-child
125
+ margin-left: 0
115
126
 
116
127
  a
117
- border-bottom: 1px dotted $link-color
118
- text-decoration: none
119
128
  color: $link-color
120
- @include transition(color 0.25s 0 ease)
129
+ +transition(color 0.25s 0 ease)
121
130
  &:visited
122
131
  color: $visited-link-color
123
- border-bottom-color: $visited-link-color
124
132
  &:hover
125
133
  color: $hover-link-color
126
- border-bottom-color: $hover-link-color
127
134
  &:active
128
135
  color: $active-link-color
129
- border-bottom-color: $active-link-color
130
-
131
- nav.breadcrumb
132
- ul
133
- margin: 0
134
- li
135
- display: inline
136
- list-style: none
137
- &::after
138
- content: " > "
139
- &:last-child::after
140
- content: ""
141
136
 
142
137
  nav.breadcrumb,
143
138
  nav.categories,
@@ -150,51 +145,19 @@ article p.meta
150
145
  a:hover
151
146
  color: $hover-link-color
152
147
 
153
- nav.categories,
154
- div.feed,
155
- article p.meta
156
- a
157
- border-bottom-color: $background-color
158
-
159
- article p.meta
160
- a
161
- @include transition(border-bottom-color 0.5s 0 ease)
162
- a:hover
163
- border-bottom-color: $hover-link-color
164
-
165
- article h1 a
166
- border-bottom: none
167
-
168
- body
169
- background: $background-color
170
-
171
148
  article
172
149
  img
173
150
  max-width: 100%
174
- margin-bottom: $base-vertical-margin
175
-
176
- code,
177
- pre
178
- background-color: $tint
179
- code
180
- padding: 1px 3px
181
- pre
182
- border-left: $border-style
183
- background-color: $tint
184
- code
185
- padding: 0
186
151
 
187
152
  footer
188
- border-top: $border-style
189
153
  p.meta
190
- @include adjust-font-size(0.909, 0.1, 1.9)
191
154
  font-style: italic
192
155
  color: $meta-color
193
156
 
194
157
  // Pages of content
195
158
  article[role="main"]
196
- h1, h2
197
- @include text-shadow
159
+ & > h1
160
+ font-weight: normal
198
161
 
199
162
  div#disqus_thread
200
163
  img
@@ -207,40 +170,87 @@ section.pages,
207
170
  section.articles
208
171
  & > ol
209
172
  margin-left: 0
173
+ padding-left: 0
210
174
  li
211
175
  position: relative
212
176
  list-style: none
177
+
213
178
  article
179
+ h1
180
+ margin-bottom: 0.2em
181
+
182
+ font-size: $size3
183
+ font-weight: normal
214
184
  ol li
215
185
  list-style: decimal
216
186
  ul li
217
187
  list-style: disc
218
188
 
219
- header[role=main] h1
220
- @include adjust-font-size($h1-scale, 1.5, 0.5)
221
189
  header h1
222
- @include adjust-font-size($h2-scale, 1.5, 0.5)
190
+ font-size: $size3
223
191
 
224
192
  article
225
193
  h1
226
- text-shadow: none
194
+ a
195
+ text-decoration: none
227
196
  p.read_more
228
- @include adjust-font-size(1, 0, 0)
229
- margin-top: -$base-vertical-margin
197
+ font-size: $size1
198
+ margin: -1em 0 0 0
230
199
  footer
231
200
  border-top: none
232
201
 
233
- nav.categories
202
+ font-size: $size0
203
+
204
+ section.articles
205
+ border-top: 2px solid $tint
206
+
207
+ &:first-child
208
+ border-top: none
209
+
210
+ & > header h1
211
+ color: $meta-color
212
+ font-weight: normal
213
+
214
+ div#sidebar
215
+ border-top: 2px solid $tint
216
+
234
217
  h1
235
- @include adjust-font-size(1, 2, 0)
218
+ font-size: $size3
236
219
 
237
- ul.menu
220
+ ol, ul
221
+ padding-left: 0
238
222
  list-style: none
239
- ul
240
- list-style: disc
241
- margin: 0 0 0 1.25em
242
- & > ul
243
- @include adjust-font-size(0.909, 0, 0)
223
+
224
+ li
225
+ display: inline
226
+
227
+ &::after
228
+ content: ' / '
229
+ &:last-child
230
+ &::after
231
+ content: ''
232
+
233
+ +respond-to(medium-screens)
234
+ margin-top: 1.4em
235
+
236
+ p
237
+ font-size: $size0
238
+
239
+ +respond-to(wide-screens)
240
+ border-top: none
241
+
242
+ color: $meta-color
243
+
244
+ h1
245
+ font-size: $size2
246
+ font-weight: normal
247
+
248
+ ol, ul
249
+ li
250
+ display: block
251
+
252
+ &::after
253
+ content: ''
244
254
 
245
255
  div.feed
246
- margin: $base-vertical-margin 0
256
+ margin: $vertical-margin 0