bookends 0.6.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 }}