bookends 0.6.0 → 2.0.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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/README.md +28 -24
  4. data/Rakefile +7 -3
  5. data/bin/bookends +5 -0
  6. data/bookends.gemspec +5 -2
  7. data/fixtures/dummy-jekyll/README.md +64 -0
  8. data/fixtures/dummy-jekyll/_config.yml +8 -0
  9. data/fixtures/dummy-jekyll/_layouts/default.html +118 -0
  10. data/fixtures/dummy-jekyll/_layouts/post.html +14 -0
  11. data/fixtures/dummy-jekyll/_sass/_base.scss +478 -0
  12. data/fixtures/dummy-jekyll/_sass/_google-cse.scss +372 -0
  13. data/fixtures/dummy-jekyll/_sass/_header.scss +780 -0
  14. data/fixtures/dummy-jekyll/_sass/_legacy.scss +567 -0
  15. data/fixtures/dummy-jekyll/_sass/_menu-icon.scss +68 -0
  16. data/fixtures/dummy-jekyll/_sass/_mixins.scss +12 -0
  17. data/fixtures/dummy-jekyll/_sass/_search.scss +51 -0
  18. data/{lib/generators/bookends/install/templates/footer.scss → fixtures/dummy-jekyll/_sass/bookends/_footer.scss} +0 -0
  19. data/fixtures/dummy-jekyll/_sass/mixins/_background-image.scss +48 -0
  20. data/fixtures/dummy-jekyll/_sass/mixins/_border-radius.scss +22 -0
  21. data/fixtures/dummy-jekyll/_sass/mixins/_box-sizing.scss +4 -0
  22. data/fixtures/dummy-jekyll/_sass/mixins/_hide-text.scss +5 -0
  23. data/fixtures/dummy-jekyll/_sass/mixins/_hidpi.scss +10 -0
  24. data/fixtures/dummy-jekyll/_sass/mixins/_linear-gradient.scss +41 -0
  25. data/fixtures/dummy-jekyll/_sass/mixins/_prefixer.scss +49 -0
  26. data/fixtures/dummy-jekyll/_sass/mixins/_responsiveness.scss +129 -0
  27. data/fixtures/dummy-jekyll/_sass/mixins/_retina-image.scss +31 -0
  28. data/fixtures/dummy-jekyll/_sass/mixins/_size.scss +44 -0
  29. data/fixtures/dummy-jekyll/_sass/mixins/_transition.scss +34 -0
  30. data/fixtures/dummy-jekyll/_sass/mixins/_triangle.scss +45 -0
  31. data/fixtures/dummy-jekyll/app.json +15 -0
  32. data/fixtures/dummy-jekyll/bin/from-gdoc +3 -0
  33. data/fixtures/dummy-jekyll/bin/platform-setup +15 -0
  34. data/fixtures/dummy-jekyll/feed.xml +34 -0
  35. data/fixtures/dummy-jekyll/index.html +40 -0
  36. data/fixtures/dummy-jekyll/static.json +3 -0
  37. data/fixtures/dummy-rails/README.md +9 -0
  38. data/fixtures/dummy-rails/Rakefile +6 -0
  39. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-book.eot +0 -0
  40. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-book.svg +400 -0
  41. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-book.ttf +0 -0
  42. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-book.woff +0 -0
  43. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-medium.eot +0 -0
  44. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-medium.svg +416 -0
  45. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-medium.ttf +0 -0
  46. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-medium.woff +0 -0
  47. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-regular.eot +0 -0
  48. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-regular.svg +416 -0
  49. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-regular.ttf +0 -0
  50. data/fixtures/dummy-rails/app/assets/fonts/bentonsans-regular.woff +0 -0
  51. data/fixtures/dummy-rails/app/assets/images/.keep +0 -0
  52. data/{lib/generators/bookends/install/templates/footer_images → fixtures/dummy-rails/app/assets/images/bookends/footer}/footer_sprite.png +0 -0
  53. data/{lib/generators/bookends/install/templates/footer_images → fixtures/dummy-rails/app/assets/images/bookends/footer}/footer_sprite@2x.png +0 -0
  54. data/{lib/generators/bookends/install/templates/footer_images → fixtures/dummy-rails/app/assets/images/bookends/footer}/salesforce_heroku_gray.png +0 -0
  55. data/fixtures/dummy-rails/app/assets/javascripts/application.js +15 -0
  56. data/fixtures/dummy-rails/app/assets/stylesheets/application.css.scss +11 -0
  57. data/fixtures/dummy-rails/app/controllers/application_controller.rb +5 -0
  58. data/fixtures/dummy-rails/app/controllers/concerns/.keep +0 -0
  59. data/fixtures/dummy-rails/app/controllers/pages_controller.rb +5 -0
  60. data/fixtures/dummy-rails/app/helpers/application_helper.rb +2 -0
  61. data/fixtures/dummy-rails/app/mailers/.keep +0 -0
  62. data/fixtures/dummy-rails/app/models/.keep +0 -0
  63. data/fixtures/dummy-rails/app/models/concerns/.keep +0 -0
  64. data/fixtures/dummy-rails/app/views/layouts/application.html.erb +16 -0
  65. data/fixtures/dummy-rails/app/views/pages/home.html.erb +1 -0
  66. data/fixtures/dummy-rails/bin/bundle +3 -0
  67. data/fixtures/dummy-rails/bin/rails +4 -0
  68. data/fixtures/dummy-rails/bin/rake +4 -0
  69. data/fixtures/dummy-rails/bin/setup +29 -0
  70. data/fixtures/dummy-rails/config/application.rb +34 -0
  71. data/fixtures/dummy-rails/config/boot.rb +5 -0
  72. data/fixtures/dummy-rails/config/database.yml +25 -0
  73. data/fixtures/dummy-rails/config/environment.rb +5 -0
  74. data/fixtures/dummy-rails/config/environments/development.rb +41 -0
  75. data/fixtures/dummy-rails/config/environments/production.rb +79 -0
  76. data/fixtures/dummy-rails/config/environments/test.rb +42 -0
  77. data/fixtures/dummy-rails/config/initializers/assets.rb +11 -0
  78. data/fixtures/dummy-rails/config/initializers/backtrace_silencers.rb +7 -0
  79. data/fixtures/dummy-rails/config/initializers/cookies_serializer.rb +3 -0
  80. data/fixtures/dummy-rails/config/initializers/filter_parameter_logging.rb +4 -0
  81. data/fixtures/dummy-rails/config/initializers/inflections.rb +16 -0
  82. data/fixtures/dummy-rails/config/initializers/mime_types.rb +4 -0
  83. data/fixtures/dummy-rails/config/initializers/session_store.rb +3 -0
  84. data/fixtures/dummy-rails/config/initializers/wrap_parameters.rb +14 -0
  85. data/fixtures/dummy-rails/config/locales/en.yml +23 -0
  86. data/fixtures/dummy-rails/config/routes.rb +6 -0
  87. data/fixtures/dummy-rails/config/secrets.yml +22 -0
  88. data/fixtures/dummy-rails/config.ru +4 -0
  89. data/fixtures/dummy-rails/db/development.sqlite3 +0 -0
  90. data/fixtures/dummy-rails/lib/assets/.keep +0 -0
  91. data/fixtures/dummy-rails/log/.keep +0 -0
  92. data/fixtures/dummy-rails/log/development.log +1893 -0
  93. data/fixtures/dummy-rails/public/404.html +67 -0
  94. data/fixtures/dummy-rails/public/422.html +67 -0
  95. data/fixtures/dummy-rails/public/500.html +66 -0
  96. data/fixtures/dummy-rails/public/favicon.ico +0 -0
  97. data/lib/bookends/cli.rb +88 -0
  98. data/lib/bookends/config/framework.rb +24 -0
  99. data/lib/bookends/config/turbolinks.rb +18 -0
  100. data/lib/bookends/file_actions.rb +13 -0
  101. data/lib/bookends/jekyll_handler.rb +21 -0
  102. data/lib/bookends/rails_handler.rb +30 -0
  103. data/lib/{generators/bookends/install/templates/footer.html.erb → bookends/templates/footer.html} +18 -18
  104. data/lib/bookends/templates/footer.scss +403 -0
  105. data/lib/bookends/templates/footer_images/footer_sprite.png +0 -0
  106. data/lib/bookends/templates/footer_images/footer_sprite@2x.png +0 -0
  107. data/lib/bookends/templates/footer_images/salesforce.png +0 -0
  108. data/lib/bookends/templates/newsletter-init-turbolinks.js +6 -0
  109. data/lib/bookends/templates/newsletter-init.js +6 -0
  110. data/lib/{generators/bookends/install → bookends}/templates/newsletter.js +0 -4
  111. data/lib/bookends/version.rb +1 -1
  112. data/lib/bookends.rb +1 -1
  113. metadata +138 -11
  114. data/lib/generators/bookends/install/install_generator.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0afe580982cefaaaf366a337b970d463e012a6de
