jekyll-docs-theme 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +20 -16
  3. data/README.md +11 -34
  4. data/_includes/fa-icon.html +13 -0
  5. data/_includes/footer/content-post.html +4 -0
  6. data/_includes/footer/content-pre.html +4 -0
  7. data/_includes/footer/content.html +137 -0
  8. data/_includes/footer/full.html +13 -0
  9. data/_includes/footer/scripts-post.html +4 -0
  10. data/_includes/footer/scripts-pre.html +4 -0
  11. data/_includes/footer/scripts.html +48 -0
  12. data/_includes/head/base.html +3 -0
  13. data/_includes/head/content-post.html +0 -0
  14. data/_includes/head/content-pre.html +0 -0
  15. data/_includes/head/content.html +8 -0
  16. data/_includes/head/full.html +9 -0
  17. data/_includes/head/stylesheets-post.html +0 -0
  18. data/_includes/head/stylesheets-pre.html +0 -0
  19. data/_includes/head/stylesheets.html +16 -0
  20. data/_includes/internal/variables.html +21 -0
  21. data/_includes/jekyll-docs-theme/anchor_headings.html +34 -0
  22. data/_includes/jekyll-docs-theme/toc.html +38 -0
  23. data/_includes/jekyll-docs-theme/vendor/anchor_headings.html +110 -0
  24. data/_includes/jekyll-docs-theme/vendor/toc.html +112 -0
  25. data/_includes/masthead.html +13 -0
  26. data/_includes/masthead/button.html +11 -0
  27. data/_includes/masthead/buttons.html +30 -0
  28. data/_includes/masthead/title.html +7 -0
  29. data/_includes/navigation.html +50 -20
  30. data/_includes/sidebar/content-post.html +0 -0
  31. data/_includes/sidebar/content-pre.html +0 -0
  32. data/_includes/sidebar/content.html +10 -0
  33. data/_layouts/default.html +10 -4
  34. data/_layouts/full.html +5 -3
  35. data/_layouts/page.html +31 -11
  36. data/_sass/abstracts/_highlight-dark.scss +136 -0
  37. data/_sass/abstracts/_highlight-light.scss +251 -0
  38. data/_sass/abstracts/_themer.scss +18 -0
  39. data/_sass/abstracts/_variables.scss +6 -0
  40. data/_sass/base/_anchor.scss +20 -0
  41. data/_sass/base/_blockquote.scss +19 -0
  42. data/_sass/base/_body.scss +12 -0
  43. data/_sass/base/_horizontal-rule.scss +9 -0
  44. data/_sass/base/_scope-markdown.scss +108 -0
  45. data/_sass/components/_alert.scss +5 -0
  46. data/_sass/components/_footer.scss +39 -0
  47. data/_sass/components/_header.scss +22 -0
  48. data/_sass/components/_highlight.scss +59 -0
  49. data/_sass/components/_masthead.scss +62 -0
  50. data/_sass/components/_mobile-toc.scss +30 -0
  51. data/_sass/components/_sidebar.scss +86 -0
  52. data/_sass/utilities/_colors.scss +301 -0
  53. data/_sass/utilities/_js.scss +3 -0
  54. data/assets/css/styles.scss +40 -50
  55. data/assets/js/docs.js +49 -0
  56. metadata +54 -26
  57. data/_includes/footer.html +0 -91
  58. data/_includes/head.html +0 -26
  59. data/_includes/jumbotron.html +0 -21
  60. data/assets/css/docs.css +0 -1527
  61. data/assets/js/docs.min.js +0 -49
