11<!DOCTYPE html>
22< html lang ="en ">
3+
34< head >
45 < meta charset ="UTF-8 ">
56 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6- < title > Files Index</ title >
7+ < title > OCANNL Documentation Index</ title >
78 < style >
89 * {
910 margin : 0 ;
2425 margin : 0 auto;
2526 background : white;
2627 border-radius : 15px ;
27- box-shadow : 0 25px 50px rgba (0 , 0 , 0 , 0.15 );
28+ box-shadow : 0 25px 50px rgba (0 , 0 , 0 , 0.15 );
2829 overflow : hidden;
2930 }
3031
3940 font-size : 2.8em ;
4041 margin-bottom : 10px ;
4142 font-weight : 200 ;
42- text-shadow : 0 2px 4px rgba (0 , 0 , 0 , 0.3 );
43+ text-shadow : 0 2px 4px rgba (0 , 0 , 0 , 0.3 );
4344 }
4445
4546 .header p {
6162 font-size : 16px ;
6263 outline : none;
6364 transition : all 0.3s ease;
64- background : rgba (255 , 255 , 255 , 0.9 );
65+ background : rgba (255 , 255 , 255 , 0.9 );
6566 }
6667
6768 .search-input : focus {
6869 border-color : # FF8C00 ;
69- box-shadow : 0 0 0 3px rgba (255 , 140 , 0 , 0.2 );
70+ box-shadow : 0 0 0 3px rgba (255 , 140 , 0 , 0.2 );
7071 }
7172
7273 .file-grid {
100101
101102 .file-card : hover {
102103 transform : translateY (-5px );
103- box-shadow : 0 15px 30px rgba (139 , 69 , 19 , 0.2 );
104+ box-shadow : 0 15px 30px rgba (139 , 69 , 19 , 0.2 );
104105 border-color : # FF8C00 ;
105106 background : linear-gradient (135deg , # FFFAF0, # FFF8DC );
106107 }
123124 font-weight : bold;
124125 font-size : 16px ;
125126 margin-right : 15px ;
126- box-shadow : 0 3px 10px rgba (139 , 69 , 19 , 0.3 );
127+ box-shadow : 0 3px 10px rgba (139 , 69 , 19 , 0.3 );
127128 }
128129
129130 .file-name {
158159 .file-grid {
159160 grid-template-columns : 1fr ;
160161 }
161-
162+
162163 .header h1 {
163164 font-size : 2.2em ;
164165 }
165166 }
166167 </ style >
167168</ head >
169+
168170< body >
169171 < div class ="container ">
170172 < div class ="header ">
171173 < h1 > 🌐 OCANNL Directory</ h1 >
172174 < p > Slides, articles, and documentation</ p >
173175 </ div >
174-
176+
175177 < div class ="search-box ">
176178 < input type ="text " class ="search-input " id ="searchInput " placeholder ="🔍 Search HTML files... ">
177179 </ div >
178-
180+
179181 < div class ="file-grid " id ="fileGrid ">
180182 <!-- Files will be populated by JavaScript -->
181183 </ div >
182-
184+
183185 < div class ="stats " id ="stats ">
184186 Scanning directory...
185187 </ div >
@@ -206,28 +208,35 @@ <h1>🌐 OCANNL Directory</h1>
206208 {
207209 name : '../dev/arrayjit/Ir/index.html' ,
208210 title : 'OCANNL Backend API Documentation' ,
209- description : 'OCANNL Backend API Documentation, notably: Tnode, Ndarray, Backend_intf.Backend, Assignments, Indexing'
211+ description : 'OCANNL Backend API Documentation, notably: Tnode, Ndarray, Backend_intf, Assignments, Indexing'
212+ } ,
213+ {
214+ name : '../dev/arrayjit/Ir/Backend_intf/module-type-Backend/index.html' ,
215+ title : 'OCANNL Backend signature' ,
216+ description : 'Direct link to the Backend signature'
210217 } ,
211218 ] ;
212219
213220 let filteredFiles = htmlFiles ;
214221
215222 function getFileIcon ( filename ) {
216223 const name = filename . toLowerCase ( ) ;
217- if ( name . includes ( 'home' ) || name . includes ( 'index' ) ) return '🏠' ;
224+ if ( name . includes ( 'rl-' ) ) return '🧠' ;
225+ if ( name . includes ( 'introduction' ) || name . includes ( 'basics' ) ) return '🚀' ;
226+ if ( name . includes ( 'api' ) || name . includes ( '/dev/' ) ) return '🔌' ;
227+ if ( name . includes ( 'doc' ) || name . includes ( 'reference' ) ) return '📋' ;
218228 if ( name . includes ( 'about' ) ) return '👥' ;
219229 if ( name . includes ( 'contact' ) ) return '📞' ;
220230 if ( name . includes ( 'blog' ) ) return '📝' ;
221231 if ( name . includes ( 'portfolio' ) || name . includes ( 'gallery' ) ) return '🎨' ;
222232 if ( name . includes ( 'service' ) ) return '⚙️' ;
223- if ( name . includes ( 'introduction' ) || name . includes ( 'basics' ) ) return '🚀' ;
224- if ( name . includes ( 'rl-' ) ) return '🧠' ;
233+ if ( name . includes ( 'home' ) || name . includes ( 'index' ) ) return '🏠' ;
225234 return '📄' ;
226235 }
227236
228237 function renderFiles ( files ) {
229238 const fileGrid = document . getElementById ( 'fileGrid' ) ;
230-
239+
231240 if ( files . length === 0 ) {
232241 fileGrid . innerHTML = `
233242 <div class="no-files">
@@ -258,7 +267,7 @@ <h3>No files found</h3>
258267
259268 function searchFiles ( query ) {
260269 const lowercaseQuery = query . toLowerCase ( ) ;
261- filteredFiles = htmlFiles . filter ( file =>
270+ filteredFiles = htmlFiles . filter ( file =>
262271 file . name . toLowerCase ( ) . includes ( lowercaseQuery ) ||
263272 file . title . toLowerCase ( ) . includes ( lowercaseQuery ) ||
264273 file . description . toLowerCase ( ) . includes ( lowercaseQuery )
@@ -268,16 +277,17 @@ <h3>No files found</h3>
268277 }
269278
270279 // Initialize
271- document . addEventListener ( 'DOMContentLoaded' , function ( ) {
280+ document . addEventListener ( 'DOMContentLoaded' , function ( ) {
272281 renderFiles ( htmlFiles ) ;
273282 updateStats ( ) ;
274283
275284 // Search functionality
276285 const searchInput = document . getElementById ( 'searchInput' ) ;
277- searchInput . addEventListener ( 'input' , function ( e ) {
286+ searchInput . addEventListener ( 'input' , function ( e ) {
278287 searchFiles ( e . target . value ) ;
279288 } ) ;
280289 } ) ;
281290 </ script >
282291</ body >
292+
283293</ html >
0 commit comments