// get the ninja-keys element const ninja = document.querySelector('ninja-keys'); // add the home and posts menu items ninja.data = [{ id: "nav-about", title: "About", section: "Navigation", handler: () => { window.location.href = "/"; }, },{id: "nav-publications", title: "Publications", description: "* denotes shared first authorship", section: "Navigation", handler: () => { window.location.href = "/publications/"; }, },{id: "nav-service", title: "Service", description: "Academic service, reviewing, and professional activities", section: "Navigation", handler: () => { window.location.href = "/service/"; }, },{id: "nav-cv", title: "CV", description: "", section: "Navigation", handler: () => { window.location.href = "/cv/"; }, },{id: "nav-acknowledgements", title: "Acknowledgements", description: "People who have shaped my research journey.", section: "Navigation", handler: () => { window.location.href = "/acknowledgements/"; }, },{id: "post-a-post-with-plotly-js", title: "a post with plotly.js", description: "this is what included plotly.js code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2025/plotly/"; }, },{id: "post-a-post-with-image-galleries", title: "a post with image galleries", description: "this is what included image galleries could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/photo-gallery/"; }, },{id: "post-google-gemini-updates-flash-1-5-gemma-2-and-project-astra", title: 'Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra ', 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.", section: "Posts", handler: () => { window.open("https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/", "_blank"); }, },{id: "post-a-post-with-tabs", title: "a post with tabs", description: "this is what included tabs in a post could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/tabs/"; }, },{id: "post-a-post-with-typograms", title: "a post with typograms", description: "this is what included typograms code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/typograms/"; }, },{id: "post-a-post-that-can-be-cited", title: "a post that can be cited", description: "this is what a post that can be cited looks like", section: "Posts", handler: () => { window.location.href = "/blog/2024/post-citation/"; }, },{id: "post-a-post-with-pseudo-code", title: "a post with pseudo code", description: "this is what included pseudo code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/pseudocode/"; }, },{id: "post-a-post-with-code-diff", title: "a post with code diff", description: "this is how you can display code diffs", section: "Posts", handler: () => { window.location.href = "/blog/2024/code-diff/"; }, },{id: "post-a-post-with-advanced-image-components", title: "a post with advanced image components", description: "this is what advanced image components could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/advanced-images/"; }, },{id: "post-a-post-with-vega-lite", title: "a post with vega lite", description: "this is what included vega lite code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/vega-lite/"; }, },{id: "post-a-post-with-geojson", title: "a post with geojson", description: "this is what included geojson code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/geojson-map/"; }, },{id: "post-a-post-with-echarts", title: "a post with echarts", description: "this is what included echarts code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/echarts/"; }, },{id: "post-a-post-with-chart-js", title: "a post with chart.js", description: "this is what included chart.js code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2024/chartjs/"; }, },{id: "post-a-post-with-tikzjax", title: "a post with TikZJax", description: "this is what included TikZ code could look like", section: "Posts", handler: () => { window.location.href = "/blog/2023/tikzjax/"; }, },{id: "post-a-post-with-bibliography", title: "a post with bibliography", description: "an example of a blog post with bibliography", section: "Posts", handler: () => { window.location.href = "/blog/2023/post-bibliography/"; }, },{id: "post-a-post-with-jupyter-notebook", title: "a post with jupyter notebook", description: "an example of a blog post with jupyter notebook", section: "Posts", handler: () => { window.location.href = "/blog/2023/jupyter-notebook/"; }, },{id: "post-a-post-with-custom-blockquotes", title: "a post with custom blockquotes", description: "an example of a blog post with custom blockquotes", section: "Posts", handler: () => { window.location.href = "/blog/2023/custom-blockquotes/"; }, },{id: "post-a-post-with-table-of-contents-on-a-sidebar", title: "a post with table of contents on a sidebar", description: "an example of a blog post with table of contents on a sidebar", section: "Posts", handler: () => { window.location.href = "/blog/2023/sidebar-table-of-contents/"; }, },{id: "post-a-post-with-audios", title: "a post with audios", description: "this is what included audios could look like", section: "Posts", handler: () => { window.location.href = "/blog/2023/audios/"; }, },{id: "post-a-post-with-videos", title: "a post with videos", description: "this is what included videos could look like", section: "Posts", handler: () => { window.location.href = "/blog/2023/videos/"; }, },{id: "post-displaying-beautiful-tables-with-bootstrap-tables", title: "displaying beautiful tables with Bootstrap Tables", description: "an example of how to use Bootstrap Tables", section: "Posts", handler: () => { window.location.href = "/blog/2023/tables/"; }, },{id: "post-a-post-with-table-of-contents", title: "a post with table of contents", description: "an example of a blog post with table of contents", section: "Posts", handler: () => { window.location.href = "/blog/2023/table-of-contents/"; }, },{id: "post-a-post-with-giscus-comments", title: "a post with giscus comments", description: "an example of a blog post with giscus comments", section: "Posts", handler: () => { window.location.href = "/blog/2022/giscus-comments/"; }, },{id: "post-displaying-external-posts-on-your-al-folio-blog", title: 'Displaying External Posts on Your al-folio Blog ', description: "", section: "Posts", handler: () => { window.open("https://medium.com/@al-folio/displaying-external-posts-on-your-al-folio-blog-b60a1d241a0a?source=rss-17feae71c3c4------2", "_blank"); }, },{id: "post-a-post-with-redirect", title: "a post with redirect", description: "you can also redirect to assets like pdf", section: "Posts", handler: () => { window.location.href = "/assets/pdf/example_pdf.pdf"; }, },{id: "post-a-post-with-diagrams", title: "a post with diagrams", description: "an example of a blog post with diagrams", section: "Posts", handler: () => { window.location.href = "/blog/2021/diagrams/"; }, },{id: "post-a-distill-style-blog-post", title: "a distill-style blog post", description: "an example of a distill-style blog post and main elements", section: "Posts", handler: () => { window.location.href = "/blog/2021/distill/"; }, },{id: "post-a-post-with-twitter", title: "a post with twitter", description: "an example of a blog post with twitter", section: "Posts", handler: () => { window.location.href = "/blog/2020/twitter/"; }, },{id: "post-a-post-with-disqus-comments", title: "a post with disqus comments", description: "an example of a blog post with disqus comments", section: "Posts", handler: () => { window.location.href = "/blog/2015/disqus-comments/"; }, },{id: "post-a-post-with-math", title: "a post with math", description: "an example of a blog post with some math", section: "Posts", handler: () => { window.location.href = "/blog/2015/math/"; }, },{id: "post-a-post-with-code", title: "a post with code", description: "an example of a blog post with some code", section: "Posts", handler: () => { window.location.href = "/blog/2015/code/"; }, },{id: "post-a-post-with-images", title: "a post with images", description: "this is what included images could look like", section: "Posts", handler: () => { window.location.href = "/blog/2015/images/"; }, },{id: "post-a-post-with-formatting-and-links", title: "a post with formatting and links", description: "march & april, looking forward to summer", section: "Posts", handler: () => { window.location.href = "/blog/2015/formatting-and-links/"; }, },{id: "books-the-godfather", title: 'The Godfather', description: "", section: "Books",handler: () => { window.location.href = "/books/the_godfather/"; },},{id: "news-our-paper-hice-score-has-been-accepted-by-cvpr-2025", title: 'Our paper HICE-Score has been accepted by CVPR 2025! πŸŽ‰πŸŽ‰', description: "", section: "News",},{id: "news-our-paper-lance-has-been-accepted-by-cvpr-2025", title: 'Our paper LanCE has been accepted by CVPR 2025! πŸŽ‰πŸŽ‰', description: "", section: "News",},{id: "news-our-recent-work-contrastive-sparse-representation-has-generated-considerable-interest-as-a-promising-alternative-approach-for-efficient-embedding-retrieval-and-we-have-been-invited-to-publish-the-model-on-hugging-face-and-sentence-transformer-code-available-at-link", title: 'Our recent work Contrastive Sparse Representation has generated considerable interest as a promising...', description: "", section: "News",},{id: "news-our-paper-contrastive-sparse-representations-csr-was-selected-for-an-oral-presentation-top-1-at-icml-2025-csr-compresses-sota-4k-dim-embeddings-to-just-32-active-dimensions-achieving-100-faster-retrieval-for-rag-and-vector-databases-with-minimal-accuracy-loss", title: 'Our paper Contrastive Sparse Representations (CSR) was selected for an Oral Presentation (Top...', description: "", section: "News",},{id: "news-the-wait-is-over-csr-is-now-available-in-sentence-transformer-v5-0", title: 'The wait is over! CSR is now available in Sentence-Transformer v5.0! πŸ€—πŸ€—', description: "", section: "News",},{id: "news-join-bytedance-bandai-as-a-research-intern-targeting-agentic-rl-️️-️", title: 'Join ByteDance Bandai as a Research Intern, targeting Agentic RL!⚑️️⚑️', description: "", section: "News",},{id: "news-new-members-in-sparsity-family-two-papers-on-ultra-sparse-embeddings-and-sparse-feature-attention-accepted-at-iclr-2026-catch-us-in-rio-de-janeiro", title: 'New members in sparsity family! Two papers on ultra-sparse embeddings and sparse feature...', description: "", section: "News",},{id: "news-one-paper-accepted-at-tcsvt-first-benchmark-for-multimodal-remote-sensing-detection-under-real-world-cloud-degradations", title: 'One paper accepted at TCSVT! First benchmark for multimodal remote sensing detection under...', description: "", section: "News",},{id: "news-a-new-chapter-begins-beyond-excited-to-join-georgia-institute-of-technology-as-a-phd-student-this-fall-atlanta-i-m-coming-go-jackets", title: 'A new chapter begins! Beyond excited to join Georgia Institute of Technology as...', description: "", section: "News",},{id: "news-thrilled-to-share-that-our-paper-a-non-negative-vae-the-generalized-gamma-belief-network-has-been-accepted-by-ieee-tpami", title: 'Thrilled to share that our paper A Non-negative VAE: the Generalized Gamma Belief...', description: "", section: "News",},{id: "projects-project-1", title: 'project 1', description: "with background image", section: "Projects",handler: () => { window.location.href = "/projects/1_project/"; },},{id: "projects-project-2", title: 'project 2', description: "a project with a background image and giscus comments", section: "Projects",handler: () => { window.location.href = "/projects/2_project/"; },},{id: "projects-project-3-with-very-long-name", title: 'project 3 with very long name', description: "a project that redirects to another website", section: "Projects",handler: () => { window.location.href = "/projects/3_project/"; },},{id: "projects-project-4", title: 'project 4', description: "another without an image", section: "Projects",handler: () => { window.location.href = "/projects/4_project/"; },},{id: "projects-project-5", title: 'project 5', description: "a project with a background image", section: "Projects",handler: () => { window.location.href = "/projects/5_project/"; },},{id: "projects-project-6", title: 'project 6', description: "a project with no image", section: "Projects",handler: () => { window.location.href = "/projects/6_project/"; },},{id: "projects-project-7", title: 'project 7', description: "with background image", section: "Projects",handler: () => { window.location.href = "/projects/7_project/"; },},{id: "projects-project-8", title: 'project 8', description: "an other project with a background image and giscus comments", section: "Projects",handler: () => { window.location.href = "/projects/8_project/"; },},{id: "projects-project-9", title: 'project 9', description: "another project with an image πŸŽ‰", section: "Projects",handler: () => { window.location.href = "/projects/9_project/"; },},{id: "teachings-data-science-fundamentals", title: 'Data Science Fundamentals', 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.", section: "Teachings",handler: () => { window.location.href = "/teachings/data-science-fundamentals/"; },},{id: "teachings-introduction-to-machine-learning", title: 'Introduction to Machine Learning', 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.", section: "Teachings",handler: () => { window.location.href = "/teachings/introduction-to-machine-learning/"; },},{ id: 'social-email', title: 'email', section: 'Socials', handler: () => { window.open("mailto:%6E%65%69%6C%77%65%6E%39%38%37@%67%6D%61%69%6C.%63%6F%6D", "_blank"); }, },{ id: 'social-scholar', title: 'Google Scholar', section: 'Socials', handler: () => { window.open("https://scholar.google.com/citations?user=mrdyOyQAAAAJ", "_blank"); }, },{ id: 'social-github', title: 'GitHub', section: 'Socials', handler: () => { window.open("https://github.com/neilwen987", "_blank"); }, },{ id: 'social-x', title: 'X', section: 'Socials', handler: () => { window.open("https://twitter.com/TianshengV111", "_blank"); }, },{ id: 'light-theme', title: 'Change theme to light', description: 'Change the theme of the site to Light', section: 'Theme', handler: () => { setThemeSetting("light"); }, }, { id: 'dark-theme', title: 'Change theme to dark', description: 'Change the theme of the site to Dark', section: 'Theme', handler: () => { setThemeSetting("dark"); }, }, { id: 'system-theme', title: 'Use system default theme', description: 'Change the theme of the site to System Default', section: 'Theme', handler: () => { setThemeSetting("system"); }, },];