dss_tech_docs 0.1.0

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 (151) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +29 -0
  3. data/.gitignore +37 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +11 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +9 -0
  8. data/CHANGELOG.md +274 -0
  9. data/CONTRIBUTING.md +9 -0
  10. data/Gemfile +4 -0
  11. data/LICENCE +21 -0
  12. data/README.md +89 -0
  13. data/Rakefile +13 -0
  14. data/docs/configuration.md +205 -0
  15. data/docs/core-layout-without-sidebar.png +0 -0
  16. data/docs/core-layout.png +0 -0
  17. data/docs/expired-page.png +0 -0
  18. data/docs/frontmatter.md +145 -0
  19. data/docs/last-reviewed-only.png +0 -0
  20. data/docs/last-reviewed-only.svg +1 -0
  21. data/docs/layout-layout.png +0 -0
  22. data/docs/not-expired-page.png +0 -0
  23. data/docs/page-expiry.md +85 -0
  24. data/dss_tech_docs.gemspec +46 -0
  25. data/example/.ruby-version +1 -0
  26. data/example/Gemfile +3 -0
  27. data/example/config.rb +9 -0
  28. data/example/config/hide-expiry.yml +51 -0
  29. data/example/config/tech-docs.yml +50 -0
  30. data/example/source/api-path.html.md +7 -0
  31. data/example/source/api-reference.html.md +5 -0
  32. data/example/source/child-of-expired-page.html.md +8 -0
  33. data/example/source/core-layout-without-sidebar.html.md.erb +7 -0
  34. data/example/source/core-layout.html.md.erb +12 -0
  35. data/example/source/expired-page-with-owner.html.md +10 -0
  36. data/example/source/expired-page.html.md +9 -0
  37. data/example/source/headings.html.md +11 -0
  38. data/example/source/index.html.md.erb +19 -0
  39. data/example/source/javascripts/application.js +1 -0
  40. data/example/source/not-expired-page.html.md +9 -0
  41. data/example/source/pets.yml +109 -0
  42. data/example/source/stylesheets/print.css.scss +3 -0
  43. data/example/source/stylesheets/screen-old-ie.css.scss +4 -0
  44. data/example/source/stylesheets/screen.css.scss +1 -0
  45. data/example/source/templates/proxy_template.html.md +8 -0
  46. data/lib/assets/javascripts/_analytics.js +58 -0
  47. data/lib/assets/javascripts/_govuk/modules.js +57 -0
  48. data/lib/assets/javascripts/_modules/anchored-headings.js +18 -0
  49. data/lib/assets/javascripts/_modules/collapsible-navigation.js +95 -0
  50. data/lib/assets/javascripts/_modules/in-page-navigation.js +132 -0
  51. data/lib/assets/javascripts/_modules/navigation.js +34 -0
  52. data/lib/assets/javascripts/_modules/page-expiry.js +15 -0
  53. data/lib/assets/javascripts/_modules/search.js +367 -0
  54. data/lib/assets/javascripts/_modules/table-of-contents.js +111 -0
  55. data/lib/assets/javascripts/_start-modules.js +13 -0
  56. data/lib/assets/javascripts/_vendor/fixedsticky.js +194 -0
  57. data/lib/assets/javascripts/_vendor/jquery.js +5 -0
  58. data/lib/assets/javascripts/_vendor/jquery.mark.js +1081 -0
  59. data/lib/assets/javascripts/_vendor/lodash.js +613 -0
  60. data/lib/assets/javascripts/_vendor/modernizr.js +3 -0
  61. data/lib/assets/javascripts/govuk_tech_docs.js +10 -0
  62. data/lib/assets/stylesheets/_accessibility.scss +9 -0
  63. data/lib/assets/stylesheets/_core.scss +71 -0
  64. data/lib/assets/stylesheets/_fonts.scss +29 -0
  65. data/lib/assets/stylesheets/_govuk_tech_docs.scss +2 -0
  66. data/lib/assets/stylesheets/_syntax-highlighting.scss +196 -0
  67. data/lib/assets/stylesheets/_variables.scss +12 -0
  68. data/lib/assets/stylesheets/govuk_frontend_toolkit/_colours.scss +2 -0
  69. data/lib/assets/stylesheets/govuk_frontend_toolkit/_conditionals.scss +81 -0
  70. data/lib/assets/stylesheets/govuk_frontend_toolkit/_css3.scss +90 -0
  71. data/lib/assets/stylesheets/govuk_frontend_toolkit/_device-pixels.scss +10 -0
  72. data/lib/assets/stylesheets/govuk_frontend_toolkit/_font_stack.scss +19 -0
  73. data/lib/assets/stylesheets/govuk_frontend_toolkit/_grid_layout.scss +136 -0
  74. data/lib/assets/stylesheets/govuk_frontend_toolkit/_helpers.scss +16 -0
  75. data/lib/assets/stylesheets/govuk_frontend_toolkit/_measurements.scss +14 -0
  76. data/lib/assets/stylesheets/govuk_frontend_toolkit/_shims.scss +55 -0
  77. data/lib/assets/stylesheets/govuk_frontend_toolkit/_typography.scss +249 -0
  78. data/lib/assets/stylesheets/govuk_frontend_toolkit/_url-helpers.scss +16 -0
  79. data/lib/assets/stylesheets/govuk_frontend_toolkit/colours/_organisation.scss +103 -0
  80. data/lib/assets/stylesheets/govuk_frontend_toolkit/colours/_palette.scss +77 -0
  81. data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_alpha-beta.scss +66 -0
  82. data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_breadcrumbs.scss +53 -0
  83. data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_buttons.scss +141 -0
  84. data/lib/assets/stylesheets/govuk_frontend_toolkit/design-patterns/_media-player.scss +242 -0
  85. data/lib/assets/stylesheets/modules/_anchored-heading.scss +54 -0
  86. data/lib/assets/stylesheets/modules/_app-pane.scss +64 -0
  87. data/lib/assets/stylesheets/modules/_collapsible.scss +52 -0
  88. data/lib/assets/stylesheets/modules/_contribution-banner.scss +22 -0
  89. data/lib/assets/stylesheets/modules/_footer.scss +130 -0
  90. data/lib/assets/stylesheets/modules/_govuk-logo.scss +47 -0
  91. data/lib/assets/stylesheets/modules/_header.scss +290 -0
  92. data/lib/assets/stylesheets/modules/_page-review.scss +35 -0
  93. data/lib/assets/stylesheets/modules/_phase-banner.scss +22 -0
  94. data/lib/assets/stylesheets/modules/_search.scss +137 -0
  95. data/lib/assets/stylesheets/modules/_skip-link.scss +31 -0
  96. data/lib/assets/stylesheets/modules/_technical-documentation.scss +241 -0
  97. data/lib/assets/stylesheets/modules/_toc.scss +216 -0
  98. data/lib/assets/stylesheets/modules/_warning-text.scss +73 -0
  99. data/lib/assets/stylesheets/palette/_syntax-highlighting.scss +23 -0
  100. data/lib/assets/stylesheets/utilities/_fonts.scss +29 -0
  101. data/lib/assets/stylesheets/utilities/_printable.scss +13 -0
  102. data/lib/assets/stylesheets/vendor/_fixedsticky.scss +22 -0
  103. data/lib/dss_tech_docs.rb +121 -0
  104. data/lib/govuk_tech_docs/api_reference/api_reference_extension.rb +101 -0
  105. data/lib/govuk_tech_docs/api_reference/api_reference_renderer.rb +279 -0
  106. data/lib/govuk_tech_docs/api_reference/templates/api_reference_full.html.erb +19 -0
  107. data/lib/govuk_tech_docs/api_reference/templates/operation.html.erb +11 -0
  108. data/lib/govuk_tech_docs/api_reference/templates/parameters.html.erb +28 -0
  109. data/lib/govuk_tech_docs/api_reference/templates/path.html.erb +4 -0
  110. data/lib/govuk_tech_docs/api_reference/templates/responses.html.erb +33 -0
  111. data/lib/govuk_tech_docs/api_reference/templates/schema.html.erb +29 -0
  112. data/lib/govuk_tech_docs/contribution_banner.rb +62 -0
  113. data/lib/govuk_tech_docs/meta_tags.rb +67 -0
  114. data/lib/govuk_tech_docs/page_review.rb +52 -0
  115. data/lib/govuk_tech_docs/pages.rb +32 -0
  116. data/lib/govuk_tech_docs/redirects.rb +39 -0
  117. data/lib/govuk_tech_docs/table_of_contents/heading.rb +30 -0
  118. data/lib/govuk_tech_docs/table_of_contents/heading_tree.rb +27 -0
  119. data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +41 -0
  120. data/lib/govuk_tech_docs/table_of_contents/heading_tree_renderer.rb +46 -0
  121. data/lib/govuk_tech_docs/table_of_contents/headings_builder.rb +39 -0
  122. data/lib/govuk_tech_docs/table_of_contents/helpers.rb +79 -0
  123. data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +34 -0
  124. data/lib/govuk_tech_docs/unique_identifier_extension.rb +13 -0
  125. data/lib/govuk_tech_docs/unique_identifier_generator.rb +72 -0
  126. data/lib/govuk_tech_docs/version.rb +3 -0
  127. data/lib/govuk_tech_docs/warning_text_extension.rb +23 -0
  128. data/lib/source/api/pages.json.erb +1 -0
  129. data/lib/source/favicon.ico +0 -0
  130. data/lib/source/images/anchored-heading-icon-2x.png +0 -0
  131. data/lib/source/images/anchored-heading-icon.png +0 -0
  132. data/lib/source/images/gov.uk_logotype_crown-2x.png +0 -0
  133. data/lib/source/images/gov.uk_logotype_crown.png +0 -0
  134. data/lib/source/images/gov.uk_logotype_crown_invert_trans.png +0 -0
  135. data/lib/source/images/govuk-crest-2x.png +0 -0
  136. data/lib/source/images/govuk-crest.png +0 -0
  137. data/lib/source/images/govuk-icn-close.png +0 -0
  138. data/lib/source/images/govuk-icn-close@2x.png +0 -0
  139. data/lib/source/images/govuk-icn-numbered-list.png +0 -0
  140. data/lib/source/images/govuk-icn-numbered-list@2x.png +0 -0
  141. data/lib/source/images/open-government-licence.png +0 -0
  142. data/lib/source/images/open-government-licence_2x.png +0 -0
  143. data/lib/source/images/search-result-caret.svg +13 -0
  144. data/lib/source/layouts/_analytics.erb +15 -0
  145. data/lib/source/layouts/_footer.erb +10 -0
  146. data/lib/source/layouts/_header.erb +44 -0
  147. data/lib/source/layouts/_page_review.erb +22 -0
  148. data/lib/source/layouts/_search.erb +16 -0
  149. data/lib/source/layouts/core.erb +82 -0
  150. data/lib/source/layouts/layout.erb +18 -0
  151. metadata +474 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Skip Link Component
