1// get the ninja-keys element 2const ninja = document.querySelector('ninja-keys'); 3 4// add the home and posts menu items 5ninja.data = [{ 6 id: "nav-top", 7 title: "Top", 8 section: "Navigation", 9 handler: () => { 10 window.location.href = "/"; 11 }, 12 },{id: "nav-top", 13 title: "Top", 14 description: "", 15 section: "Navigation", 16 handler: () => { 17 window.location.href = "/"; 18 }, 19 },{id: "nav-research", 20 title: "Research", 21 description: "", 22 section: "Navigation", 23 handler: () => { 24 window.location.href = "/research/"; 25 }, 26 },{id: "nav-publications", 27 title: "Publications", 28 description: "Journal articles and proceedings, listed newest first.", 29 section: "Navigation", 30 handler: () => { 31 window.location.href = "/publications/"; 32 }, 33 },{id: "nav-cv", 34 title: "CV", 35 description: "", 36 section: "Navigation", 37 handler: () => { 38 window.location.href = "/cv/"; 39 }, 40 },{id: "nav-contact", 41 title: "Contact", 42 description: "", 43 section: "Navigation", 44 handler: () => { 45 window.location.href = "/contact/"; 46 }, 47 },{id: "nav-talks", 48 title: "Talks", 49 description: "", 50 section: "Navigation", 51 handler: () => { 52 window.location.href = "/talks/"; 53 }, 54 },{id: "nav-students", 55 title: "Students", 56 description: "", 57 section: "Navigation", 58 handler: () => { 59 window.location.href = "/students/"; 60 }, 61 },{id: "nav-funds", 62 title: "Funds", 63 description: "", 64 section: "Navigation", 65 handler: () => { 66 window.location.href = "/funds/"; 67 }, 68 },{id: "post-a-post-with-plotly-js", 69 70 title: "a post with plotly.js", 71 72 description: "this is what included plotly.js code could look like", 73 section: "Posts", 74 handler: () => { 75 76 window.location.href = "/blog/2025/plotly/"; 77 78 }, 79 },{id: "post-a-post-with-image-galleries", 80 81 title: "a post with image galleries", 82 83 description: "this is what included image galleries could look like", 84 section: "Posts", 85 handler: () => { 86 87 window.location.href = "/blog/2024/photo-gallery/"; 88 89 }, 90 },{id: "post-google-gemini-updates-flash-1-5-gemma-2-and-project-astra", 91 92 title: 'Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra <svg width="1.2rem" height="1.2rem" top=".5rem" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><path d="M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9" class="icon_svg-stroke" stroke="#999" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>', 93 94 description: "Weâre sharing updates across our Gemini family of models and a glimpse of Project Astra, our vision for the future of AI assistants.", 95 section: "Posts", 96 handler: () => { 97 98 window.open("https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/", "_blank"); 99 100 }, 101 },{id: "post-a-post-with-tabs", 102 103 title: "a post with tabs", 104 105 description: "this is what included tabs in a post could look like", 106 section: "Posts", 107 handler: () => { 108 109 window.location.href = "/blog/2024/tabs/"; 110 111 }, 112 },{id: "post-a-post-with-typograms", 113 114 title: "a post with typograms", 115 116 description: "this is what included typograms code could look like", 117 section: "Posts", 118 handler: () => { 119 120 window.location.href = "/blog/2024/typograms/"; 121 122 }, 123 },{id: "post-a-post-that-can-be-cited", 124 125 title: "a post that can be cited", 126 127 description: "this is what a post that can be cited looks like", 128 section: "Posts", 129 handler: () => { 130 131 window.location.href = "/blog/2024/post-citation/"; 132 133 }, 134 },{id: "post-a-post-with-pseudo-code", 135 136 title: "a post with pseudo code", 137 138 description: "this is what included pseudo code could look like", 139 section: "Posts", 140 handler: () => { 141 142 window.location.href = "/blog/2024/pseudocode/"; 143 144 }, 145 },{id: "post-a-post-with-code-diff", 146 147 title: "a post with code diff", 148 149 description: "this is how you can display code diffs", 150 section: "Posts", 151 handler: () => { 152 153 window.location.href = "/blog/2024/code-diff/"; 154 155 }, 156 },{id: "post-a-post-with-advanced-image-components", 157 158 title: "a post with advanced image components", 159 160 description: "this is what advanced image components could look like", 161 section: "Posts", 162 handler: () => { 163 164 window.location.href = "/blog/2024/advanced-images/"; 165 166 }, 167 },{id: "post-a-post-with-vega-lite", 168 169 title: "a post with vega lite", 170 171 description: "this is what included vega lite code could look like", 172 section: "Posts", 173 handler: () => { 174 175 window.location.href = "/blog/2024/vega-lite/"; 176 177 }, 178 },{id: "post-a-post-with-geojson", 179 180 title: "a post with geojson", 181 182 description: "this is what included geojson code could look like", 183 section: "Posts", 184 handler: () => { 185
186 window.location.href = "/blog/2024/geojson-map/"; 187 188 }, 189 },{id: "post-a-post-with-echarts", 190 191 title: "a post with echarts", 192 193 description: "this is what included echarts code could look like", 194 section: "Posts", 195 handler: () => { 196 197 window.location.href = "/blog/2024/echarts/"; 198 199 }, 200 },{id: "post-a-post-with-chart-js", 201 202 title: "a post with chart.js", 203 204 description: "this is what included chart.js code could look like", 205 section: "Posts", 206 handler: () => { 207 208 window.location.href = "/blog/2024/chartjs/"; 209 210 }, 211 },{id: "post-a-post-with-tikzjax", 212 213 title: "a post with TikZJax", 214 215 description: "this is what included TikZ code could look like", 216 section: "Posts", 217 handler: () => { 218 219 window.location.href = "/blog/2023/tikzjax/"; 220 221 }, 222 },{id: "post-a-post-with-bibliography", 223 224 title: "a post with bibliography", 225 226 description: "an example of a blog post with bibliography", 227 section: "Posts", 228 handler: () => { 229 230 window.location.href = "/blog/2023/post-bibliography/"; 231 232 }, 233 },{id: "post-a-post-with-jupyter-notebook", 234 235 title: "a post with jupyter notebook", 236 237 description: "an example of a blog post with jupyter notebook", 238 section: "Posts", 239 handler: () => { 240 241 window.location.href = "/blog/2023/jupyter-notebook/"; 242 243 }, 244 },{id: "post-a-post-with-custom-blockquotes", 245 246 title: "a post with custom blockquotes", 247 248 description: "an example of a blog post with custom blockquotes", 249 section: "Posts", 250 handler: () => { 251 252 window.location.href = "/blog/2023/custom-blockquotes/"; 253 254 }, 255 },{id: "post-a-post-with-table-of-contents-on-a-sidebar", 256 257 title: "a post with table of contents on a sidebar", 258 259 description: "an example of a blog post with table of contents on a sidebar", 260 section: "Posts", 261 handler: () => { 262 263 window.location.href = "/blog/2023/sidebar-table-of-contents/"; 264 265 }, 266 },{id: "post-a-post-with-audios", 267 268 title: "a post with audios", 269 270 description: "this is what included audios could look like", 271 section: "Posts", 272 handler: () => { 273 274 window.location.href = "/blog/2023/audios/"; 275 276 }, 277 },{id: "post-a-post-with-videos", 278 279 title: "a post with videos", 280 281 description: "this is what included videos could look like", 282 section: "Posts", 283 handler: () => { 284 285 window.location.href = "/blog/2023/videos/"; 286 287 }, 288 },{id: "post-displaying-beautiful-tables-with-bootstrap-tables", 289 290 title: "displaying beautiful tables with Bootstrap Tables", 291 292 description: "an example of how to use Bootstrap Tables", 293 section: "Posts", 294 handler: () => { 295 296 window.location.href = "/blog/2023/tables/"; 297 298 }, 299 },{id: "post-a-post-with-table-of-contents", 300 301 title: "a post with table of contents", 302 303 description: "an example of a blog post with table of contents", 304 section: "Posts", 305 handler: () => { 306 307 window.location.href = "/blog/2023/table-of-contents/"; 308 309 }, 310 },{id: "post-a-post-with-giscus-comments", 311 312 title: "a post with giscus comments", 313 314 description: "an example of a blog post with giscus comments", 315 section: "Posts", 316 handler: () => { 317 318 window.location.href = "/blog/2022/giscus-comments/"; 319 320 }, 321 },{id: "post-displaying-external-posts-on-your-al-folio-blog", 322 323 title: 'Displaying External Posts on Your al-folio Blog <svg width="1.2rem" height="1.2rem" top=".5rem" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><path d="M17 13.5v6H5v-12h6m3-3h6v6m0-6-9 9" class="icon_svg-stroke" stroke="#999" stroke-width="1.5" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>', 324 325 description: "", 326 section: "Posts", 327 handler: () => { 328 329 window.open("https://medium.com/@al-folio/displaying-external-posts-on-your-al-folio-blog-b60a1d241a0a?source=rss-17feae71c3c4------2", "_blank"); 330 331 }, 332 },{id: "post-a-post-with-redirect", 333 334 title: "a post with redirect", 335 336 description: "you can also redirect to assets like pdf", 337 section: "Posts", 338 handler: () => { 339 340 window.location.href = "/assets/pdf/example_pdf.pdf"; 341 342 }, 343 },{id: "post-a-post-with-diagrams", 344 345 title: "a post with diagrams", 346 347 description: "an example of a blog post with diagrams", 348 section: "Posts", 349 handler: () => { 350 351 window.location.href = "/blog/2021/diagrams/"; 352 353 }, 354 },{id: "post-a-distill-style-blog-post", 355 356 title: "a distill-style blog post", 357 358 description: "an example of a distill-style blog post and main elements", 359 section: "Posts", 360 handler: () => { 361 362 window.location.href = "/blog/2021/distill/"; 363 364 }, 365 },{id: "post-a-post-with-twitter", 366 367 title: "a post with twitter", 368 369 description: "an example of a blog post with twitter", 370 section: "Posts", 371 handler: () => { 372 373 window.location.href = "/blog/2020/twitter/"; 374 375 }, 376 },{id: "post-a-post-with-disqus-comments", 377 378 title: "a post with disqus comments", 379 380 description: "an example of a blog post with disqus comments", 381 section: "Posts", 382 handler: () => { 383 384 window.location.href = "/blog/2015/disqus-comments/"; 385 386 }, 387 },{id: "post-a-post-with-math", 388 389 title: "a post with math", 390 391 description: "an example of a blog post with some math", 392 section: "Posts", 393 handler: () => { 394 395 window.location.href = "/blog/2015/math/"; 396 397 }, 398 },{id: "post-a-post-with-code", 399 400 title: "a post with code", 401 402 description: "an example of a blog post with some code", 403 section: "Posts", 404 handler: () => { 405 406 window.location.href = "/blog/2015/code/"; 407 408 }, 409 },{id: "post-a-post-with-images", 410 411 title: "a post with images", 412 413 description: "this is what included images could look like", 414 section: "Posts", 415 handler: () => { 416 417 window.location.href = "/blog/2015/images/"; 418 419 }, 420 },{id: "post-a-post-with-formatting-and-links", 421 422 title: "a post with formatting and links", 423 424 description: "march & april, looking forward to summer", 425 section: "Posts", 426 handler: () => { 427 428 window.location.href = "/blog/2015/formatting-and-links/"; 429 430 }, 431 },{id: "books-the-godfather", 432 title: 'The Godfather', 433 description: "", 434 section: "Books",handler: () => { 435 window.location.href = "/books/the_godfather/"; 436 },},{id: "news-website-launched", 437 title: 'Website launched', 438 description: "", 439 section: "News",},{id: "projects-project-1", 440 title: 'project 1', 441 description: "with background image", 442 section: "Projects",handler: () => { 443 window.location.href = "/projects/1_project/"; 444 },},{id: "projects-project-2", 445 title: 'project 2', 446 description: "a project with a background image and giscus comments", 447 section: "Projects",handler: () => { 448 window.location.href = "/projects/2_project/"; 449 },},{id: "projects-project-3-with-very-long-name", 450 title: 'project 3 with very long name', 451 description: "a project that redirects to another website", 452 section: "Projects",handler: () => { 453 window.location.href = "/projects/3_project/"; 454 },},{id: "projects-project-4", 455 title: 'project 4', 456 description: "another without an image", 457 section: "Projects",handler: () => { 458 window.location.href = "/projects/4_project/"; 459 },},{id: "projects-project-5", 460 title: 'project 5', 461 description: "a project with a background image", 462 section: "Projects",handler: () => { 463 window.location.href = "/projects/5_project/"; 464 },},{id: "projects-project-6", 465 title: 'project 6', 466 description: "a project with no image", 467 section: "Projects",handler: () => { 468 window.location.href = "/projects/6_project/"; 469 },},{id: "projects-project-7", 470 title: 'project 7', 471 description: "with background image", 472 section: "Projects",handler: () => { 473 window.location.href = "/projects/7_project/"; 474 },},{id: "projects-project-8", 475 title: 'project 8', 476 description: "an other project with a background image and giscus comments", 477 section: "Projects",handler: () => { 478 window.location.href = "/projects/8_project/"; 479 },},{id: "projects-project-9", 480 title: 'project 9', 481 description: "another project with an image ð", 482 section: "Projects",handler: () => { 483 window.location.href = "/projects/9_project/"; 484 },},{id: "teachings-data-science-fundamentals", 485 title: 'Data Science Fundamentals', 486 description: "This course covers the foundational aspects of data science, including data collection, cleaning, analysis, and visualization. Students will learn practical skills for working with real-world datasets.", 487 section: "Teachings",handler: () => { 488 window.location.href = "/teachings/data-science-fundamentals/"; 489 },},{id: "teachings-introduction-to-machine-learning", 490 title: 'Introduction to Machine Learning', 491 description: "This course provides an introduction to machine learning concepts, algorithms, and applications. Students will learn about supervised and unsupervised learning, model evaluation, and practical implementations.", 492 section: "Teachings",handler: () => { 493 window.location.href = "/teachings/introduction-to-machine-learning/"; 494 },},{ 495 id: 'social-inspire', 496 title: 'Inspire HEP', 497 section: 'Socials', 498 handler: () => { 499 window.open("https://inspirehep.net/authors/1074314", "_blank"); 500 }, 501 },{ 502 id: 'social-rss', 503 title: 'RSS Feed', 504 section: 'Socials', 505 handler: () => { 506 window.open("/feed.xml", "_blank"); 507 }, 508 },{ 509 id: 'social-scholar', 510 title: 'Google Scholar', 511 section: 'Socials', 512 handler: () => { 513 window.open("https://scholar.google.com/citations?user=1ap2DL8AAAAJ", "_blank"); 514 }, 515 },{ 516 id: 'light-theme', 517 title: 'Change theme to light', 518 description: 'Change the theme of the site to Light', 519 section: 'Theme', 520 handler: () => { 521 setThemeSetting("light"); 522 }, 523 }, 524 {
525 id: 'dark-theme', 526 title: 'Change theme to dark', 527 description: 'Change the theme of the site to Dark', 528 section: 'Theme', 529 handler: () => { 530 setThemeSetting("dark"); 531 }, 532 }, 533 { 534 id: 'system-theme', 535 title: 'Use system default theme', 536 description: 'Change the theme of the site to System Default', 537 section: 'Theme', 538 handler: () => { 539 setThemeSetting("system"); 540 }, 541 },];
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.