4
- data.tar.gz: 7310cdefffb24ae207aa3e133c5cdf8246f7e468
3
+ metadata.gz: 155c86552c822026db6fc2df938b995f7b18eb78
4
+ data.tar.gz: 0cbdea32aa3fe30b3621e103006ac74e3e5c9ba9
5
5
  SHA512:
6
- metadata.gz: b65d2c5be5360dc30775c6702dfa156ed6117b4c77ffd53b1068b8a0465412387f25a87904e004e5ff8e1e2eec880db293e57392d9ca01b96b79203760627bc0
7
- data.tar.gz: cddf3716609911800f7a7507383e8c62ac1afb0c0ea56bc80c6f60a15d876d89c25841399c0152acc6e745600ec4e9ebd8cae0c156f38a2945bca0bc0097241e
6
+ metadata.gz: a863a62527004f7a9195c10d2cdc6b7a7e7cffc4948f6a8c30d8ef05096965261c94c8ae4a0917ef25f4335b13343cda6ec79ca40d388fd8ca33e6fa43e5b653
7
+ data.tar.gz: 4f21b39d2ef8a6c34442350f7104962787bf6420601d0ee3417e54a6ddbb5a775222f957c59bf665b1def240cc7c9f989d86c012367b9aa02bc7b4a9f6303d74
data/.gitignore CHANGED
@@ -11,3 +11,6 @@
11
11
  .ruby-gemset
