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-about", 7 title: "about", 8 section: "Navigation", 9 handler: () => { 10 window.location.href = "/"; 11 }, 12 },{id: "nav-research", 13 title: "research", 14 description: "", 15 section: "Navigation", 16 handler: () => { 17 window.location.href = "/projects/"; 18 }, 19 },{id: "nav-publications", 20 title: "publications", 21 description: "publications by categories in reversed chronological order. generated by jekyll-scholar.", 22 section: "Navigation", 23 handler: () => { 24 window.location.href = "/publications/"; 25 }, 26 },{id: "nav-repositories", 27 title: "repositories", 28 description: "Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories.", 29 section: "Navigation", 30 handler: () => { 31 window.location.href = "/repositories/"; 32 }, 33 },{id: "nav-teaching-amp-mentoring", 34 title: "teaching & mentoring", 35 description: "", 36 section: "Navigation", 37 handler: () => { 38 window.location.href = "/teaching/"; 39 }, 40 },{id: "nav-people", 41 title: "people", 42 description: "members of the group", 43 section: "Navigation", 44 handler: () => { 45 window.location.href = "/people/"; 46 }, 47 },{id: "post-a-post-with-plotly-js", 48 49 title: "a post with plotly.js", 50 51 description: "this is what included plotly.js code could look like", 52 section: "Posts", 53 handler: () => { 54 55 window.location.href = "/blog/2025/plotly/"; 56 57 }, 58 },{id: "post-a-post-with-image-galleries", 59 60 title: "a post with image galleries", 61 62 description: "this is what included image galleries could look like", 63 section: "Posts", 64 handler: () => { 65 66 window.location.href = "/blog/2024/photo-gallery/"; 67 68 }, 69 },{id: "post-google-gemini-updates-flash-1-5-gemma-2-and-project-astra", 70 71 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>', 72 73 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.", 74 section: "Posts", 75 handler: () => { 76 77 window.open("https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/", "_blank"); 78 79 }, 80 },{id: "post-a-post-with-tabs", 81 82 title: "a post with tabs", 83 84 description: "this is what included tabs in a post could look like", 85 section: "Posts", 86 handler: () => { 87 88 window.location.href = "/blog/2024/tabs/"; 89 90 }, 91 },{id: "post-a-post-with-typograms", 92 93 title: "a post with typograms", 94 95 description: "this is what included typograms code could look like", 96 section: "Posts", 97 handler: () => { 98 99 window.location.href = "/blog/2024/typograms/"; 100 101 }, 102 },{id: "post-a-post-that-can-be-cited", 103 104 title: "a post that can be cited", 105 106 description: "this is what a post that can be cited looks like", 107 section: "Posts", 108 handler: () => { 109 110 window.location.href = "/blog/2024/post-citation/"; 111 112 }, 113 },{id: "post-a-post-with-pseudo-code", 114 115 title: "a post with pseudo code", 116 117 description: "this is what included pseudo code could look like", 118 section: "Posts", 119 handler: () => { 120 121 window.location.href = "/blog/2024/pseudocode/"; 122 123 }, 124 },{id: "post-a-post-with-code-diff", 125 126 title: "a post with code diff", 127 128 description: "this is how you can display code diffs", 129 section: "Posts", 130 handler: () => { 131 132 window.location.href = "/blog/2024/code-diff/"; 133 134 }, 135 },{id: "post-a-post-with-advanced-image-components", 136 137 title: "a post with advanced image components", 138 139 description: "this is what advanced image components could look like", 140 section: "Posts", 141 handler: () => { 142 143 window.location.href = "/blog/2024/advanced-images/"; 144 145 }, 146 },{id: "post-a-post-with-vega-lite", 147 148 title: "a post with vega lite", 149 150 description: "this is what included vega lite code could look like", 151 section: "Posts", 152 handler: () => { 153 154 window.location.href = "/blog/2024/vega-lite/"; 155 156 }, 157 },{id: "post-a-post-with-geojson", 158 159 title: "a post with geojson", 160 161 description: "this is what included geojson code could look like", 162 section: "Posts", 163 handler: () => { 164
165 window.location.href = "/blog/2024/geojson-map/"; 166 167 }, 168 },{id: "post-a-post-with-echarts", 169 170 title: "a post with echarts", 171 172 description: "this is what included echarts code could look like", 173 section: "Posts", 174 handler: () => { 175 176 window.location.href = "/blog/2024/echarts/"; 177 178 }, 179 },{id: "post-a-post-with-chart-js", 180 181 title: "a post with chart.js", 182 183 description: "this is what included chart.js code could look like", 184 section: "Posts", 185 handler: () => { 186 187 window.location.href = "/blog/2024/chartjs/"; 188 189 }, 190 },{id: "post-a-post-with-tikzjax", 191 192 title: "a post with TikZJax", 193 194 description: "this is what included TikZ code could look like", 195 section: "Posts", 196 handler: () => { 197 198 window.location.href = "/blog/2023/tikzjax/"; 199 200 }, 201 },{id: "post-a-post-with-bibliography", 202 203 title: "a post with bibliography", 204 205 description: "an example of a blog post with bibliography", 206 section: "Posts", 207 handler: () => { 208 209 window.location.href = "/blog/2023/post-bibliography/"; 210 211 }, 212 },{id: "post-a-post-with-jupyter-notebook", 213 214 title: "a post with jupyter notebook", 215 216 description: "an example of a blog post with jupyter notebook", 217 section: "Posts", 218 handler: () => { 219 220 window.location.href = "/blog/2023/jupyter-notebook/"; 221 222 }, 223 },{id: "post-a-post-with-custom-blockquotes", 224 225 title: "a post with custom blockquotes", 226 227 description: "an example of a blog post with custom blockquotes", 228 section: "Posts", 229 handler: () => { 230 231 window.location.href = "/blog/2023/custom-blockquotes/"; 232 233 }, 234 },{id: "post-a-post-with-table-of-contents-on-a-sidebar", 235 236 title: "a post with table of contents on a sidebar", 237 238 description: "an example of a blog post with table of contents on a sidebar", 239 section: "Posts", 240 handler: () => { 241 242 window.location.href = "/blog/2023/sidebar-table-of-contents/"; 243 244 }, 245 },{id: "post-a-post-with-audios", 246 247 title: "a post with audios", 248 249 description: "this is what included audios could look like", 250 section: "Posts", 251 handler: () => { 252 253 window.location.href = "/blog/2023/audios/"; 254 255 }, 256 },{id: "post-a-post-with-videos", 257 258 title: "a post with videos", 259 260 description: "this is what included videos could look like", 261 section: "Posts", 262 handler: () => { 263 264 window.location.href = "/blog/2023/videos/"; 265 266 }, 267 },{id: "post-displaying-beautiful-tables-with-bootstrap-tables", 268 269 title: "displaying beautiful tables with Bootstrap Tables", 270 271 description: "an example of how to use Bootstrap Tables", 272 section: "Posts", 273 handler: () => { 274 275 window.location.href = "/blog/2023/tables/"; 276 277 }, 278 },{id: "post-a-post-with-table-of-contents", 279 280 title: "a post with table of contents", 281 282 description: "an example of a blog post with table of contents", 283 section: "Posts", 284 handler: () => { 285 286 window.location.href = "/blog/2023/table-of-contents/"; 287 288 }, 289 },{id: "post-a-post-with-giscus-comments", 290 291 title: "a post with giscus comments", 292 293 description: "an example of a blog post with giscus comments", 294 section: "Posts", 295 handler: () => { 296 297 window.location.href = "/blog/2022/giscus-comments/"; 298 299 }, 300 },{id: "post-displaying-external-posts-on-your-al-folio-blog", 301 302 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>', 303 304 description: "", 305 section: "Posts", 306 handler: () => { 307 308 window.open("https://medium.com/@al-folio/displaying-external-posts-on-your-al-folio-blog-b60a1d241a0a?source=rss-17feae71c3c4------2", "_blank"); 309 310 }, 311 },{id: "post-a-post-with-redirect", 312 313 title: "a post with redirect", 314 315 description: "you can also redirect to assets like pdf", 316 section: "Posts", 317 handler: () => { 318 319 window.location.href = "/assets/pdf/example_pdf.pdf"; 320 321 }, 322 },{id: "post-a-post-with-diagrams", 323 324 title: "a post with diagrams", 325 326 description: "an example of a blog post with diagrams", 327 section: "Posts", 328 handler: () => { 329 330 window.location.href = "/blog/2021/diagrams/"; 331 332 }, 333 },{id: "post-a-distill-style-blog-post", 334 335 title: "a distill-style blog post", 336 337 description: "an example of a distill-style blog post and main elements", 338 section: "Posts", 339 handler: () => { 340 341 window.location.href = "/blog/2021/distill/"; 342 343 }, 344 },{id: "post-a-post-with-twitter", 345 346 title: "a post with twitter", 347 348 description: "an example of a blog post with twitter", 349 section: "Posts", 350 handler: () => { 351 352 window.location.href = "/blog/2020/twitter/"; 353 354 }, 355 },{id: "post-a-post-with-disqus-comments", 356 357 title: "a post with disqus comments", 358 359 description: "an example of a blog post with disqus comments", 360 section: "Posts", 361 handler: () => { 362 363 window.location.href = "/blog/2015/disqus-comments/"; 364 365 }, 366 },{id: "post-a-post-with-math", 367 368 title: "a post with math", 369 370 description: "an example of a blog post with some math", 371 section: "Posts", 372 handler: () => { 373 374 window.location.href = "/blog/2015/math/"; 375 376 }, 377 },{id: "post-a-post-with-code", 378 379 title: "a post with code", 380 381 description: "an example of a blog post with some code", 382 section: "Posts", 383 handler: () => { 384 385 window.location.href = "/blog/2015/code/"; 386 387 }, 388 },{id: "post-a-post-with-images", 389 390 title: "a post with images", 391 392 description: "this is what included images could look like", 393 section: "Posts", 394 handler: () => { 395 396 window.location.href = "/blog/2015/images/"; 397 398 }, 399 },{id: "post-a-post-with-formatting-and-links", 400 401 title: "a post with formatting and links", 402 403 description: "march & april, looking forward to summer", 404 section: "Posts", 405 handler: () => { 406 407 window.location.href = "/blog/2015/formatting-and-links/"; 408 409 }, 410 },{id: "books-the-godfather", 411 title: 'The Godfather', 412 description: "", 413 section: "Books",handler: () => { 414 window.location.href = "/books/the_godfather/"; 415 },},{id: "news-a-new-research-project-consolidación-investigadora-funded-by-the-spanish-state-research-agency-to-xavier-on-quantitative-coastal-paleoecology-see-project-s-decision-description-for-more-details", 416 title: 'A new research project Consolidación Investigadora funded by the Spanish State Research Agency...', 417 description: "", 418 section: "News",},{id: "news-closed-looking-for-a-phd-student-as-part-of-the-decision-project-funded-by-the-spanish-state-research-agency-i-have-a-fully-funded-4-year-phd-position-on-aquatic-paleoecology-the-candidate-is-expected-to-join-irta-s-marine-and-continental-waters-program-la-rà pita-spain-by-september-october-2025-closed-a-detailed-description-of-the-thesis-project-can-be-found-here-contact-me-if-you-are-interested-to-explore-bsc-or-msc-opportunities-around-this-topic-and-if-have-any-questions-sparkles-smile", 419 title: '[CLOSED] Looking for a PhD student!ð As part of the DECISION project, funded...', 420 description: "", 421 section: "News",},{id: "news-we-got-a-new-research-project-generación-de-conocimiento-2025-funded-by-the-spanish-state-research-agency-the-overarching-goal-is-to-establish-the-links-between-deltaic-pulse-dynamics-and-ecosystem-development-at-centennial-and-milenial-time-scales-see-project-s-deltapulse-description-for-more-details-and-get-in-touch-if-you-want-to-establish-a-collaboration-on-this-topic", 422 title: 'We got a new research project Generación de Conocimiento 2025 funded by the...', 423 description: "", 424 section: "News",},{id: "news-looking-for-prospective-postdocs-to-apply-to-juan-de-la-cierva-fellowship-interested-in-aquatic-paleocology-global-change-impacts-on-deltas-and-or-benthic-communities-e-g-diatoms-and-foraminifera-in-forgotten-ecosystems-such-as-islands-freshwater-streams-or-coastal-lagoons-contact-me-for-further-information-and-i-d-be-happy-to-help-co-develop-a-proposal-who-recently-graduated-phds-between-january-1st-2024-and-december-31st-2025-apply-25-november-10-december-2025-3-year-contract-call-description", 425 title: 'ð Looking for prospective postdocs to apply to Juan de la Cierva fellowship!...', 426 description: "", 427 section: "News",},{id: "projects-decision", 428 title: 'DECISION', 429 description: "Advancing quantitative paleoecology to guide socio-ecological system resilience of a Mediterranean delta to global change", 430 section: "Projects",handler: () => { 431 window.location.href = "/projects/1_project/"; 432 },},{id: "projects-seed", 433 title: 'SEED', 434 description: "DiatomS mEEt Databases -- resources and practices to enable large-scale ecological research", 435 section: "Projects",handler: () => { 436 window.location.href = "/projects/2_project/"; 437 },},{id: "projects-oligotrend", 438 title: 'OLIGOTREND', 439 description: "Anticipating non-linear changes across aquatic ecosystems in response to oligotrophication trends", 440 section: "Projects",handler: () => { 441 window.location.href = "/projects/3_project/"; 442 },},{id: "projects-palaeopen", 443 title: 'PalaeOpen', 444 description: "Open Palaeoecological Data (PalaeOpen)- analysing the past building foresight", 445 section: "Projects",handler: () => { 446 window.location.href = "/projects/4_project/"; 447 },},{id: "projects-psesynth", 448 title: 'pSESYNTH', 449 description: "The whole is not the sum of the parts -- Building a synthesis database of past human-environmental systems in the Global South", 450 section: "Projects",handler: () => { 451 window.location.href = "/projects/5_project/"; 452 },},{id: "projects-lagoons", 453 title: 'LAGOONS', 454 description: "Management and Conservation of the Ebro Delta Coastal Lagoons", 455 section: "Projects",handler: () => { 456 window.location.href = "/projects/6_project/"; 457 },},{id: "projects-iberrios", 458 title: 'IberRios', 459 description: "A collaborative project to explore global change impacts on Iberian river biodiversity and ecosystem functions", 460 section: "Projects",handler: () => { 461 window.location.href = "/projects/7_project/"; 462 },},{id: "projects-human-traces", 463 title: 'Human Traces', 464 description: "Synthesizing Human Traces in Latin American Paleoenvironments", 465 section: "Projects",handler: () => { 466 window.location.href = "/projects/8_project/"; 467 },},{id: "projects-deltapulse", 468 title: 'DELTAPULSE', 469 description: "Using the past to build sustinable deltas--palaeocological insights into ecosystem responses to pulsing dynamics in a global change context", 470 section: "Projects",handler: () => { 471 window.location.href = "/projects/9_project/"; 472 },},{ 473 id: 'social-email', 474 title: 'email', 475 section: 'Socials', 476 handler: () => { 477 window.open("mailto:%79%6F%75@%65%78%61%6D%70%6C%65.%63%6F%6D", "_blank"); 478 }, 479 },{ 480 id: 'social-inspire', 481 title: 'Inspire HEP', 482 section: 'Socials', 483 handler: () => { 484 window.open("https://inspirehep.net/authors/1010907", "_blank"); 485 }, 486 },{ 487 id: 'social-rss', 488 title: 'RSS Feed', 489 section: 'Socials', 490 handler: () => { 491 window.open("/feed.xml", "_blank"); 492 }, 493 },{ 494 id: 'social-scholar', 495 title: 'Google Scholar', 496 section: 'Socials', 497 handler: () => { 498 window.open("https://scholar.google.com/citations?user=qc6CJjYAAAAJ", "_blank"); 499 }, 500 },{ 501 id: 'social-custom_social', 502 title: 'Custom_social', 503 section: 'Socials', 504 handler: () => { 505 window.open("https://www.alberteinstein.com/", "_blank"); 506 }, 507 },{ 508 id: 'light-theme', 509 title: 'Change theme to light', 510 description: 'Change the theme of the site to Light', 511 section: 'Theme', 512 handler: () => { 513 setThemeSetting("light"); 514 }, 515 }, 516 {
517 id: 'dark-theme', 518 title: 'Change theme to dark', 519 description: 'Change the theme of the site to Dark', 520 section: 'Theme', 521 handler: () => { 522 setThemeSetting("dark"); 523 }, 524 }, 525 { 526 id: 'system-theme', 527 title: 'Use system default theme', 528 description: 'Change the theme of the site to System Default', 529 section: 'Theme', 530 handler: () => { 531 setThemeSetting("system"); 532 }, 533 },];
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.