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
@@ -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