12
12
  /spec/dummy/tmp/
13
13
  /spec/dummy/log/
14
+ /fixtures/dummy-rails/tmp/
15
+ /fixtures/dummy-rails/log/
16
+ .DS_Store
data/README.md CHANGED
@@ -10,7 +10,7 @@ Bookends assumes the presence of:
10
10
  Add this line to your application's Gemfile:
11
11
 
12
12
  ```ruby
13
- gem 'bookends'
13
+ gem 'bookends', group: :development
14
14
  ```
15
15
 
16
16
  And then execute:
@@ -19,17 +19,22 @@ And then execute:
19
19
 
20
20
  ## Usage
21
21
 
22
- * `rails g bookends:install`
23
- * add `@import 'bookends/footer';` to your application.scss
24
- * add `<%= render 'bookends/footer' %>` to your layout where you want the footer.
25
- * ensure that your JavaScript manifest includes the bookends JavaScript
26
- * e.g. `//= require_tree ./bookends`
22
+ $ bookends install
23
+
24
+ ## Sites using bookends
25
+ Please make sure the owners of the following properties are apprised of changes
26
+ to bookends:
27
+
28
+ * [www](https://github.com/heroku/www)
29
+ * [blog](https://github.com/heroku/blog)
30
+ * [engineering](https://github.com/heroku/engineering)
31
+ * [elements](https://github.com/heroku/elements)
27
32
 
28
33
  ## Development
29
34
 
30
35
  ### Spin up
31
36
  After checking out the repo, run `bin/setup` to install dependencies. Then, run
32
- `rake rspec` to run the tests.
37
+ `rake` to run the tests.
33
38
 
34
39
  ### Install and release
35
40
  To install this gem onto your local machine, run `bundle exec rake install`. To
@@ -40,24 +45,23 @@ git commits and tags, and push the `.gem` file to
40
45
 
41
46
  See all rake tasks with `rake -T`
42
47
 
43
- ### Working on the gem
44
- ```
45
- $ cd spec/dummy
46
- $ rails s
47
- $ open http://localhost:3000
48
- ```
49
- From there you can edit the files in
50
- `lib/generators/bookends/install/templates`. Note that images will have to be
51
- copied over to the dummy app in `/spec`. Also note
52
- `spec/dummy/config/application.rb` adds directories from lib into the dummy
53
- app's load path. Add more directories as needed.
54
-
55
48
  ### Testing it in an app locally
56
- 1. `gem 'bookends', path: 'path/to/local/copy` in the other application's Gemfile
57
- 2. `bundle install` from the other application
58
- 3. `rails g bookends:install` from the other application
59
- 4. boot up the other application
60
- 5. If you make changes to bookends, make sure to run the installer from step 3.
49
+ #### Rails version
50
+ 1. `gem 'bookends', path: 'path/to/local/copy` in the Rails application's Gemfile
51
+ 2. `bundle install` from the Rails application
52
+ 3. `bookends install` from the Rails application
53
+ 4. boot up the Rails application
54
+ 5. If you make changes to Bookends's templates, make sure to run the installer from step 3.
55
+
56
+ #### Jekyll version
57
+ 1. `gem install bookends --local ../bookends/pkg/bookends-<latest_pkg>` from the
58
+ root of the Jekyll project.
59
+ * Run `rake build` from bookends if there are no `*.gem` files in
60
+ `bookends/pkg/`
61
+ 2. `bundle install` from the Jekyll application
62
+ 3. `bookends install` from the Jekyll application
63
+ 4. boot up the Jekyll application
64
+ 5. If you make changes to Bookends's templates, make sure to run the installer from step 3.
61
65
 
62
66
  ## Contributing
63
67
 
data/Rakefile CHANGED
@@ -1,6 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
2
+ require 'rubygems'
3
+ require 'cucumber'
4
+ require 'cucumber/rake/task'
3
5
 
4
- RSpec::Core::RakeTask.new(:spec)
6
+ Cucumber::Rake::Task.new(:features) do |t|
7
+ t.cucumber_opts = "features --format pretty"
8
+ end
5
9
 
6
- task :default => :spec
10
+ task :default => :features
data/bin/bookends ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/bookends/cli'
4
+
5
+ Bookends::CLI.start
data/bookends.gemspec CHANGED
@@ -14,10 +14,12 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://www.heroku.com"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.bindir = "exe"
18
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
17
+ spec.bindir = "bin"
18
+ spec.executables = %w(bookends)
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_runtime_dependency "thor", "~> 0.19"
22
+
21
23
  spec.add_development_dependency "rails", ">= 3.2.22"
22
24
  spec.add_development_dependency "sass-rails"
23
25
  spec.add_development_dependency "bundler", "~> 1.10"
@@ -25,4 +27,5 @@ Gem::Specification.new do |spec|
25
27
  spec.add_development_dependency "rspec"
26
28
  spec.add_development_dependency "sqlite3"
27
29
  spec.add_development_dependency "jquery-rails"
30
+ spec.add_development_dependency "aruba", "~> 0.11"
28
31
  end
@@ -0,0 +1,64 @@
1
+ # Writing a post
2
+
3
+ As much or as little support as you'd like is available in writing a post. If you prefer less support in writing a post you can begin with simply an idea. To begin to with an idea visit the [Trello board](https://trello.com/b/KkLCAvMg/engineering-blog) and add your idea there. From there you can get support to work on an outline and draft and test it as we prepare to ship.
4
+
5
+ If you already have a concrete idea and simply are ready to ship it. Then:
6
+
7
+ 1. Prep it to post as described below
8
+ 1. Add it to the [Trello board](https://trello.com/b/5tmlTvpy/engineering-blog) as a draft, and mentioned craig
9
+ 1. Include appropriate details of whose seen it and what feedback you've gotten.
10
+
11
+ # Prepping a post for publishing
12
+
13
+ 1. Clone this repo
14
+ 1. Create a new branch
15
+ 1. Add your post to `_posts`. It should be a [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) file.
16
+ Name the file with the date YYYY-MM-DD at the front, and with the '.md' extension.
17
+ 1. Run `jekyll serve` and preview your post.
18
+ 1. Push your branch to github and submit a PR.
19
+ 1. Craig will review and publish.
20
+
21
+ ### Local Setup and Editing
22
+
23
+ ```console
24
+ $ gem install jekyll
25
+ $ jekyll serve
26
+ $ open http://127.0.0.1:4000
27
+ $ mate public
28
+ ```
29
+
30
+ Use `from-gdoc` if pasting from a Google Doc:
31
+
32
+ ```console
33
+ $ paste | bin/from-gdoc > _posts/2014-05-my-slug.md
34
+ ```
35
+
36
+ ### Platform Setup
37
+
38
+ ```console
39
+ $ export DEPLOY=... # production/staging/you
40
+ $ bin/platform-setup
41
+ ```
42
+
43
+ ### Updating Syntax Highlighting Assets
44
+
45
+ Select the the relevant items from the
46
+ [Prism](http://prismjs.com/download.html) site and update
47
+ `assets/prism.{js,css}` accordingly.
48
+
49
+ #### Prism lanaguge support selections
50
+ * markup
51
+ * css
52
+ * clike
53
+ * ruby
54
+ * docker
55
+ * elixir
56
+ * erlang
57
+ * git
58
+ * go
59
+ * java
60
+ * php
61
+ * python
62
+ * scss
63
+ * sql
64
+ * yaml
@@ -0,0 +1,8 @@
1
+ title: Heroku Engineering Blog
2
+ description: ""
3
+ baseurl: ""
4
+ url: "http://engineering.heroku.com"
5
+ markdown: kramdown
6
+ kramdown:
7
+ input: GFM
8
+ google_tag_manager_account: GTM-JD26
@@ -0,0 +1,118 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ {% include head.html %}
4
+
5
+ <body>
6
+ {% if site.google_tag_manager_account != '' %}
7
+ <noscript><iframe src="//www.googletagmanager.com/ns.html?id={{ site.google_tag_manager_account }}">
8
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
9
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
10
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
11
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
12
+ '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
13
+ })(window,document,'script','dataLayer','{{ site.google_tag_manager_account }}');</script>
14
+ {% endif %}
15
+
16
+ <header id="header">
17
+ <div id="navigation" role="navigation">
18
+ <span class="mobile-nav">
19
+ Show nav
20
+ <span></span>
21
+ <span></span>
22
+ <span></span>
23
+ <span></span>
24
+ </span>
25
+
26
+ <div class="wrapper wrapper-full">
27
+ <h1 id="logo">
28
+ <a href="https://www.heroku.com/home">Heroku</a>
29
+ </h1>
30
+
31
+ <div class="nav-wrapper">
32
+
33
+ <ul class="main-nav">
34
+ <li class="has-dropdown">
35
+ <a href="https://www.heroku.com/platform">Products</a>
36
+ <ul class="dropdown">
37
+ <li><a href="https://www.heroku.com/platform" class="platform">Heroku Platform</a></li>
38
+ <li><a href="https://www.heroku.com/postgres" class="postgres">Heroku Postgres</a></li>
39
+ <li><a href="https://www.heroku.com/redis" class="redis">Heroku Redis</a></li>
40
+ <li><a href="https://www.heroku.com/connect" class="connect">Heroku Connect</a></li>
41
+ <li><a href="https://www.heroku.com/enterprise" class="enterprise">Heroku Enterprise</a></li>
42
+ </ul>
43
+ </li>
44
+ <li class="has-dropdown">
45
+ <a href="https://elements.heroku.com/">Elements</a>
46
+ <ul class="dropdown">
47
+ <li><a href="https://elements.heroku.com/addons" class="addons">Add-ons</a></li>
48
+ <li><a href="https://elements.heroku.com/buttons" class="buttons">Buttons</a></li>
49
+ <li><a href="https://elements.heroku.com/buildpacks" class="buildpacks">Buildpacks</a></li>
50
+ </ul>
51
+ </li>
52
+ <li><a href="https://www.heroku.com/pricing">Pricing</a></li>
53
+ <li><a href="https://devcenter.heroku.com">Documentation</a></li>
54
+ <li><a href="https://www.heroku.com/support">Support</a></li>
55
+
56
+ <li class="has-dropdown">
57
+ <a href="#" class="more">More</a>
58
+ <div class="dropdown more">
59
+ <section class="more-resources">
60
+ <span class="more-title">Additional Resources</span>
61
+ <ul>
62
+ <li><a href="https://www.heroku.com/what">What is Heroku?</a></li>
63
+ <li><a href="https://www.heroku.com/help">Help Center</a></li>
64
+ <li><a href="https://www.heroku.com/customers">Customers</a></li>
65
+ <li><a href="https://www.heroku.com/careers">Careers</a></li>
66
+ </ul>
67
+ </section>
68
+ <section class="more-languages">
69
+ <span class="more-title">Languages</span>
70
+ <ul>
71
+ <li><a href="https://www.heroku.com/node">Node</a></li>
72
+ <li><a href="https://www.heroku.com/ruby">Ruby</a></li>
73
+ <li><a href="https://www.heroku.com/java">Java</a></li>
74
+ <li><a href="https://www.heroku.com/php">PHP</a></li>
75
+ <li><a href="https://www.heroku.com/python">Python</a></li>
76
+ <li><a href="https://www.heroku.com/go">Go</a></li>
77
+ <li><a href="https://www.heroku.com/scala">Scala</a></li>
78
+ <li><a href="https://www.heroku.com/clojure">Clojure</a></li>
79
+ </ul>
80
+ </section>
81
+ <section id="more-blog" class="more-blog">
82
+ <span class="more-title">Heroku Blog</span>
83
+ <h3><a class="js-blog-link" href="https://blog.heroku.com">Heroku Blog</a></h3>
84
+ <p class="js-blog-date"></p>
85
+ <p class="js-blog-content">Find out what's new with Heroku on our blog.</p>
86
+ <a href="https://blog.heroku.com" class="button btn-default btn-sm btn-inline">Visit Blog</a>
87
+ </section>
88
+ </div>
89
+ </li>
90
+ </ul>
91
+
92
+ <ul class="tool-nav">
93
+ <li>
94
+ <form action="https://blog.heroku.com/search" class="site-search" id="site-search" method="get">
95
+ <div class="gsc-input">
96
+ <input name="utf8" type="hidden" value="✓">
97
+ <input autocomplete="off" type="text" name="q" title="search" class="gsc-input" style="width: 100%; padding: 0px; border: none; margin: -0.0625em 0px 0px; height: 1.25em; outline: none;" dir="ltr" spellcheck="false">
98
+ <span class="gsc-search-button">
99
+ <input type="submit" class="search-button">
100
+ </span>
101
+ </div>
102
+ </form>
103
+ </li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </header>
109
+
110
+ <div class="container-fluid">
111
+ {{ content }}
112
+ </div>
113
+
114
+ {% include bookends/footer.html %}
115
+ {% include body-close.html %}
116
+ </body>
117
+
118
+ </html>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>{{ page.title }}</h1>
6
+ <div class="byline">
7
+ {{ page.date | date: "%B %-d, %Y" }}
8
+
9
+ {% if page.author_name %}
10
+ by <address class="author"><a rel="author" href="{{ page.author_url }}">{{ page.author_name }}</a></address>
11
+ {% endif %}
12
+ </div>
13
+
14
+ {{ content }}