3
+ *
4
+ * Notes:
5
+ *
6
+ * - Should be the first element in your <body>
7
+ * - Ensure the target (e.g. #main) exists within your pages.
8
+ *
9
+ * Example Usage:
10
+ *
11
+ * <a href="#main" class="skip-link">Skip to main content</a>
12
+ */
13
+
14
+ .skip-link {
15
+ display: block;
16
+ position: absolute;
17
+ left: -9999em;
18
+
19
+ &:focus {
20
+ position: relative;
21
+ left: inherit;
22
+ background: $yellow;
23
+ color: $black;
24
+ text-decoration: none;
25
+ padding: 5px $gutter-half;
26
+
27
+ @include media(tablet) {
28
+ padding: 5px $gutter;
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,241 @@
1
+ // Adds combination of margin and padding to headings to make them appear
2
+ // correctly when they're linked to as anchors, and scale them on mobile
3
+ // TODO: Headings are hidden underneath the sticky 'table of contents' on mobile
4
+ // when following a link to them
5
+
6
+ @mixin heading-offset($tabletTopMargin) {
7
+ // Scale margins with font size on mobile (16/19ths)
8
+ $mobileTopMargin: ceil($tabletTopMargin * (16 / 19));
9
+
10
+ padding-top: min($mobileTopMargin, $gutter-half);
11
+ margin-top: max(0, $mobileTopMargin - $gutter-half);
12
+
13
+ @include media(tablet) {
14
+ padding-top: min($tabletTopMargin, $gutter);
15
+ margin-top: max(0, $tabletTopMargin - $gutter);
16
+ }
17
+ }
18
+
19
+ .technical-documentation {
20
+ // Required for IE11 to render <main> correctly
21
+ display: block;
22
+ margin: 0 $gutter-half 10px;
23
+ max-width: 40em;
24
+
25
+ line-height: 1.4;
26
+
27
+ color: $text-colour;
28
+
29
+ @include media(tablet) {
30
+ // We add 2 pixels to the gutter here to ensure there's sufficient spacing between
31
+ // an anchor link (see _anchored-heading.scss) on a heading and the left-hand pane.
32
+ margin: 0 ($gutter + 2px) $gutter;
33
+ }
34
+
35
+ .has-search-results-open & {
36
+ visibility: hidden;
37
+ }
38
+
39
+ // Headings
40
+ h1 {
41
+ @include bold-48;
42
+ @include heading-offset($gutter * 2);
43
+ border-top: 5px solid $text-colour;
44
+
45
+ &:first-of-type {
46
+ @include heading-offset($gutter);
47
+ border-top: none;
48
+ }
49
+ }
50
+
51
+ h2 {
52
+ @include bold-36;
53
+ @include heading-offset($gutter * 1.5);
54
+ }
55
+
56
+ h3, h4, h5, h6 {
57
+ @include heading-offset($gutter);
58
+ }
59
+
60
+ h3 {
61
+ @include bold-24;
62
+ }
63
+
64
+ h4 {
65
+ @include bold-19;
66
+ }
67
+
68
+ h5 {
69
+ @include bold-19;
70
+ color: $secondary-text-colour;
71
+ }
72
+
73
+ h6 {
74
+ @include core-19;
75
+ color: $secondary-text-colour;
76
+ }
77
+
78
+ // Expand margin when h1 followed directly by paragraph
79
+ h1 + p {
80
+ @include media(tablet) {
81
+ margin-top: $gutter * 1.5;
82
+ }
83
+ }
84
+
85
+ // Tighten up margins where headings follow each other
86
+ h1 + h2 {
87
+ @include heading-offset($gutter);
88
+ }
89
+
90
+ h2 + h3, h3 + h4, h4 + h5, h5 + h6 {
91
+ @include heading-offset(20px);
92
+ }
93
+
94
+ p {
95
+ margin-top: ceil($gutter-half * (16 / 19));
96
+ margin-bottom: 0;
97
+
98
+ @include media(tablet) {
99
+ margin-top: $gutter-half;
100
+ }
101
+ }
102
+
103
+ img {
104
+ max-width: 100%;
105
+ width: auto;
106
+ height: auto;
107
+ }
108
+
109
+ ol, ul {
110
+ margin: $gutter-half 0 0;
111
+ padding-left: 20px;
112
+ }
113
+
114
+ ol ol, ul ul, ol ul, ul ol {
115
+ margin-top: 0;
116
+ }
117
+
118
+ li {
119
+ margin-top: 5px;
120
+ }
121
+
122
+ ol + p, ul + p, .table-container + p {
123
+ margin-top: ceil($gutter * (16 / 19));
124
+
125
+ @include media(tablet) {
126
+ margin-top: $gutter;
127
+ }
128
+ }
129
+
130
+ blockquote {
131
+ background: $grey-4;
132
+ padding: $gutter-half;
133
+ margin: $gutter-half;
134
+ border-left: 5px solid $grey-3;
135
+ }
136
+
137
+ pre {
138
+ background: $code-00;
139
+ padding: 15px;
140
+ overflow: auto;
141
+ position: relative;
142
+ border: 1px solid $code-02;
143
+ // Restrict the width of pre tags, as they have a tendency grow larger than
144
+ // the viewport when placed within table cells.
145
+ // @todo: Use table-layout: fixed, and remove the max-width definition from
146
+ // .technical-documentation so tables can fill the viewport.
147
+ max-width: 40em;
148
+ }
149
+
150
+ pre code {
151
+ background: none;
152
+ color: inherit;
153
+ padding: 0;
154
+ }
155
+
156
+ code {
157
+ background: $code-01;
158
+ padding: 3px 5px;
159
+ border-radius: 1px;
160
+
161
+ font-family: monaco, Consolas, "Lucida Console", monospace;
162
+ font-size: 15px;
163
+ color: $code-0E;
164
+
165
+ @include media(tablet) {
166
+ font-size: 16px;
167
+ }
168
+
169
+ // Handle long strings (URLs, long variable names, etc) by allowing them
170
+ // to break anywhere if required.
171
+ overflow-wrap: break-word;
172
+ word-wrap: break-word;
173
+
174
+ -ms-word-break: break-all;
175
+ /* This is the dangerous one in WebKit, as it breaks things wherever */
176
+ word-break: break-all;
177
+ /* Instead use this non-standard one: */
178
+ word-break: break-word;
179
+ }
180
+
181
+ // Support monospace headings for e.g. listing API endpoints
182
+ h1, h2, h3, h4, h5, h6 {
183
+ code {
184
+ font-size: inherit;
185
+ color: $text-colour;
186
+ background: none;
187
+ padding: 0;
188
+ }
189
+ }
190
+
191
+ .table-container {
192
+ display: block;
193
+ max-width: 100%;
194
+ overflow-x: auto;
195
+
196
+ margin-top: $gutter-half;
197
+ }
198
+
199
+ table {
200
+ width: 100%;
201
+
202
+ border-collapse: collapse;
203
+ border-spacing: 0;
204
+ }
205
+
206
+ th, td {
207
+ padding: $gutter-one-third $gutter-two-thirds $gutter-one-third 0;
208
+
209
+ background-color: transparent;
210
+ border-bottom: 1px solid $border-colour;
211
+ border-width: 0 0 1px 0;
212
+
213
+ @include core-16;
214
+ vertical-align: top;
215
+ text-align: left;
216
+ }
217
+
218
+ th {
219
+ font-weight: bold;
220
+ }
221
+
222
+ td {
223
+ p, ul, ol {
224
+ margin: 0;
225
+ }
226
+ p+p, p+ul, p+ol,
227
+ ul+p, ul+ol,
228
+ ol+p {
229
+ margin-top: $gutter-one-third;
230
+ }
231
+ }
232
+
233
+ hr {
234
+ height: 1px;
235
+ border: none;
236
+ margin-top: $gutter - 1px;
237
+ margin-bottom: $gutter;
238
+ background-color: $border-colour;
239
+ color: $border-colour;
240
+ }
241
+ }
@@ -0,0 +1,216 @@
1
+ @include screen {
2
+ .toc {
3
+
4
+ @include core-16;
5
+ padding: $gutter-half;
6
+
7
+ ul {
8
+ list-style: none;
9
+ padding: 0;
10
+ margin: 0;
11
+ }
12
+
13
+ &__close {
14
+ display: none;
15
+ }
16
+
17
+ a:link, a:visited {
18
+ text-decoration: none;
19
+ color: $link-colour;
20
+ }
21
+
22
+ a:hover {
23
+ text-decoration: underline;
24
+ }
25
+
26
+ &__list {
27
+
28
+ a:link, a:visited {
29
+ display: block;
30
+ padding: 8px $gutter 8px $gutter-half;
31
+ margin: 0 $gutter-half * -1;
32
+ border-left: 5px solid transparent;
33
+
34
+ @include media(tablet) {
35
+ &.toc-link--in-view {
36
+ color: $link-active-colour;
37
+ border-left-color: $link-active-colour;
38
+ background-color: $grey-4;
39
+ }
40
+ }
41
+ }
42
+
43
+ // Top level
44
+ > ul > li > a:link {
45
+ @include bold-19;
46
+ }
47
+
48
+ @include media(tablet) {
49
+ // Level 3
50
+ li li li {
51
+ a:link, a:visited {
52
+ padding-left: $gutter-half * 2;
53
+ }
54
+ }
55
+
56
+ // Level 4
57
+ li li li li {
58
+ a:link, a:visited {
59
+ padding-left: $gutter-half * 4;
60
+ }
61
+ }
62
+
63
+ // Level 5
64
+ li li li li li {
65
+ a:link, a:visited {
66
+ padding-left: $gutter-half * 5;
67
+ }
68
+ }
69
+
70
+ // Level 6
71
+ li li li li li li {
72
+ a:link, a:visited {
73
+ padding-left: $gutter-half * 6;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ .toc-show {
81
+ display: none;
82
+ }
83
+
84
+ @include media(tablet) {
85
+ .toc {
86
+ padding: 22px $gutter $gutter-half;
87
+ }
88
+
89
+ // Prevent the fixedsticky spacer from appearing if the browser is resized
90
+ // from mobile to desktop.
91
+ .fixedsticky-on + .fixedsticky-dummy {
92
+ display: none !important;
93
+ }
94
+ }
95
+
96
+ @include media(mobile) {
97
+ .js {
98
+ .toc {
99
+ display: none;
100
+
101
+ // Hide third level nav and below on mobile
102
+ li li li {
103
+ display: none;
104
+ }
105
+ }
106
+
107
+ .toc-show {
108
+ display: block;
109
+ position: sticky;
110
+ top: 0;
111
+ box-sizing: border-box;
112
+ width: 100%;
113
+ z-index: 10;
114
+
115
+ &__label {
116
+ display: block;
117
+ position: relative;
118
+ z-index: 10;
119
+
120
+ padding: $gutter-half $gutter-half 10px;
121
+
122
+ background: $grey-4;
123
+ @supports(backdrop-filter: blur(2px)) {
124
+ background: transparentize($grey-4, 0.05);
125
+ backdrop-filter: blur(2px);
126
+ }
127
+ border-bottom: 1px solid $grey-2;
128
+ box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
129
+ color: $text-colour;
130
+ text-decoration: none;
131
+ }
132
+
133
+ &__icon {
134
+ width: 20px;
135
+ height: 20px;
136
+ float: right;
137
+
138
+ background-image: file-url('govuk-icn-numbered-list.png');
139
+ background-repeat: no-repeat;
140
+ background-position: left center;
141
+
142
+ @include device-pixel-ratio {
143
+ background-image: file-url('govuk-icn-numbered-list@2x.png');
144
+ background-size: 20px 20px;
145
+ }
146
+ }
147
+ }
148
+
149
+ .toc__list {
150
+ margin-right: $gutter * 1.5;
151
+ }
152
+
153
+ .toc__close {
154
+ display: block;
155
+ position: sticky;
156
+ right: 0;
157
+ top: 0;
158
+
159
+ float: right;
160
+ width: 20px;
161
+ height: 20px;
162
+
163
+ background-image: file-url('govuk-icn-close.png');
164
+ background-repeat: no-repeat;
165
+ background-position: left center;
166
+
167
+ @include device-pixel-ratio {
168
+ background-image: file-url('govuk-icn-close@2x.png');
169
+ background-size: 20px 20px;
170
+ }
171
+ }
172
+
173
+ /* Applied to <html> */
174
+ &.toc-open {
175
+ overflow: hidden;
176
+
177
+ body {
178
+ height: 100%;
179
+ overflow: hidden;
180
+ pointer-events: none;
181
+ }
182
+
183
+ .toc-show {
184
+ visibility: hidden;
185
+ }
186
+
187
+ .toc {
188
+ display: block;
189
+ pointer-events: auto;
190
+ position: fixed;
191
+ top: 0;
192
+ bottom: 0;
193
+ left: 0;
194
+ right: 0;
195
+ z-index: 10;
196
+
197
+ overflow: auto;
198
+ -webkit-overflow-scrolling: touch;
199
+ -ms-overflow-style: none;
200
+
201
+ background: $white;
202
+ @supports(backdrop-filter: blur(2px)) {
203
+ background: transparentize($white, 0.05);
204
+ backdrop-filter: blur(2px);
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+
212
+ @include print {
213
+ .toc {
214
+ display: none;
215
+ }
216
+ }