\ No newline at end of file
diff --git a/_includes/callout.html b/_includes/callout.html
new file mode 100644
index 0000000..d492b18
--- /dev/null
+++ b/_includes/callout.html
@@ -0,0 +1 @@
+
{% endif %}
diff --git a/_includes/editable.html b/_includes/editable.html
new file mode 100644
index 0000000..8d37c9b
--- /dev/null
+++ b/_includes/editable.html
@@ -0,0 +1,65 @@
+
+
+
diff --git a/_includes/figure.html b/_includes/figure.html
new file mode 100644
index 0000000..f7b7b39
--- /dev/null
+++ b/_includes/figure.html
@@ -0,0 +1,11 @@
+{% comment %}
+Usage:
+include figure.html
+ src="/assets/images/mycat.jpg"
+ max-width = "300px" <---if you want to restrict size on desktop
+ align = "float-md-end" <--- use any of the values in https://getbootstrap.com/docs/5.0/utilities/float/#responsive, float-md-end to right-align a figure
+ alt="An orange kitten looks at the camera with utter disbelief" <--required
+ caption="He's orange, he can't help it"
+{% endcomment %}
+
+
diff --git a/_includes/global-footer.html b/_includes/global-footer.html
new file mode 100644
index 0000000..937bd31
--- /dev/null
+++ b/_includes/global-footer.html
@@ -0,0 +1,83 @@
+
+
+
diff --git a/_includes/google_analytics.html b/_includes/google_analytics.html
new file mode 100755
index 0000000..56b2ee8
--- /dev/null
+++ b/_includes/google_analytics.html
@@ -0,0 +1,6 @@
+
+
+{% if site.google_analytics %}
+
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/head.html b/_includes/head.html
new file mode 100644
index 0000000..8e7557f
--- /dev/null
+++ b/_includes/head.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+{{ page.title }} | {{ site.site_title }}
+
+
+
+
+
+
+{% for js in page.customjs %}
+
+{% endfor %}
+{% for css in page.customcss %}
+
+{% endfor %}
+
+
+
+
+
diff --git a/_includes/head_print.html b/_includes/head_print.html
new file mode 100755
index 0000000..e69de29
diff --git a/_includes/hero-image.html b/_includes/hero-image.html
index d32b4da..8a006b4 100644
--- a/_includes/hero-image.html
+++ b/_includes/hero-image.html
@@ -1,11 +1,39 @@
-
-
- {% if include.caption-overlay == true %}
-
- {% else %}
-
- {% endif %}
-
{{ include.caption-header }}
-
{{ include.caption-text }}
-
-
+{% comment %}
+Usage:
+include hero-image.html
+ src="/assets/images/mycat.jpg"
+ caption-overlay=true <---if you want the caption to appear on hover
+ max-width = "300px" <---if you want to restrict size on desktop
+ align = "float-md-end" <--- use any of the values in https://getbootstrap.com/docs/5.0/utilities/float/#responsive, float-md-end to right-align a figure
+ alt="An orange kitten looks at the camera with utter disbelief" <--required
+ caption-header = "Silly Cat"
+ caption-text="He's orange, he can't help it"
+{% endcomment %}
+{% if include.caption-header %}
+{% capture figcaption-head %}
+
\ No newline at end of file
diff --git a/_includes/local-footer.html b/_includes/local-footer.html
new file mode 100644
index 0000000..9443e8f
--- /dev/null
+++ b/_includes/local-footer.html
@@ -0,0 +1,53 @@
+{% assign footer_links = site.data.local-footer %}
+
+
+
\ No newline at end of file
diff --git a/_includes/lockup.html b/_includes/lockup.html
new file mode 100644
index 0000000..fa7eb76
--- /dev/null
+++ b/_includes/lockup.html
@@ -0,0 +1,88 @@
+{% comment %}
+/**
+ * @file
+ * Lockup Component.
+ *
+ * A lockup with the Stanford wordmark logo and department/site name. It links to the homepage of the department/unit.
+ *
+ * Default class for the lockup:
+ * - .su-lockup - Lockup with one line to the right of the wordmark.
+ *
+ * Available variants for the lockup:
+ * - .su-lockup--option-a
+ * - .su-lockup--option-b
+ * - .su-lockup--option-c
+ * - .su-lockup--option-d
+ * - .su-lockup--option-e
+ * - .su-lockup--option-f
+ * - .su-lockup--option-g
+ * - .su-lockup--option-h
+ * - .su-lockup--option-i
+ * - .su-lockup--option-j
+ * - .su-lockup--option-k
+ * - .su-lockup--option-l
+ * - .su-lockup--option-m
+ * - .su-lockup--option-n
+ * - .su-lockup--option-o
+ * - .su-lockup--option-p
+ * - .su-lockup--option-q
+ * - .su-lockup--option-r
+ * - .su-lockup--option-s
+ * - .su-lockup--option-t
+ *
+ * Available variables:
+ * - attributes: For additional HTML attributes not already provided.
+ * - modifier_class: Additional css classes to change look and behaviour.
+ * - link: The URL that the lockup links to.
+ * - line1: Line 1 of the unit/site name text (to the right of the wordmark).
+ * - line2: Line 2 of the unit/site name text (to the right of the wordmark).
+ * - line3: Line 3 of the unit/site name text (to the right of the wordmark).
+ * - line4: Line 4 of the unit/site name text (under the wordmark).
+ * - line5: Line 5 of the unit/site name text (at the bottom part of the lockup).
+ * - region_attributes: Attributes for each region variable
+ */
+#}
+{% endcomment %}
+
+{% assign link = site.lockup_link %}
+{% assign line1 = site.lockup_line1 %}
+{% assign line2 = site.lockup_line2 %}
+{% assign line3 = site.lockup_line3 %}
+{% assign line4 = site.lockup_line4 %}
+{% assign modifier_class = site.lockup_modifier_class %}
+
+
+
\ No newline at end of file
diff --git a/_includes/navigation.html b/_includes/navigation.html
new file mode 100644
index 0000000..3a6389d
--- /dev/null
+++ b/_includes/navigation.html
@@ -0,0 +1,35 @@
+
+
\ No newline at end of file
diff --git a/_includes/note.html b/_includes/note.html
new file mode 100644
index 0000000..5c2c059
--- /dev/null
+++ b/_includes/note.html
@@ -0,0 +1 @@
+
Note: {{include.content}}
\ No newline at end of file
diff --git a/_includes/panel.html b/_includes/panel.html
index 33c6d66..f20da88 100644
--- a/_includes/panel.html
+++ b/_includes/panel.html
@@ -1,14 +1,12 @@
-
\ No newline at end of file
diff --git a/_includes/sidebar-quickstart.html b/_includes/sidebar-quickstart.html
new file mode 100644
index 0000000..e69de29
diff --git a/_includes/sidebar-right.html b/_includes/sidebar-right.html
new file mode 100755
index 0000000..6bd2c57
--- /dev/null
+++ b/_includes/sidebar-right.html
@@ -0,0 +1 @@
+{% include sidebar-box.html title="Read More" content="
+ {% for item in items %}
+ {% if item.target == "" %}
+ {% assign target="index" %}
+ {% else %}
+ {% assign target=item.target %}
+ {% endif %}
+
+ {% comment %}
+ Ugh, this is SO ANNOYING!
+
+ We need to support multiple input formats, not just HTML. That means our
+ file extension is going to be different on the input side, but on the output
+ side it's always going to be "html").
+
+ So, our menu (and ToC) item targets must omit the ".html". We will add
+ ".html" to the link's path ourselves.
+
+ And then, we need to take page.path, and strip off the file extension (the
+ ".html" or ".md" or whatever), before we do the comparison.
+ {% endcomment %}
+ {% assign path_segments = page.path | split: "." %}
+ {% assign path_number_of_segments = path_segments | size %}
+ {% if path_number_of_segments <= 2 %}
+ {% assign comparison_path = path_segments[0] %}
+ {% else %}
+ {% assign path_last_segment = path_segments.last %}
+ {% assign path_last_segment_length = path_last_segment | size | plus: 1 %}
+ {% assign new_length = page.path | size | minus: path_last_segment_length %}
+ {% assign comparison_path = page.path | truncate: new_length, "" %}
+ {% endif %}
+
+ {% if target == comparison_path %}
+ {% comment %}
+ Escaping quotes can be annoying sometimes, so we do a capture here.
+ {% endcomment %}
+ {% capture a_class %} class="toc-current"{% endcapture %}
+ {% else %}
+ {% assign a_class = "" %}
+ {% endif %}
+
+{% endif %}
\ No newline at end of file
diff --git a/_includes/sidebar-toc-min.html b/_includes/sidebar-toc-min.html
new file mode 100644
index 0000000..32c90dc
--- /dev/null
+++ b/_includes/sidebar-toc-min.html
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/_includes/sidebar-toc.html b/_includes/sidebar-toc.html
new file mode 100644
index 0000000..0f87baa
--- /dev/null
+++ b/_includes/sidebar-toc.html
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/_includes/sidebar.html b/_includes/sidebar.html
new file mode 100755
index 0000000..9469fd7
--- /dev/null
+++ b/_includes/sidebar.html
@@ -0,0 +1,51 @@
+
+{% if page.see-also == true %}
+{% include sidebar-see-also.html id=page.id %}
+{% endif %}
+
+{% if page.toc == true %}
+{% include sidebar-toc.html %}
+{% endif %}
+
+{% if page.news == true %}
+{% include sidebar-blog.html max=4 %}
+{% endif %}
+
+{% if page.toc-min == true %}
+{% include sidebar-toc-min.html %}
+{% endif %}
+
+{% if page.sidebar-box %}
+{% capture custom_box_title %}
+{{page.sidebar-box-title}}
+{% endcapture %}
+{% capture custom_box_content %}
+{{page.sidebar-box}}
+{% endcapture %}
+{% include sidebar-box.html title=custom_box_title content=custom_box_content %}
+{% endif %}
+
+{% if page.sidebar-box2 %}
+{% capture custom_box_title2 %}
+{{page.sidebar-box-title2}}
+{% endcapture %}
+{% capture custom_box_content2 %}
+{{page.sidebar-box2}}
+{% endcapture %}
+{% include sidebar-box.html title=custom_box_title2 content=custom_box_content2 %}
+{% endif %}
+
+{% if page.sidebar-box3 %}
+{% capture custom_box_title3 %}
+{{page.sidebar-box-title3}}
+{% endcapture %}
+{% capture custom_box_content3 %}
+{{page.sidebar-box3}}
+{% endcapture %}
+{% include sidebar-box.html title=custom_box_title3 content=custom_box_content3 %}
+{% endif %}
+
+{% if page.home != true %}
+{% include sidebar-box.html title="Support is Available" content=" Ask Us Anything" %}
+{% endif %}
+
diff --git a/_includes/skiplink.html b/_includes/skiplink.html
new file mode 100644
index 0000000..c983c36
--- /dev/null
+++ b/_includes/skiplink.html
@@ -0,0 +1 @@
+Skip to main content
\ No newline at end of file
diff --git a/_includes/tip.html b/_includes/tip.html
new file mode 100644
index 0000000..82b2b79
--- /dev/null
+++ b/_includes/tip.html
@@ -0,0 +1,3 @@
+
+
Tip: {{include.content}}
+
\ No newline at end of file
diff --git a/_includes/toc.html b/_includes/toc.html
index d9b8fcc..bc90d08 100644
--- a/_includes/toc.html
+++ b/_includes/toc.html
@@ -1,60 +1,189 @@
-{% assign toc_found = false %}
-{% for toc in site.data.toc %}
- {% if toc.id == include.id %}
- {% assign header = toc.header %}
- {% assign items = toc.items %}
- {% assign toc_found = true %}
- {% break %}
- {% endif %}
-{% endfor %}
-
-
- {% if toc_found == false %}
- TOC {{ include.id }} not found!
- {% else %}
-
{{ header }}
-
- {% for item in items %}
- {% if item.target == "" %}
- {% assign target="index" %}
- {% else %}
- {% assign target=item.target %}
- {% endif %}
-
- {% comment %}
- Ugh, this is SO ANNOYING!
-
- We need to support multiple input formats, not just HTML. That means our
- file extension is going to be different on the input side, but on the output
- side it's always going to be "html").
-
- So, our menu (and ToC) item targets must omit the ".html". We will add
- ".html" to the link's path ourselves.
-
- And then, we need to take page.path, and strip off the file extension (the
- ".html" or ".md" or whatever), before we do the comparison.
- {% endcomment %}
- {% assign path_segments = page.path | split: "." %}
- {% assign path_number_of_segments = path_segments | size %}
- {% if path_number_of_segments <= 2 %}
- {% assign comparison_path = path_segments[0] %}
- {% else %}
- {% assign path_last_segment = path_segments.last %}
- {% assign path_last_segment_length = path_last_segment | size | plus: 1 %}
- {% assign new_length = page.path | size | minus: path_last_segment_length %}
- {% assign comparison_path = page.path | truncate: new_length, "" %}
- {% endif %}
-
- {% if target == comparison_path %}
- {% comment %}
- Escaping quotes can be annoying sometimes, so we do a capture here.
- {% endcomment %}
- {% capture a_class %} class="toc_current"{% endcapture %}
- {% else %}
- {% assign a_class = "" %}
- {% endif %}
-
+{% capture tocWorkspace %}
+ {% comment %}
+ Copyright (c) 2017 Vladimir "allejo" Jimenez
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ {% endcomment %}
+ {% comment %}
+ Version 1.2.1
+ https://github.com/allejo/jekyll-toc
+
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
+
+ Usage:
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
+
+ Parameters:
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
+
+ Optional Parameters:
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
+ * class (string) : '' - a CSS class assigned to the TOC
+ * id (string) : '' - an ID to assigned to the TOC
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
+ * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
+ * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
+ * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
+ * anchor_class (string) : '' - add custom class(es) for each anchor element
+ * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
+ * flat_toc (bool) : false - when set to true, the TOC will be a single level list
+
+ Output:
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
+ generate the table of contents and will NOT output the markdown given to it
+ {% endcomment %}
+
+ {% capture newline %}
+ {% endcapture %}
+ {% assign newline = newline | rstrip %}
+
+ {% capture deprecation_warnings %}{% endcapture %}
+
+ {% if include.baseurl %}
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %}
+ {% endif %}
+
+ {% if include.skipNoIDs %}
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %}
+ {% endif %}
+
+ {% capture jekyll_toc %}{% endcapture %}
+ {% assign orderedList = include.ordered | default: false %}
+ {% assign flatToc = include.flat_toc | default: false %}
+ {% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
+ {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
+ {% assign minHeader = include.h_min | default: 1 %}
+ {% assign maxHeader = include.h_max | default: 6 %}
+ {% assign nodes = include.html | strip | split: ' maxHeader %}
+ {% continue %}
+ {% endif %}
+
+ {% assign _workspace = node | split: '' | first }}>{% endcapture %}
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
+
+ {% if include.item_class and include.item_class != blank %}
+ {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
+ {% endif %}
+
+ {% if include.submenu_class and include.submenu_class != blank %}
+ {% assign subMenuLevel = currLevel | minus: 1 %}
+ {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
+ {% endif %}
+
+ {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
+
+ {% if htmlID %}
+ {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
+
+ {% if include.anchor_class %}
+ {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
+ {% endif %}
+
+ {% capture listItem %}{{ anchorBody }}{% endcapture %}
+ {% elsif skipNoIDs == true %}
+ {% continue %}
+ {% else %}
+ {% capture listItem %}{{ anchorBody }}{% endcapture %}
+ {% endif %}
+
+ {% if currLevel > lastLevel and flatToc == false %}
+ {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
+ {% elsif currLevel < lastLevel and flatToc == false %}
+ {% assign repeatCount = lastLevel | minus: currLevel %}
+
+ {% for i in (1..repeatCount) %}
+ {% capture jekyll_toc %}{{ jekyll_toc }}{{ listModifier }}>{% endcapture %}
+ {% endfor %}
+
+ {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %}
+ {% else %}
+ {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %}
+ {% endif %}
+
+ {% capture jekyll_toc %}{{ jekyll_toc }}
- {% assign menu_max = site.data.menu | size | minus: 1 %}
- {% for i in (0..menu_max) %}
- {% comment %}
- First, let's put together the list item.
- The first item gets the "home" ID; other get numbers.
- We can only handle seven menu items.
- {% endcomment %}
- {% assign menu_item = site.data.menu[i] %}
-
- {% comment %}
- We need to figure out if our item is for the
- currently-active page.
-
- There are two things to check:
-
- * If our item is a dropdown, then we need to look at all of
- the pages included in the dropdown. If our current page
- is one of the pages included in the dropdown, then our
- item is active.
- * If our item is not a dropdown, then just check that the
- page's path matches.
- {% endcomment %}
- {% assign item_active = false %}
-
- {% comment %}
- Since only one of menu_item.dropdown and menu_item.target
- should be set for any given menu_item, we can simply look
- at both. Check menu_item.target first.
-
- Ugh, this is SO ANNOYING!
-
- We need to support multiple input formats, not just HTML.
- That means our file extension is going to be different on
- the input side, but on the output side it's always going to
- be "html").
-
- So, our menu (and ToC) item targets must omit the ".html".
- We will add ".html" to the link's path ourselves.
-
- And then, we need to take page.path, and strip off the file
- extension (the ".html" or ".md" or whatever), before we do
- the comparison.
- {% endcomment %}
- {% assign path_segments = page.path | split: "." %}
- {% assign path_number_of_segments = path_segments | size %}
- {% if path_number_of_segments <= 2 %}
- {% assign comparison_path = path_segments[0] %}
- {% else %}
- {% assign path_last_segment = path_segments.last %}
- {% assign path_last_segment_length = path_last_segment | size | plus: 1 %}
- {% assign new_length = page.path | size | minus: path_last_segment_length %}
- {% assign comparison_path = page.path | truncate: new_length, "" %}
- {% endif %}
- {% comment %}
- We also have to be careful about the target. If the target
- is set to the empty string, then it is actually pointing to
- index.html
- {% endcomment %}
- {% if menu_item.target == "" %}
- {% assign comparison_target = "index" %}
- {% else %}
- {% assign comparison_target = menu_item.target %}
- {% endif %}
- {% if comparison_target == comparison_path %}
- {% assign item_active = true %}
- {% endif %}
-
- {% comment %}
- Since only one of menu_item.dropdown and menu_item.target
- should be valid for any given menu_item, we can use a for
- loop. If we are not in a dropdown, then this won't loop!
- {% endcomment %}
- {% for dropdown_item in menu_item.dropdown %}
-
- {% assign path_segments = page.path | split: "." %}
- {% assign path_number_of_segments = path_segments | size %}
- {% if path_number_of_segments <= 2 %}
- {% assign comparison_path = path_segments[0] %}
- {% else %}
- {% assign path_last_segment = path_segments.last %}
- {% assign path_last_segment_length = path_last_segment | size | plus: 1 %}
- {% assign new_length = page.path | size | minus: path_last_segment_length %}
- {% assign comparison_path = page.path | truncate: new_length, "" %}
- {% endif %}
- {% if menu_item.target == "" %}
- {% assign comparison_target = "index" %}
- {% else %}
- {% assign comparison_target = dropdown_item.target %}
- {% endif %}
- {% if comparison_target == comparison_path %}
- {% assign item_active = true %}
- {% endif %}
- {% endfor %}
-
- {% comment %}
- Now we can actually output the item!
- {% endcomment %}
- {% if i == 0 %}
- {% if item_active %}
-
- {% else %}
-
-
- {% endif %}
- {% elsif i <= 6 %}
- {% if item_active %}
-
- {% endif %}
-
- {% comment %}
- Now, we either have a target, or we have a dropdown.
- Error if we have neither or both.
- If we have an empty-string target, send users to index.
- If we have a non-empty-string target, send users there.
- Otherwise, we have a dropdown.
- {% endcomment %}
- {% if menu_item.target == nil
- and menu_item.dropdown == nil
- %}
-
Menu {{ menu_item.name }} needs a target or a
- dropdown.