1
+ <!DOCTYPE HTML>
2
+ < html lang ="en " class ="light " dir ="ltr ">
3
+ < head >
4
+ <!-- Book generated using mdBook -->
5
+ < meta charset ="UTF-8 ">
6
+ < title > Page not found - devshell</ title >
7
+ < base href ="/ ">
8
+
9
+
10
+ <!-- Custom HTML head -->
11
+
12
+ < meta name ="description " content ="">
13
+ < meta name ="viewport " content ="width=device-width, initial-scale=1 ">
14
+ < meta name ="theme-color " content ="#ffffff ">
15
+
16
+ < link rel ="icon " href ="favicon.svg ">
17
+ < link rel ="shortcut icon " href ="favicon.png ">
18
+ < link rel ="stylesheet " href ="css/variables.css ">
19
+ < link rel ="stylesheet " href ="css/general.css ">
20
+ < link rel ="stylesheet " href ="css/chrome.css ">
21
+ < link rel ="stylesheet " href ="css/print.css " media ="print ">
22
+
23
+ <!-- Fonts -->
24
+ < link rel ="stylesheet " href ="FontAwesome/css/font-awesome.css ">
25
+ < link rel ="stylesheet " href ="fonts/fonts.css ">
26
+
27
+ <!-- Highlight.js Stylesheets -->
28
+ < link rel ="stylesheet " href ="highlight.css ">
29
+ < link rel ="stylesheet " href ="tomorrow-night.css ">
30
+ < link rel ="stylesheet " href ="ayu-highlight.css ">
31
+
32
+ <!-- Custom theme stylesheets -->
33
+ < link rel ="stylesheet " href ="theme/pagetoc.css ">
34
+
35
+ </ head >
36
+ < body class ="sidebar-visible no-js ">
37
+ < div id ="body-container ">
38
+ <!-- Provide site root to javascript -->
39
+ < script >
40
+ var path_to_root = "" ;
41
+ var default_theme = window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ? "navy" : "light" ;
42
+ </ script >
43
+
44
+ <!-- Work around some values being stored in localStorage wrapped in quotes -->
45
+ < script >
46
+ try {
47
+ var theme = localStorage . getItem ( 'mdbook-theme' ) ;
48
+ var sidebar = localStorage . getItem ( 'mdbook-sidebar' ) ;
49
+
50
+ if ( theme . startsWith ( '"' ) && theme . endsWith ( '"' ) ) {
51
+ localStorage . setItem ( 'mdbook-theme' , theme . slice ( 1 , theme . length - 1 ) ) ;
52
+ }
53
+
54
+ if ( sidebar . startsWith ( '"' ) && sidebar . endsWith ( '"' ) ) {
55
+ localStorage . setItem ( 'mdbook-sidebar' , sidebar . slice ( 1 , sidebar . length - 1 ) ) ;
56
+ }
57
+ } catch ( e ) { }
58
+ </ script >
59
+
60
+ <!-- Set the theme before any content is loaded, prevents flash -->
61
+ < script >
62
+ var theme ;
63
+ try { theme = localStorage . getItem ( 'mdbook-theme' ) ; } catch ( e ) { }
64
+ if ( theme === null || theme === undefined ) { theme = default_theme ; }
65
+ var html = document . querySelector ( 'html' ) ;
66
+ html . classList . remove ( 'light' )
67
+ html . classList . add ( theme ) ;
68
+ var body = document . querySelector ( 'body' ) ;
69
+ body . classList . remove ( 'no-js' )
70
+ body . classList . add ( 'js' ) ;
71
+ </ script >
72
+
73
+ < input type ="checkbox " id ="sidebar-toggle-anchor " class ="hidden ">
74
+
75
+ <!-- Hide / unhide sidebar before it is displayed -->
76
+ < script >
77
+ var body = document . querySelector ( 'body' ) ;
78
+ var sidebar = null ;
79
+ var sidebar_toggle = document . getElementById ( "sidebar-toggle-anchor" ) ;
80
+ if ( document . body . clientWidth >= 1080 ) {
81
+ try { sidebar = localStorage . getItem ( 'mdbook-sidebar' ) ; } catch ( e ) { }
82
+ sidebar = sidebar || 'visible' ;
83
+ } else {
84
+ sidebar = 'hidden' ;
85
+ }
86
+ sidebar_toggle . checked = sidebar === 'visible' ;
87
+ body . classList . remove ( 'sidebar-visible' ) ;
88
+ body . classList . add ( "sidebar-" + sidebar ) ;
89
+ </ script >
90
+
91
+ < nav id ="sidebar " class ="sidebar " aria-label ="Table of contents ">
92
+ < div class ="sidebar-scrollbox ">
93
+ < ol class ="chapter "> < li class ="chapter-item expanded "> < a href ="intro.html "> < strong aria-hidden ="true "> 1.</ strong > Intro</ a > </ li > < li class ="chapter-item expanded "> < a href ="getting_started.html "> < strong aria-hidden ="true "> 2.</ strong > Getting started</ a > </ li > < li class ="chapter-item expanded "> < a href ="ci.html "> < strong aria-hidden ="true "> 3.</ strong > Continuous Integration setup</ a > </ li > < li class ="chapter-item expanded "> < a href ="extending.html "> < strong aria-hidden ="true "> 4.</ strong > Extending devshell</ a > </ li > < li class ="chapter-item expanded "> < a href ="modules_schema.html "> < strong aria-hidden ="true "> 5.</ strong > devshell.toml schema</ a > </ li > < li class ="chapter-item expanded "> < a href ="env.html "> < strong aria-hidden ="true "> 6.</ strong > env vars</ a > </ li > < li class ="chapter-item expanded "> < a href ="99_todo.html "> < strong aria-hidden ="true "> 7.</ strong > TODO</ a > </ li > </ ol >
94
+ </ div >
95
+ < div id ="sidebar-resize-handle " class ="sidebar-resize-handle ">
96
+ < div class ="sidebar-resize-indicator "> </ div >
97
+ </ div >
98
+ </ nav >
99
+
100
+ <!-- Track and set sidebar scroll position -->
101
+ < script >
102
+ var sidebarScrollbox = document . querySelector ( '#sidebar .sidebar-scrollbox' ) ;
103
+ sidebarScrollbox . addEventListener ( 'click' , function ( e ) {
104
+ if ( e . target . tagName === 'A' ) {
105
+ sessionStorage . setItem ( 'sidebar-scroll' , sidebarScrollbox . scrollTop ) ;
106
+ }
107
+ } , { passive : true } ) ;
108
+ var sidebarScrollTop = sessionStorage . getItem ( 'sidebar-scroll' ) ;
109
+ sessionStorage . removeItem ( 'sidebar-scroll' ) ;
110
+ if ( sidebarScrollTop ) {
111
+ // preserve sidebar scroll position when navigating via links within sidebar
112
+ sidebarScrollbox . scrollTop = sidebarScrollTop ;
113
+ } else {
114
+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons
115
+ var activeSection = document . querySelector ( '#sidebar .active' ) ;
116
+ if ( activeSection ) {
117
+ activeSection . scrollIntoView ( { block : 'center' } ) ;
118
+ }
119
+ }
120
+ </ script >
121
+
122
+ < div id ="page-wrapper " class ="page-wrapper ">
123
+
124
+ < div class ="page ">
125
+ < div id ="menu-bar-hover-placeholder "> </ div >
126
+ < div id ="menu-bar " class ="menu-bar sticky ">
127
+ < div class ="left-buttons ">
128
+ < label id ="sidebar-toggle " class ="icon-button " for ="sidebar-toggle-anchor " title ="Toggle Table of Contents " aria-label ="Toggle Table of Contents " aria-controls ="sidebar ">
129
+ < i class ="fa fa-bars "> </ i >
130
+ </ label >
131
+ < button id ="theme-toggle " class ="icon-button " type ="button " title ="Change theme " aria-label ="Change theme " aria-haspopup ="true " aria-expanded ="false " aria-controls ="theme-list ">
132
+ < i class ="fa fa-paint-brush "> </ i >
133
+ </ button >
134
+ < ul id ="theme-list " class ="theme-popup " aria-label ="Themes " role ="menu ">
135
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="light "> Light</ button > </ li >
136
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="rust "> Rust</ button > </ li >
137
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="coal "> Coal</ button > </ li >
138
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="navy "> Navy</ button > </ li >
139
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="ayu "> Ayu</ button > </ li >
140
+ </ ul >
141
+ < button id ="search-toggle " class ="icon-button " type ="button " title ="Search. (Shortkey: s) " aria-label ="Toggle Searchbar " aria-expanded ="false " aria-keyshortcuts ="S " aria-controls ="searchbar ">
142
+ < i class ="fa fa-search "> </ i >
143
+ </ button >
144
+ </ div >
145
+
146
+ < h1 class ="menu-title "> devshell</ h1 >
147
+
148
+ < div class ="right-buttons ">
149
+ < a href ="print.html " title ="Print this book " aria-label ="Print this book ">
150
+ < i id ="print-button " class ="fa fa-print "> </ i >
151
+ </ a >
152
+ < a href ="https://github.com/numtide/devshell " title ="Git repository " aria-label ="Git repository ">
153
+ < i id ="git-repository-button " class ="fa fa-github "> </ i >
154
+ </ a >
155
+
156
+ </ div >
157
+ </ div >
158
+
159
+ < div id ="search-wrapper " class ="hidden ">
160
+ < form id ="searchbar-outer " class ="searchbar-outer ">
161
+ < input type ="search " id ="searchbar " name ="searchbar " placeholder ="Search this book ... " aria-controls ="searchresults-outer " aria-describedby ="searchresults-header ">
162
+ </ form >
163
+ < div id ="searchresults-outer " class ="searchresults-outer hidden ">
164
+ < div id ="searchresults-header " class ="searchresults-header "> </ div >
165
+ < ul id ="searchresults ">
166
+ </ ul >
167
+ </ div >
168
+ </ div >
169
+
170
+ <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
171
+ < script >
172
+ document . getElementById ( 'sidebar-toggle' ) . setAttribute ( 'aria-expanded' , sidebar === 'visible' ) ;
173
+ document . getElementById ( 'sidebar' ) . setAttribute ( 'aria-hidden' , sidebar !== 'visible' ) ;
174
+ Array . from ( document . querySelectorAll ( '#sidebar a' ) ) . forEach ( function ( link ) {
175
+ link . setAttribute ( 'tabIndex' , sidebar === 'visible' ? 0 : - 1 ) ;
176
+ } ) ;
177
+ </ script >
178
+
179
+ < div id ="content " class ="content ">
180
+ < main >
181
+ < div class ="content-wrap ">
182
+ < h1 id ="document-not-found-404 "> < a class ="header " href ="#document-not-found-404 "> Document not found (404)</ a > </ h1 >
183
+ < p > This URL is invalid, sorry. Please use the navigation bar or search to continue.</ p >
184
+
185
+ </ div >
186
+ < div class ="sidetoc ">
187
+ < nav class ="pagetoc "> </ nav >
188
+ </ div >
189
+ </ main >
190
+
191
+ < nav class ="nav-wrapper " aria-label ="Page navigation ">
192
+ <!-- Mobile navigation buttons -->
193
+
194
+
195
+ < div style ="clear: both "> </ div >
196
+ </ nav >
197
+ </ div >
198
+ </ div >
199
+
200
+ < nav class ="nav-wide-wrapper " aria-label ="Page navigation ">
201
+
202
+ </ nav >
203
+
204
+ </ div >
205
+
206
+
207
+
208
+
209
+ < script >
210
+ window . playground_copyable = true ;
211
+ </ script >
212
+
213
+
214
+ < script src ="elasticlunr.min.js "> </ script >
215
+ < script src ="mark.min.js "> </ script >
216
+ < script src ="searcher.js "> </ script >
217
+
218
+ < script src ="clipboard.min.js "> </ script >
219
+ < script src ="highlight.js "> </ script >
220
+ < script src ="book.js "> </ script >
221
+
222
+ <!-- Custom JS scripts -->
223
+ < script src ="theme/pagetoc.js "> </ script >
224
+
225
+
226
+ </ div >
227
+ </ body >
228
+ </ html >
0 commit comments