jekyll-theme-gitbook 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +308 -0
  4. data/_includes/alerts/base.html +5 -0
  5. data/_includes/alerts/info.html +1 -0
  6. data/_includes/alerts/warning.html +1 -0
  7. data/_includes/chapter-list.html +12 -0
  8. data/_includes/hooks/body-posthook.html +0 -0
  9. data/_includes/hooks/copyright-posthook.html +0 -0
  10. data/_includes/hooks/head-posthook.html +1 -0
  11. data/_includes/hooks/navbar-posthook.html +0 -0
  12. data/_includes/hooks/navbar-prehook.html +0 -0
  13. data/_includes/icon.html +1 -0
  14. data/_includes/internal/copyright.html +7 -0
  15. data/_includes/internal/footer.html +11 -0
  16. data/_includes/internal/header.html +38 -0
  17. data/_includes/internal/markdown-fragment.html +1 -0
  18. data/_includes/internal/meta.html +12 -0
  19. data/_includes/internal/navbar.html +27 -0
  20. data/_includes/internal/postprocessing.html +5 -0
  21. data/_includes/internal/prev-next.html +55 -0
  22. data/_includes/internal/redirect.html +17 -0
  23. data/_includes/thirdparty/toc.html +96 -0
  24. data/_layouts/chapter-index.html +23 -0
  25. data/_layouts/chapter-redirect.html +7 -0
  26. data/_layouts/default.html +40 -0
  27. data/_layouts/root-redirect.html +7 -0
  28. data/_sass/_content.scss +400 -0
  29. data/_sass/_layout.scss +80 -0
  30. data/_sass/_responsive.scss +218 -0
  31. data/_sass/_variables.scss +17 -0
  32. data/_sass/jekyll-theme-gitbook.scss +7 -0
  33. data/_sass/thirdparty/bootstrap.min.scss +7 -0
  34. data/assets/images/favicon.png +0 -0
  35. data/assets/images/favicon.svg +356 -0
  36. data/assets/images/logo.svg +48 -0
  37. data/assets/images/opengraph.png +0 -0
  38. data/assets/js/jekyll-theme-gitbook.js +11 -0
  39. data/assets/js/thirdparty/bootstrap.min.js +7 -0
  40. data/assets/js/thirdparty/jquery-3.4.1.min.js +2 -0
  41. data/assets/js/thirdparty/popper.min.js +5 -0
  42. metadata +126 -0