@@ -0,0 +1,38 @@
1
+ {% assign fm_class = layout.table_of_contents.class | default: page.table_of_contents.class | default: "" %}
2
+ {% assign fm_anchor_class = layout.table_of_contents.anchor_class | default: page.table_of_contents.anchor_class | default: "" %}
3
+
4
+ {% capture class -%}
5
+ {{- include.class -}}
6
+ {%- if fm_class != "" -%}
7
+ .{{- fm_class -}}
8
+ {%- endif -%}
9
+ {%- endcapture %}
10
+
11
+ {% capture anchor_class %}
12
+ {{- include.anchor_class -}}
13
+ {%- if fm_anchor_class != "" -%}
14
+ .{{- fm_anchor_class -}}
15
+ {%- endif -%}
16
+ {% endcapture %}
17
+
18
+ {% assign sanitize = page.table_of_contents.sanitize | default: layout.table_of_contents.sanitize | default: false %}
19
+ {% assign h_min = page.table_of_contents.h_min | default: layout.table_of_contents.h_min | default: 1 %}
20
+ {% assign h_max = page.table_of_contents.h_max | default: layout.table_of_contents.h_max | default: 3 %}
21
+ {% assign ordered = page.table_of_contents.ordered | default: layout.table_of_contents.ordered | default: false %}
22
+ {% assign item_class = page.table_of_contents.item_class | default: layout.table_of_contents.item_class | default: '' %}
23
+ {% assign baseurl = page.table_of_contents.baseurl | default: layout.table_of_contents.baseurl | default: '' %}
24
+ {% assign skipNoIDs = page.table_of_contents.skipNoIDs | default: layout.table_of_contents.skipNoIDs | default: false %}
25
+
26
+ {% include jekyll-docs-theme/vendor/toc.html
27
+ html=content
28
+ id=include.id
29
+ class=class
30
+ sanitize=sanitize
31
+ h_min=h_min
32
+ h_max=h_max
33
+ ordered=ordered
34
+ item_class=item_class
35
+ baseurl=baseurl
36
+ anchor_class=anchor_class
37
+ skipNoIDs=skipNoIDs
38
+ %}
@@ -0,0 +1,110 @@
1
+ {% capture headingsWorkspace %}
2
+ {% comment %}
3
+ Version 1.0.6
4
+ https://github.com/allejo/jekyll-anchor-headings
5
+
6
+ "Be the pull request you wish to see in the world." ~Ben Balter
7
+
8
+ Usage:
9
+ {% include anchor_headings.html html=content %}
10
+
11
+ Parameters:
12
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
13
+
14
+ Optional Parameters:
15
+ * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
16
+ * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
17
+ the `%heading%` placeholder is available
18
+ * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
19
+ * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
20
+ * anchorTitle (string) : '' - The `title` attribute that will be used for anchors
21
+ * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
22
+ * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
23
+ * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
24
+ * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
25
+
26
+ Output:
27
+ The original HTML with the addition of anchors inside of all of the h1-h6 headings.
28
+ {% endcomment %}
29
+
30
+ {% assign minHeader = include.h_min | default: 1 %}
31
+ {% assign maxHeader = include.h_max | default: 6 %}
32
+ {% assign beforeHeading = include.beforeHeading %}
33
+ {% assign nodes = include.html | split: '<h' %}
34
+
35
+ {% capture edited_headings %}{% endcapture %}
36
+
37
+ {% for _node in nodes %}
38
+ {% capture node %}{{ _node | strip }}{% endcapture %}
39
+
40
+ {% if node == "" %}
41
+ {% continue %}
42
+ {% endif %}
43
+
44
+ {% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
45
+ {% assign headerLevel = nextChar | times: 1 %}
46
+
47
+ <!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
48
+ {% if headerLevel == 0 %}
49
+ <!-- Split up the node based on closing angle brackets and get the first one. -->
50
+ {% assign firstChunk = node | split: '>' | first %}
51
+
52
+ <!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
53
+ {% unless firstChunk contains '<' %}
54
+ {% capture node %}<h{{ node }}{% endcapture %}
55
+ {% endunless %}
56
+
57
+ {% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
58
+ {% continue %}
59
+ {% endif %}
60
+
61
+ {% assign _workspace = node | split: '</h' %}
62
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
63
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
64
+ {% assign html_id = _idWorkspace[0] %}
65
+
66
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
67
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
68
+
69
+ <!-- Build the anchor to inject for our heading -->
70
+ {% capture anchor %}{% endcapture %}
71
+
72
+ {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
73
+ {% capture anchor %}href="#{{ html_id }}"{% endcapture %}
74
+
75
+ {% if include.anchorClass %}
76
+ {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
77
+ {% endif %}
78
+
79
+ {% if include.anchorTitle %}
80
+ {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %}
81
+ {% endif %}
82
+
83
+ {% if include.anchorAttrs %}
84
+ {% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', header }}{% endcapture %}
85
+ {% endif %}
86
+
87
+ {% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', header | default: '' }}</a>{% endcapture %}
88
+
89
+ <!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
90
+ {% if beforeHeading %}
91
+ {% capture anchor %}{{ anchor }} {% endcapture %}
92
+ {% else %}
93
+ {% capture anchor %} {{ anchor }}{% endcapture %}
94
+ {% endif %}
95
+ {% endif %}
96
+
97
+ {% capture new_heading %}
98
+ <h{{ _hAttrToStrip }}
99
+ {{ include.bodyPrefix }}
100
+ {% if beforeHeading %}
101
+ {{ anchor }}{{ header }}
102
+ {% else %}
103
+ {{ header }}{{ anchor }}
104
+ {% endif %}
105
+ {{ include.bodySuffix }}
106
+ </h{{ _workspace | last }}
107
+ {% endcapture %}
108
+ {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
109
+ {% endfor %}
110
+ {% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
@@ -0,0 +1,112 @@
1
+ {% capture tocWorkspace %}
2
+ {% comment %}
3
+ Version 1.0.11
4
+ https://github.com/allejo/jekyll-toc
5
+
6
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
7
+
8
+ Usage:
9
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
10
+
11
+ Parameters:
12
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
13
+
14
+ Optional Parameters:
15
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
16
+ * class (string) : '' - a CSS class assigned to the TOC
17
+ * id (string) : '' - an ID to assigned to the TOC
18
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
19
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
20
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
21
+ * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
22
+ * baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
23
+ * anchor_class (string) : '' - add custom class(es) for each anchor element
24
+ * skipNoIDs (bool) : false - skip headers that do not have an `id` attribute
25
+
26
+ Output:
27
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
28
+ generate the table of contents and will NOT output the markdown given to it
29
+ {% endcomment %}
30
+
31
+ {% capture my_toc %}{% endcapture %}
32
+ {% assign orderedList = include.ordered | default: false %}
33
+ {% assign skipNoIDs = include.skipNoIDs | default: false %}
34
+ {% assign minHeader = include.h_min | default: 1 %}
35
+ {% assign maxHeader = include.h_max | default: 6 %}
36
+ {% assign nodes = include.html | split: '<h' %}
37
+ {% assign firstHeader = true %}
38
+
39
+ {% capture listModifier %}{% if orderedList %}1.{% else %}-{% endif %}{% endcapture %}
40
+
41
+ {% for node in nodes %}
42
+ {% if node == "" %}
43
+ {% continue %}
44
+ {% endif %}
45
+
46
+ {% if skipNoIDs == true %}
47
+ {% unless node contains "id=" %}
48
+ {% continue %}
49
+ {% endunless %}
50
+ {% endif %}
51
+
52
+ {% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
53
+
54
+ {% if headerLevel < minHeader or headerLevel > maxHeader %}
55
+ {% continue %}
56
+ {% endif %}
57
+
58
+ {% if firstHeader %}
59
+ {% assign firstHeader = false %}
60
+ {% assign minHeader = headerLevel %}
61
+ {% endif %}
62
+
63
+ {% assign indentAmount = headerLevel | minus: minHeader %}
64
+ {% assign _workspace = node | split: '</h' %}
65
+
66
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
67
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
68
+ {% assign html_id = _idWorkspace[0] %}
69
+
70
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
71
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
72
+ {% assign html_class = _classWorkspace[0] %}
73
+
74
+ {% if html_class contains "no_toc" %}
75
+ {% continue %}
76
+ {% endif %}
77
+
78
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
79
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
80
+
81
+ {% assign space = '' %}
82
+ {% for i in (1..indentAmount) %}
83
+ {% assign space = space | prepend: ' ' %}
84
+ {% endfor %}
85
+
86
+ {% if include.item_class and include.item_class != blank %}
87
+ {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
88
+ {% endif %}
89
+
90
+ {% capture anchor_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
91
+ {% capture anchor_body %}{{ anchor_body | replace: "|", "\|" }}{% endcapture %}
92
+
93
+ {% if html_id %}
94
+ {% capture list_item %}[{{ anchor_body }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %}
95
+ {% else %}
96
+ {% capture list_item %}{{ anchor_body }}{% endcapture %}
97
+ {% endif %}
98
+
99
+ {% capture my_toc %}{{ my_toc }}
100
+ {{ space }}{{ listModifier }} {{ listItemClass }} {{ list_item }}{% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
101
+ {% endfor %}
102
+
103
+ {% if include.class and include.class != blank %}
104
+ {% capture my_toc %}{:.{{ include.class }}}
105
+ {{ my_toc | lstrip }}{% endcapture %}
106
+ {% endif %}
107
+
108
+ {% if include.id %}
109
+ {% capture my_toc %}{: #{{ include.id }}}
110
+ {{ my_toc | lstrip }}{% endcapture %}
111
+ {% endif %}
112
+ {% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
@@ -0,0 +1,13 @@
1
+ {% capture alignment_class -%}
2
+ {%- if page.homepage -%}
3
+ text-{{ site.ui.masthead.align.homepage | default: 'center' }}
4
+ {%- else -%}
5
+ text-{{ site.ui.masthead.align.page | default: 'left' }}
6
+ {%- endif -%}
7
+ {%- endcapture %}
8
+ <div class="site-masthead mb-5 py-5 {{ alignment_class }}">
9
+ <div class="container">
10
+ {% include masthead/title.html %}
11
+ {% include masthead/buttons.html %}
12
+ </div>
13
+ </div>
@@ -0,0 +1,11 @@
1
+ <a
2
+ href="{{ include.url }}"
3
+ class="site-masthead__button mx-2 mb-2"
4
+ >
5
+ {% include fa-icon.html
6
+ icon=include.icon
7
+ brand=include.brand
8
+ class="mr-1"
9
+ %}
10
+ {{ include.title }}
11
+ </a>
@@ -0,0 +1,30 @@
1
+ {% if page.homepage %}
2
+ <div class="mt-4 mb-0">
3
+ {% if site.project.download_url %}
4
+ {% capture button_text -%}
5
+ {{ site.project.download_text | default: 'Download' }}
6
+ {%- endcapture %}
7
+
8
+ {% include masthead/button.html
9
+ url=site.project.download_url
10
+ icon="download"
11
+ title=button_text
12
+ %}
13
+ {% endif %}
14
+
15
+ {% for link in site.links.homepage %}
16
+ {% include masthead/button.html
17
+ url=link.url
18
+ icon=link.icon
19
+ title=link.title
20
+ brand=link.brand
21
+ %}
22
+ {% endfor %}
23
+ </div>
24
+
25
+ {% if site.project.version %}
26
+ <p class="site-masthead__version my-0">
27
+ Latest release v{{ site.project.version }}
28
+ </p>
29
+ {% endif %}
30
+ {% endif %}
@@ -0,0 +1,7 @@
1
+ <h1 class="site-masthead__title mb-1">{{ page.title | default: site.name }}</h1>
2
+
3
+ {% if page.description %}
4
+ <p class="site-masthead__description mb-0">
5
+ {{ page.description }}
6
+ </p>
7
+ {% endif %}
@@ -1,32 +1,62 @@
1
- <header class="navbar navbar-static-top bs-docs-nav" id="top">
1
+ <header class="navbar navbar-expand-md navbar-custom" id="top">
2
2
  <div class="container">
3
- <div class="navbar-header" role="banner">
4
- <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
5
- <span class="sr-only">Toggle navigation</span>
6
- <span class="icon-bar"></span>
7
- <span class="icon-bar"></span>
8
- <span class="icon-bar"></span>
9
- </button>
10
- <a class="navbar-brand" href="{{ 'index.html' | relative_url }}">{{ site.name }}</a>
11
- </div>
12
- <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
13
- <ul class="nav navbar-nav">
14
- {% assign sorted_pages = site.pages | sort: "name" %}
3
+ <a class="navbar-brand" href="{{ '/' | relative_url }}">{{ site.name }}</a>
4
+
5
+ <button
6
+ class="navbar-toggler"
7
+ type="button"
8
+ data-toggle="collapse"
9
+ data-target="#navbarSupportedContent"
10
+ aria-controls="navbarSupportedContent"
11
+ aria-expanded="false"
12
+ aria-label="Toggle navigation"
13
+ >
14
+ <span class="icon-bar"></span>
15
+ <span class="icon-bar"></span>
16
+ <span class="icon-bar"></span>
17
+ </button>
18
+
19
+ <nav class="navbar-collapse collapse" role="navigation" id="navbarSupportedContent">
20
+ <ul class="navbar-nav">
21
+ {% assign sorted_pages = site.pages | sort: "title" %}
15
22
  {% for p in sorted_pages %}
16
- {% if p.isHome != true and p.hide != true and p.title != %}
17
- <li {% if page.title == p.title %}class="active"{% endif %}>
18
- <a href="{{ p.url | relative_url }}">{{ p.title }}</a>
23
+ {% assign is_homepage = false %}
24
+ {% if p.homepage == true or p.isHome == true %}
25
+ {% assign is_homepage = true %}
26
+ {% endif %}
27
+
28
+ {% assign show_in_menu = true %}
29
+ {% if p.show_in_menu != nil and p.show_in_menu == false %}
30
+ {% assign show_in_menu = false %}
31
+ {% elsif p.hide != nil and p.hide == true %}
32
+ {% assign show_in_menu = false %}
33
+ {% endif %}
34
+
35
+ {% if is_homepage != true and show_in_menu == true and p.title %}
36
+ <li class="nav-item {% if page.title == p.title %}active{% endif %}">
37
+ <a
38
+ class="nav-link"
39
+ href="{{ p.url | relative_url }}"
40
+ >
41
+ {{ p.title }}
42
+ </a>
19
43
  </li>
20
44
  {% endif %}
21
45
  {% endfor %}
22
46
  </ul>
23
- <ul class="nav navbar-nav navbar-right">
47
+ <ul class="navbar-nav ml-auto">
24
48
  {% for p in site.links.header %}
25
- <li>
26
- <a href="{{ p.url }}">{{ p.title }}</a>
49
+ <li class="nav-item {% if page.title == p.title %}active{% endif %}">
50
+ <a
51
+ class="nav-link"
52
+ href="{{ p.url }}"
53
+ >
54
+ {% include fa-icon.html icon=p.icon brand=p.brand %}
55
+ {{ p.title }}
56
+ </a>
27
57
  </li>
28
58
  {% endfor %}
29
59
  </ul>
30
60
  </nav>
31
61
  </div>
32
- </header>
62
+ </header>
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ <nav id="page-toc" class="page-sidebar">
2
+ {% include jekyll-docs-theme/toc.html
3
+ class="list-unstyled.pl-0"
4
+ anchor_class="nav-link.px-3.py-1"
5
+ %}
6
+
7
+ <a class="px-3 text-muted" href="#top">
8
+ <small>Back to top</small>
9
+ </a>
10
+ </nav>
@@ -1,15 +1,21 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en" class="no-js">
3
3
  <head>
4
- {% include head.html %}
4
+ {% include head/full.html %}
5
5
  </head>
6
6
 
7
- <body>
7
+ {% assign scrollSpyOffset = page.scrollSpyOffset | default: layout.scrollSpyOffset | default: 0 %}
8
+ <body
9
+ class="layout-{{ page.layout }}"
10
+ data-spy="scroll"
11
+ data-target="#page-toc"
12
+ data-offset="{{ scrollSpyOffset }}"
13
+ >
8
14
  {% include navigation.html %}
9
- {% include jumbotron.html %}
15
+ {% include masthead.html %}
10
16
 
11
17
  {{ content }}
12
18
 
13
- {% include footer.html %}
19
+ {% include footer/full.html %}
14
20
  </body>
15
21
  </html>