STATIC SITES SECTION
What is static site generation? - ANSWERS-Using a program to
produce HTML pages
(kind of like compiling programs)
Middleman
what are the source files used in SSG? - ANSWERS-.md
.erb
.scss
What is Middleman? - ANSWERS-A ruby Gem
the project is its own directory
lots of subdirectories for css, images, etc
Compile the source files like a program
can then copy to any location
What are the three benefits of using a program for Static Site
Generation? - ANSWERS-1. Code reuse and single point of control
(visual identity)
2. Authoring of content in a language that is more human-friendly
(improved syntax)
,3. Parameterized generation of markup and content (content
generation)
Describe Visual Identity (code reuse/single POC) Motivation -
ANSWERS--Having common headers and footers and making the
whole website have a base design for every page
-duplicated code ruins single POC
-Solution: putting common HTML in one file (a partial) and every
page includes it
What is ERb? - ANSWERS-Embedded Ruby
-things like <% code %> <%= expr %> and <%# text %>
How to generate a site - ANSWERS-save source files as html.erb
>> bundle exec middleman build
this then makes them .html
what is a partial - ANSWERS-a document fragment included in other
documents
-include in template as <%= partial "navigation" %>
what is special about naming a partial? - ANSWERS-they always start
with _ and end in .erb still (no html)
How to customize arguments with a partial - ANSWERS-in the
normal page when you call the partial:
, <%= partial "banner", :locals => { :name => "Syllabus", :amount =>
34 } %>
in the partial file:
<h3> ,%= name %> </h3>
<p> Costs <%= "$#{amount}.00" %></p>
What is Layout - ANSWERS-It is a file that can make a consistent
structure across every page in a website
How do you label where there's page specific stuff in Layout.erb? -
ANSWERS-<%= yield =>
How do you fix the issue of using a layout when each page needs a
diff <title>? - ANSWERS-Ruby variable current_page
ie: current_page.path
So in the actual page file you put:
<title><%= current_page.data.title %> </title>
and in the layout.erb:
---
title: "Contact Info"
---