@@ -0,0 +1,27 @@
1
+ <nav class="collapse">
2
+ <div class="inner">
3
+ {% include hooks/navbar-prehook.html %}
4
+
5
+ {% assign documents = site.documents | where: "collection", site.theme-settings.collection | where_exp: "page", "page.chapnum != null" %}
6
+ {% if page.subsite %}
7
+ {% assign documents = documents | where: "subsite", page.subsite %}
8
+ {% endif %}
9
+ {% assign pages = documents | where_exp: "page", "page.pagenum != null" | sort: "pagenum" %}
10
+ {% assign indices = documents | where_exp: "page", "page.pagenum == null" | sort: "chapnum" %}
11
+
12
+ {% for index in indices %}
13
+ <p class="chapter">{% if index.icon %}{% assign components = index.url | split: "/" %}<span class="icon icon-{{ components[-2] | escape }} {{ index.icon | escape }}"></span> {% endif %}{{ index.chapter | escape | replace: " ", "&nbsp;" }}</p>
14
+ <ul>
15
+ {% if site.theme-settings.indices == true and index.layout == "chapter-index" %}
16
+ <li{% if index.url == page.url %} class="selected"{% endif %}><a href="{{ index.url | replace: "/index", "" | relative_url | uri_escape }}">Index</a></li>
17
+ {% endif %}
18
+ {% assign chapter_pages = pages | where: "chapter", index.chapter %}
19
+ {% for p in chapter_pages %}
20
+ <li{% if p.url == page.url %} class="selected"{% endif %}><a href="{{ p.url | relative_url | uri_escape }}">{{ p.title | escape | replace: " ", "&nbsp;" }}</a></li>
21
+ {% endfor %}
22
+ </ul>
23
+ {% endfor %}
24
+
25
+ {% include hooks/navbar-posthook.html %}
26
+ </div>
27
+ </nav>
@@ -0,0 +1,5 @@
1
+ {{
2
+ include.content |
3
+ replace: '<table', '<div class="table-wrapper"><table' |
4
+ replace: '</table>', '</table></div>'
5
+ }}
@@ -0,0 +1,55 @@
1
+ {% assign documents = site.documents | where: "collection", site.theme-settings.collection | where_exp: "page", "page.chapnum != null" %}
2
+ {% if page.subsite %}
3
+ {% assign documents = documents | where: "subsite", page.subsite %}
4
+ {% endif %}
5
+ {% assign pages = documents | where_exp: "page", "page.pagenum != null" | sort: "pagenum" %}
6
+ {% assign indices = documents | where_exp: "page", "page.pagenum == null" | sort: "chapnum" %}
7
+ {% assign sorted = "" | split: "" %}
8
+
9
+ {% for index in indices %}
10
+ {% assign chapter_pages = pages | where: "chapnum", index.chapnum %}
11
+ {% assign sorted = sorted | concat: chapter_pages %}
12
+ {% endfor %}
13
+
14
+ {% assign previous = nil %}
15
+ {% for p in sorted %}
16
+ {% if p.chapnum < page.chapnum or (p.chapnum == page.chapnum and p.pagenum < page.pagenum) %}
17
+ {% assign previous = p %}
18
+ {% endif %}
19
+ {% endfor %}
20
+
21
+ {% assign sorted = sorted | reverse %}
22
+ {% assign next = nil %}
23
+ {% for p in sorted %}
24
+ {% if p.chapnum > page.chapnum or (p.chapnum == page.chapnum and p.pagenum > page.pagenum) %}
25
+ {% assign next = p %}
26
+ {% endif %}
27
+ {% endfor %}
28
+
29
+ <div class="prev-next">
30
+
31
+ {% if previous != nil %}
32
+ <div class="previous">
33
+ <a href="{{ previous.url | relative_uri | uri_escape }}">
34
+ <span class="icon fas {% if site.theme-settings.fontawesome.icons.left %}{{ site.theme-settings.fontawesome.icons.left | escape }}{% else %}fa-arrow-left{% endif %}"></span>
35
+ <div>
36
+ <p class="label">Previous: {{ previous.chapter | escape }}</p>
37
+ <p class="title">{{ previous.title | escape }}</p>
38
+ </div>
39
+ </a>
40
+ </div>
41
+ {% endif %}
42
+
43
+ {% if next != nil %}
44
+ <div class="next">
45
+ <a href="{{ next.url | relative_uri | uri_escape }}">
46
+ <div>
47
+ <p class="label">Next: {{ next.chapter | escape }}</p>
48
+ <p class="title">{{ next.title | escape }}</p>
49
+ </div>
50
+ <span class="icon fas {% if site.theme-settings.fontawesome.icons.right %}{{ site.theme-settings.fontawesome.icons.right | escape }}{% else %}fa-arrow-right{% endif %}"></span>
51
+ </a>
52
+ </div>
53
+ {% endif %}
54
+
55
+ </div>
@@ -0,0 +1,17 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="refresh" content="0; url={{ include.redirect }}">
6
+ <meta name="robots" content="noindex">
7
+
8
+ <title>Redirecting...</title>
9
+
10
+ <link rel="canonical" href="{{ include.redirect }}">
11
+ <script type="text/javascript">window.location.href = "{{ include.redirect }}"</script>
12
+ </head>
13
+
14
+ <body>
15
+ <a href="{{ include.redirect }}">Click here if you are not automatically redirected.</a>
16
+ </body>
17
+ </html>
@@ -0,0 +1,96 @@
1
+ {% capture tocWorkspace %}
2
+ {% comment %}
3
+ Version 1.0.8
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
+
25
+ Output:
26
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
27
+ generate the table of contents and will NOT output the markdown given to it
28
+ {% endcomment %}
29
+
30
+ {% capture my_toc %}{% endcapture %}
31
+ {% assign orderedList = include.ordered | default: false %}
32
+ {% assign minHeader = include.h_min | default: 1 %}
33
+ {% assign maxHeader = include.h_max | default: 6 %}
34
+ {% assign nodes = include.html | split: '<h' %}
35
+ {% assign firstHeader = true %}
36
+
37
+ {% capture listModifier %}{% if orderedList %}1.{% else %}-{% endif %}{% endcapture %}
38
+
39
+ {% for node in nodes %}
40
+ {% if node == "" %}
41
+ {% continue %}
42
+ {% endif %}
43
+
44
+ {% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
45
+
46
+ {% if headerLevel < minHeader or headerLevel > maxHeader %}
47
+ {% continue %}
48
+ {% endif %}
49
+
50
+ {% if firstHeader %}
51
+ {% assign firstHeader = false %}
52
+ {% assign minHeader = headerLevel %}
53
+ {% endif %}
54
+
55
+ {% assign indentAmount = headerLevel | minus: minHeader %}
56
+ {% assign _workspace = node | split: '</h' %}
57
+
58
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
59
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
60
+ {% assign html_id = _idWorkspace[0] %}
61
+
62
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
63
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
64
+ {% assign html_class = _classWorkspace[0] %}
65
+
66
+ {% if html_class contains "no_toc" %}
67
+ {% continue %}
68
+ {% endif %}
69
+
70
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
71
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
72
+
73
+ {% assign space = '' %}
74
+ {% for i in (1..indentAmount) %}
75
+ {% assign space = space | prepend: ' ' %}
76
+ {% endfor %}
77
+
78
+ {% unless include.item_class == blank %}
79
+ {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
80
+ {% endunless %}
81
+
82
+ {% capture heading_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
83
+ {% capture my_toc %}{{ my_toc }}
84
+ {{ space }}{{ listModifier }} {{ listItemClass }} [{{ heading_body | replace: "|", "\|" }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
85
+ {% endfor %}
86
+
87
+ {% if include.class %}
88
+ {% capture my_toc %}{:.{{ include.class }}}
89
+ {{ my_toc | lstrip }}{% endcapture %}
90
+ {% endif %}
91
+
92
+ {% if include.id %}
93
+ {% capture my_toc %}{: #{{ include.id }}}
94
+ {{ my_toc | lstrip }}{% endcapture %}
95
+ {% endif %}
96
+ {% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
@@ -0,0 +1,23 @@
1
+ {% include internal/header.html %}
2
+
3
+ <article>
4
+
5
+ <h1>{{ page.chapter | escape }}</h1>
6
+
7
+ {% assign content = content | strip %}{% if content.size > 0 %}{{ content }}{% endif %}
8
+
9
+ <h2>Contents</h2>
10
+
11
+ {% assign pages = site.documents | where: "collection", site.theme-settings.collection | where: "chapnum", page.chapnum | where_exp: "page", "page.pagenum != null" | sort: "pagenum" %}
12
+ {% if page.subsite %}
13
+ {% assign pages = pages | where: "subsite", page.subsite %}
14
+ {% endif %}
15
+ <ul>
16
+ {% for page in pages %}<li><a href="{{ page.url | uri_escape }}">{{ page.title | escape }}</a></li>{% endfor %}
17
+ </ul>
18
+
19
+ {% include internal/copyright.html %}
20
+
21
+ </article>
22
+
23
+ {% include internal/footer.html %}
@@ -0,0 +1,7 @@
1
+ {% assign pages = site.documents | where: "collection", site.theme-settings.collection | where: "chapnum", page.chapnum | where_exp: "page", "page.pagenum != null" | sort: "pagenum" %}
2
+ {% if page.subsite %}
3
+ {% assign pages = pages | where: "subsite", page.subsite %}
4
+ {% endif %}
5
+
6
+ {% assign redirect = pages[0].url | relative_url | uri_escape %}
7
+ {% include internal/redirect.html redirect=redirect %}
@@ -0,0 +1,40 @@
1
+ {% include internal/header.html %}
2
+
3
+ {% capture toc %}{% include thirdparty/toc.html html=content h_min=2 h_max=4 %}{% endcapture %}
4
+ {% assign toc = toc | strip %}
5
+
6
+ <div class="contents">
7
+
8
+ {% if toc.size > 0 %}
9
+ <div class="inner">
10
+ <p class="heading"><span class="icon fas {% if site.theme-settings.fontawesome.icons.contents %}{{ site.theme-settings.fontawesome.icons.contents | escape }}{% else %}fa-list{% endif %}"></span> Contents</p>
11
+ {{ toc }}
12
+ <ul><li><a href="#top"><span class="icon fas {% if site.theme-settings.fontawesome.icons.top %}{{ site.theme-settings.fontawesome.icons.top | escape }}{% else %}fa-arrow-up{% endif %}"></span> Return to top</a></li></ul>
13
+ </div>
14
+ {% endif %}
15
+
16
+ </div>
17
+
18
+ <article>
19
+
20
+ {% if page.chapter %}<p class="chapter" id="top">{% if page.icon %}{% assign components = page.url | split: "/" %}<span class="icon icon-{{ components[-2] | escape }} {{ page.icon | escape }}"></span>{% else %}<span class="icon fas {% if site.theme-settings.fontawesome.icons.page %}{{ site.theme-settings.fontawesome.icons.page | escape }}{% else %}fa-angle-double-right{% endif %}"></span>{% endif %} {{ page.chapter | escape }}</p>{% endif %}
21
+ <h1>{{ page.title | escape }}</h1>
22
+
23
+ {% if toc.size > 0 %}
24
+ <div class="contents-inline">
25
+
26
+ <h2>Contents</h2>
27
+ {{ toc }}
28
+
29
+ </div>
30
+ {% endif %}
31
+
32
+ {% include internal/postprocessing.html content=content %}
33
+
34
+ {% include internal/prev-next.html %}
35
+
36
+ {% include internal/copyright.html %}
37
+
38
+ </article>
39
+
40
+ {% include internal/footer.html %}
@@ -0,0 +1,7 @@
1
+ {% assign indices = site.documents | where: "collection", site.theme-settings.collection | where_exp: "page", "page.chapnum != null" | where_exp: "page", "page.pagenum == null" | sort: "chapnum" %}
2
+ {% if page.subsite %}
3
+ {% assign indices = indices | where: "subsite", page.subsite %}
4
+ {% endif %}
5
+
6
+ {% assign redirect = indices[0].url | replace: "/index", "" | relative_url | uri_escape %}
7
+ {% include internal/redirect.html redirect=redirect %}
@@ -0,0 +1,400 @@
1
+ .icon
2
+ {
3
+ display: inline-block;
4
+ padding-right: 0.25rem;
5
+ }
6
+
7
+ .custom-alert
8
+ {
9
+ display: flex;
10
+ align-items: stretch;
11
+ background-color: var(--main-background);
12
+ border-radius: 0.5rem;
13
+ margin: 2.5rem 0.5rem;
14
+ }
15
+
16
+ .custom-alert .alert-icon, .custom-alert .content {
17
+ padding: 1.5rem;
18
+ }
19
+
20
+ .custom-alert .alert-icon
21
+ {
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ background-color: var(--icon-background);
26
+ color: var(--icon-colour);
27
+ text-align: center;
28
+ }
29
+
30
+ .custom-alert .alert-icon, .custom-alert .content p, .custom-alert .content ol, .custom-alert .content ul {
31
+ margin: 0;
32
+ }
33
+
34
+ .custom-alert .content p
35
+ {
36
+ font-size: 0.95rem;
37
+ text-align: left;
38
+ }
39
+
40
+ .custom-alert .content p + p, .custom-alert .content p + ul, .custom-alert .content ul + p {
41
+ margin-top: 1rem;
42
+ }
43
+
44
+ .custom-alert.info
45
+ {
46
+ --main-background: rgb(231, 245, 255);
47
+ --icon-background: rgb(116, 192, 252);
48
+ --icon-colour: rgb(19, 109, 200);
49
+ color: rgb(0, 55, 114);
50
+ }
51
+
52
+ .custom-alert.warning
53
+ {
54
+ --main-background: rgb(255, 249, 219);
55
+ --icon-background: rgb(255, 224, 102);
56
+ --icon-colour: rgb(242, 152, 4);
57
+ color: rgb(97, 73, 3);
58
+ }
59
+
60
+ header
61
+ {
62
+ box-shadow: $box-shadow-colour 0 0.25rem 0.75rem 0;
63
+ border-bottom: 1px solid rgb(212, 218, 223);
64
+ background-color: #fafafa;
65
+ }
66
+
67
+ header .logo {
68
+ height: $header-height - ($header-padding * 2);
69
+ }
70
+
71
+ header .navtoggle a, header .to-top a {
72
+ padding: $header-padding;
73
+ }
74
+
75
+ header .navtoggle a, header .navtoggle a:hover, header .to-top a, header .to-top a:hover
76
+ {
77
+ text-decoration: none;
78
+ color: #000;
79
+ }
80
+
81
+ nav, .contents {
82
+ font-size: 0.9rem;
83
+ }
84
+
85
+ nav
86
+ {
87
+ border-right: 1px solid $default-border-colour;
88
+ background-color: rgb(245, 247, 249);
89
+ }
90
+
91
+ nav .chapter, .contents .heading, article .chapter, .prev-next a .label, .prev-next a .label:hover
92
+ {
93
+ color: #8a96a1;
94
+ text-transform: uppercase;
95
+ font-weight: 700;
96
+ margin: 0;
97
+ }
98
+
99
+ nav ul + .chapter {
100
+ margin-top: 2rem;
101
+ }
102
+
103
+ nav ul, nav ul li, .contents ul, .contents ul li
104
+ {
105
+ list-style-type: none;
106
+ padding: 0;
107
+ margin: 0;
108
+ }
109
+
110
+ .contents ul li ul {
111
+ padding-left: 1.25rem;
112
+ }
113
+
114
+ .contents ul li {
115
+ max-width: 18rem;
116
+ }
117
+
118
+ nav ul li a, nav ul li a:hover,
119
+ .contents ul li a, .contents ul li a:hover,
120
+ footer a, footer a:hover,
121
+ .prev-next a
122
+ {
123
+ color: rgb(59, 69, 78);
124
+ text-decoration: none;
125
+ }
126
+
127
+ nav ul:last-child {
128
+ padding-bottom: $header-height / 2;
129
+ }
130
+
131
+ nav .chapter, nav ul li a, .contents .heading, .contents ul li a {
132
+ padding: 0.5rem 1rem;
133
+ }
134
+
135
+ nav .chapter, nav ul li a {
136
+ padding-right: $sidebar-padding;
137
+ }
138
+
139
+ nav ul li a
140
+ {
141
+ border: 1px solid transparent;
142
+ font-weight: 600;
143
+ cursor: pointer;
144
+ display: block;
145
+ }
146
+
147
+ nav ul li a:hover {
148
+ background-color: $default-border-colour;
149
+ }
150
+
151
+ nav ul li.selected a, nav ul li.selected a:hover, .contents ul li a:hover, .prev-next a:hover {
152
+ color: $link-hover-colour;
153
+ }
154
+
155
+ nav ul li.selected a, nav ul li.selected a:hover
156
+ {
157
+ background-color: #fff;
158
+ border: 1px solid $default-border-colour;
159
+ }
160
+
161
+ .contents .inner {
162
+ border-left: 1px solid $default-border-colour;
163
+ }
164
+
165
+ nav ul li a, nav ul li.selected a, nav ul li.selected a:hover {
166
+ border-right: none;
167
+ }
168
+
169
+ /*
170
+ Offset heading anchors to prevent them from being covered by the sticky header
171
+ (Adapted from the code in this SO answer: <https://stackoverflow.com/a/22655654>)
172
+ */
173
+ article :target::before
174
+ {
175
+ content: "";
176
+ display: block;
177
+ height: $header-height * 1.5;
178
+ margin: #{0 - ($header-height * 1.5)} 0 0;
179
+ }
180
+
181
+ article strong, article table th {
182
+ font-weight: 600;
183
+ }
184
+
185
+ article .chapter
186
+ {
187
+ margin-bottom: 0.5rem;
188
+ font-size: 0.9rem;
189
+ }
190
+
191
+ article .contents-inline + * {
192
+ margin-top: 6rem;
193
+ }
194
+
195
+ article h1, article h2, article h3, article h4 {
196
+ font-weight: 600;
197
+ }
198
+
199
+ article h1 {
200
+ margin-bottom: 5rem;
201
+ }
202
+
203
+ article h2
204
+ {
205
+ margin-top: 6rem;
206
+ margin-bottom: 2rem;
207
+ }
208
+
209
+ article h2:first-child {
210
+ margin-top: 0;
211
+ }
212
+
213
+ article h3
214
+ {
215
+ font-size: 1.5rem;
216
+ margin-top: 3rem;
217
+ margin-bottom: 2rem;
218
+ }
219
+
220
+ article h4
221
+ {
222
+ font-size: 1.1rem;
223
+ margin-top: 2rem;
224
+ margin-bottom: 1rem;
225
+ }
226
+
227
+ article p {
228
+ line-height: 1.6rem;
229
+ }
230
+
231
+ article li {
232
+ line-height: 1.75rem;
233
+ }
234
+
235
+ article p + ul {
236
+ margin: 2rem 0;
237
+ }
238
+
239
+ article .table-wrapper
240
+ {
241
+ margin: 2rem 0;
242
+ overflow-x: auto;
243
+ }
244
+
245
+ article table
246
+ {
247
+ border-color: $default-border-colour;
248
+ border-collapse: collapse;
249
+ border-spacing: 0;
250
+ min-width: 100%;
251
+ margin: 0;
252
+ }
253
+
254
+ article table th, article table td
255
+ {
256
+ border: 1px solid $default-border-colour;
257
+ padding: 0.75rem 1rem;
258
+ }
259
+
260
+ article table thead tr, article table th {
261
+ background-color: #fafafa;
262
+ }
263
+
264
+ article figure {
265
+ margin: 3rem 0.5rem;
266
+ }
267
+
268
+ article figcaption
269
+ {
270
+ text-align: center;
271
+ font-weight: 600;
272
+ margin-top: 1rem;
273
+ }
274
+
275
+ article blockquote
276
+ {
277
+ border-left: 0.25rem solid #ccc;
278
+ margin: 2rem 1rem;
279
+ padding-left: 1rem;
280
+ color: #777;
281
+ }
282
+
283
+ article p code, article li code, article th code, article td code
284
+ {
285
+ background-color: rgba(0, 0, 0, 0.04);
286
+ padding: 0.25rem 0.5rem;
287
+ border-radius: 0.25rem;
288
+ display: inline-block;
289
+ margin: 0 0.1rem;
290
+ color: #000;
291
+ }
292
+
293
+ article li code {
294
+ line-height: 1.25rem;
295
+ }
296
+
297
+ article a code
298
+ {
299
+ display: inline;
300
+ margin: 0;
301
+ color: inherit;
302
+ word-wrap: break-word;
303
+ white-space: normal;
304
+ }
305
+
306
+ article pre
307
+ {
308
+ background-color: rgb(247, 247, 247);
309
+ border: 1px solid rgb(214, 216, 219);
310
+ border-radius: 0.25rem;
311
+ padding: 1.5rem;
312
+ line-height: 1.5rem;
313
+ white-space: pre-wrap;
314
+ word-wrap: break-word;
315
+ }
316
+
317
+ article pre, article pre code {
318
+ font-size: 0.95rem;
319
+ }
320
+
321
+ article .footnote:before {
322
+ content: "[";
323
+ }
324
+
325
+ article .footnote:after {
326
+ content: "]";
327
+ }
328
+
329
+ .detail-list li p:first-child
330
+ {
331
+ font-weight: 600;
332
+ margin-bottom: 0;
333
+ }
334
+
335
+ .prev-next {
336
+ margin-top: $header-height * 1.5;
337
+ }
338
+
339
+ .prev-next a
340
+ {
341
+ display: flex;
342
+ flex-direction: row;
343
+ align-items: center;
344
+ border: 1px solid $default-border-colour;
345
+ box-shadow: $box-shadow-colour 0 0 0.5rem 0;
346
+ transition: all 0.3s ease;
347
+ border-radius: 0.25rem;
348
+ padding: 1rem;
349
+ }
350
+
351
+ .prev-next a:hover {
352
+ border: 1px solid $link-hover-colour;
353
+ }
354
+
355
+ .prev-next a .icon
356
+ {
357
+ flex: 0 0 auto;
358
+ padding: 0 0.5rem;
359
+ }
360
+
361
+ .prev-next a div {
362
+ flex: 1;
363
+ }
364
+
365
+ .prev-next a p {
366
+ margin: 0;
367
+ }
368
+
369
+ .previous a p {
370
+ text-align: right;
371
+ }
372
+
373
+ .next a p {
374
+ text-align: left;
375
+ }
376
+
377
+ .prev-next a .label {
378
+ font-size: 0.9rem;
379
+ }
380
+
381
+ .prev-next a .title {
382
+ font-weight: 600;
383
+ }
384
+
385
+ footer
386
+ {
387
+ font-size: 0.9rem;
388
+ color: rgb(157, 170, 182);
389
+ border-top: 2px solid $default-border-colour;
390
+ margin-top: 2rem;
391
+ padding-top: 2rem;
392
+ }
393
+
394
+ footer p {
395
+ margin: 0;
396
+ }
397
+
398
+ footer .to-top {
399
+ padding-left: 2rem;
400
+ }