diff --git a/_includes/vendor/anchor_headings.html b/_includes/vendor/anchor_headings.html
new file mode 100755
index 0000000..25397df
--- /dev/null
+++ b/_includes/vendor/anchor_headings.html
@@ -0,0 +1,100 @@
+{% capture headingsWorkspace %}
+ {% comment %}
+ Version 1.0.3
+ https://github.com/allejo/jekyll-anchor-headings
+
+ "Be the pull request you wish to see in the world." ~Ben Balter
+
+ Usage:
+ {% include anchor_headings.html html=content %}
+
+ Parameters:
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
+
+ Optional Parameters:
+ * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
+ * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
+ * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
+ * anchorTitle (string) : '' - The `title` attribute that will be used for anchors
+ * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
+ * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
+ * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
+ * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
+
+ Output:
+ The original HTML with the addition of anchors inside of all of the h1-h6 headings.
+ {% endcomment %}
+
+ {% assign minHeader = include.h_min | default: 1 %}
+ {% assign maxHeader = include.h_max | default: 6 %}
+ {% assign beforeHeading = include.beforeHeading %}
+ {% assign nodes = include.html | split: '
+ {% if headerLevel == 0 %}
+ {% if nextChar != '<' and nextChar != '' %}
+ {% capture node %}' | first }}>{% endcapture %}
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
+
+
+ {% capture anchor %}{% endcapture %}
+
+ {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
+ {% capture anchor %}href="#{{ html_id}}"{% endcapture %}
+
+ {% if include.anchorClass %}
+ {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
+ {% endif %}
+
+ {% if include.anchorTitle %}
+ {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %}
+ {% endif %}
+
+ {% capture anchor %}{{ include.anchorBody | replace: '%heading%', header | default: '' }}{% endcapture %}
+
+
+ {% if beforeHeading %}
+ {% capture anchor %}{{ anchor }} {% endcapture %}
+ {% else %}
+ {% capture anchor %} {{ anchor }}{% endcapture %}
+ {% endif %}
+ {% endif %}
+
+ {% capture new_heading %}
+
diff --git a/_sass/anchor_headings.scss b/_sass/anchor_headings.scss
new file mode 100644
index 0000000..da55202
--- /dev/null
+++ b/_sass/anchor_headings.scss
@@ -0,0 +1,12 @@
+a.anchor_heading {
+ visibility: hidden;
+}
+
+h1:hover > a.anchor_heading,
+h2:hover > a.anchor_heading,
+h3:hover > a.anchor_heading,
+h4:hover > a.anchor_heading,
+h5:hover > a.anchor_heading,
+h6:hover > a.anchor_heading {
+ visibility: visible;
+}
\ No newline at end of file
diff --git a/assets/css/just-the-docs.scss b/assets/css/just-the-docs.scss
index 6a2eefa..b6d17d5 100644
--- a/assets/css/just-the-docs.scss
+++ b/assets/css/just-the-docs.scss
@@ -41,4 +41,5 @@
@import "./search";
@import "./tables";
@import "./code";
+@import "./anchor_headings";
@import "./utilities/utilities";